Nguồn nhân lực không đủ...4110.Thiếu quyền sở hữu...41ỨNG DỤNG CỦA PHÁT TRIỂN PHẦN MỀM...42 Trang 7 DANH MỤC CÁC TỪ VIẾT TẮTIT Information technology Công nghệ thông tinQA Quality assur
Phân loại phát triển phần mềm
Theo mô hình phát triển phần mềm
1.1 Mô hình Waterfall ( Mô hình thác nước).
1.1.1 Tổng quan về mô hình Waterfall.
Khi chúng ta nói tới mô hình thác nước có thể hiểu đơn giản đây là một trong những mô hình quản lí dự án dễ hiểu và dễ quản lí nhất hiện nay với mô hình thác nước là một phương pháp quản lí dự án dựa trên qui trình thiết kế tuần tự và liên tiếp và cụ thể trong mô hình thác nước, các giai đoạn của dự án được thực hiện lần lượt và nối tiếp nhau, giai đoạn mới chỉ được bắt đầu khi giai đoạn trước nó đã được hoàn thành Bên cạnh đó mô hình thác nước vốn được tạo với mục đích là một mô hình chu kì vòng đời phát triển phần mềm, nhưng cũng được ứng dụng trong các dự án có qui mô nhỏ và có mọi tiêu chuẩn được xác định rõ ràng từ ban đầu.
Chúng ta đã từng biết đến mô hình thác nước khi mô hình này đã được giới thiệu trong một bài báo của Winston Royce năm 1970 Mặc dù mô hình này đã giảm mức độ trong vài năm trở lại đây khi các phương pháp linh hoạt xuất hiện, tuy nhiên mô hình thác nước vẫn đang được ưa chuộng bởi nhiều kỹ sư công nghệ thông tin vì tính logic và tuần tự của mô hình này thực hiện tuần tự như sau: o Phân tích yêu cầu o Thiết kế hệ thống o Thực hiện o Kiểm thử hệ thống o Triển khai hệ thống o Bảo trì hệ thống
Cụ thể mỗi giai đoạn sẽ thực hiện một số thao tác và nhiệm vụ nhất định Đặc biệt bước trước sẽ là tiền đề cho bước sau phát triển Cụ thể:
Hình 1: Sơ đồ mô hình thác nước
Pha đầu tiên trong mô hình thác nước là phân tích yêu cầu Đúng như tên gọi, pha này có nhiệm vụ chính là tìm hiểu và xác định nhu cầu khách hàng đối với sản phẩm đang phát triển Người nghiên cứu sẽ phải trả lời được các câu hỏi: Đây có phải điều người dùng đang cần? Đâu là các ràng buộc? Rủi ro có thể xảy ra là gì? Họ mong muốn nhận được gì?… Từ đó các kỹ sư IT sẽ xác định được yêu cầu có thực sự phù hợp và có thể kiểm chứng được hay không.
Dựa vào các yêu cầu đã được tìm hiểu, các kỹ sư IT sẽ thiết kế hệ thống phần cứng/phần mềm; ngôn ngữ lập trình và cả lưu trữ dữ liệu Sau đó ghi chú lại trên từng phần để đảm bảo quy trình thiết kế, kiểm thử được diễn ra thuận lợi Quá trình thiết kế sẽ không tốn quá nhiều thời gian nhưng cần sự tập trung, tỉ mỉ.
* Thực hiện Đây là một pha quan trọng ảnh hưởng đến chất lượng sản phẩm Các kỹ sư IT sẽ dựa vào bản thiết kế ở giai đoạn 2 để viết code Sau đó, tạo ra các chương trình, phần mềm và chuyển qua pha tiếp theo.
Giai đoạn kiểm thử được thực hiện trong quá trình phát triển phần mềm Trong đó, các thành viên QA và tester sẽ có nhiệm vụ kiểm tra hoạt động của hệ thống; tìm kiếm lỗi sai và góp ý sửa chữa hoàn thiện chương trình Quá trình này rất quan trọng và cần được thực hiện tỉ mỉ Nhất là trước khi đưa sản phẩm đến tay khách hàng.
Các công việc cần thực hiện gồm có: o Sử dụng unit tested code để đảm bảo các chức năng hoạt động bình thường. o Thực hiện các thử nghiệm (Functional and non functional) dựa trên kịch bản test để chắc chắn rằng hệ thống đáp ứng được yêu cầu đặt ra. o Theo dõi và viết báo cáo test.
Sau khi đã chắc chắn sản phẩm đáp ứng được yêu cầu kiểm thử thì chúng ta sẽ đến với giai đoạn sử dụng và trải nghiệm Đây chính là lúc chương trình, phần mềm sẽ thực sự đi vào hoạt động Các lập trình viên cần đảm bảo môi trường hoạt động bình thường, không có lỗi mở server, đáp ứng được các tiêu chí test Sau đó thực hiện kiểm tra về môi trường hoạt động để đảm bảo mọi thứ không xảy ra sai sót.
* Bảo trì hệ thống Đây là giai đoạn cuối nhưng cũng là một phần không thể thiếu trong toàn bộ quy trình dự án Mặc dù sản phẩm đã được bàn giao cho khách hàng nhưng vẫn có thể xảy ra các lỗi phát sinh không mong muốn Lúc này, các kỹ sư phần mềm sẽ phải tìm hiểu nguyên nhân và khắc phục để đảm bảo rằng ứng dụng luôn hoạt động một cách tốt nhất Bên cạnh đó, các bản update cũng được tiến hành thường xuyên để nâng cấp và sửa lỗi Mục tiêu cuối cùng vẫn là đáp ứng tối đa nhu cầu cũng như mong muốn của người dùng.
1.1.2 Khi nào nên sử dụng mô hình thác nước.
Mô hình thác nước có thể phát huy tối đa hiệu quả khi sử dụng trong trường hợp:
- Yêu cầu ổn định và đã được xác định rõ từ đầu: Khi yêu cầu dự án đã được định rõ, không có sự thay đổi đáng kể dự kiến trong suốt quá trình phát triển, Waterfall Model là một lựa chọn tốt Điều này đảm bảo rằng mỗi giai đoạn có thể được hoàn thành một cách tự nhiên và không gặp sự trở ngại từ việc thay đổi yêu cầu.
- Dự án có rủi ro thấp: Khi rủi ro trong dự án được đánh giá là thấp và không có nhiều không chắc chắn liên quan đến công nghệ, tiến trình phát triển, hoặc yêu cầu, Waterfall Model có thể được sử dụng Việc dự đoán và quản lý rủi ro trở nên dễ dàng hơn trong mô hình này.
- Dự án có môi trường ổn định: Waterfall Model thích hợp trong môi trường làm việc ổn định, nơi không có sự biến đổi lớn trong quy trình hoặc nguồn lực Điều này giúp duy trì sự tập trung trong từng giai đoạn và giảm thiểu các yếu tố gây xao lực và trở ngại
- Dự án nhỏ hoặc đơn giản: Mô hình thác nước có thể phù hợp cho các dự án nhỏ hoặc đơn giản mà không cần mức độ linh hoạt lớn trong quá trình phát triển Các dự án như website tĩnh, ứng dụng mobile đơn giản, hoặc các dự án có phạm vi hạn chế có thể được phát triển bằng mô hình này.
- Dự án yêu cầu phê duyệt cuối cùng: Trong một số trường hợp, các bên liên quan muốn thấy sản phẩm hoàn chỉnh và phê duyệt nó trước khi tiến hành bước tiếp theo Waterfall Model cho phép việc này, vì mỗi giai đoạn tạo ra một phiên bản hoàn chỉnh của sản phẩm.
Theo mục tiêu phát triển
2.1 Phát triển phần mềm cơ bản
Phát triển phần mềm theo mục đích cơ bản là quá trình tạo ra một ứng dụng hoặc chương trình máy tính với mục tiêu chính là giải quyết một vấn đề cụ thể hoặc thực hiện một nhiệm vụ cơ bản Mục đích cơ bản này thường làm nền tảng cho việc phát triển phần mềm và có thể làm được bằng cách tập trung vào các tính năng và chức năng chính liên quan đến mục tiêu cụ thể mà không phải mở rộng quá nhiều tính năng phức tạp.
2.1.1 Quá trình này có thể chia thành các giai đoạn chính như sau:
1 Thu thập yêu cầu: Bước này đòi hỏi lập trình viên hoặc nhóm phát triển phần mềm tương tác với người dùng cuối hoặc khách hàng để hiểu rõ nhu cầu và mong đợi của họ Yêu cầu này sau đó được tạo thành một tài liệu yêu cầu.
2 Thiết kế: Trong giai đoạn này, người phát triển xác định cấu trúc tổng thể của phần mềm, thiết kế giao diện người dùng, cơ sở dữ liệu và các thành phần chức năng khác
3 Lập trình: Sau khi thiết kế hoàn chỉnh, lập trình viên sẽ bắt đầu viết mã nguồn để tạo ra các tính năng và chức năng cần thiết cho phần mềm Các ngôn ngữ lập trình khác nhau có thể được sử dụng tùy thuộc vào dự án cụ thể.
4 Kiểm thử: Giai đoạn này đòi hỏi kiểm tra phần mềm để đảm bảo rằng nó hoạt động đúng như dự kiến và đáp ứng yêu cầu đã được xác định Kiểm thử có thể bao gồm kiểm tra chức năng, kiểm tra hiệu suất, kiểm tra bảo mật và nhiều khía cạnh khác.
5 Triển khai: Sau khi phần mềm đã được kiểm thử và hoàn thiện, nó được triển khai vào môi trường sản xuất để sử dụng bởi người dùng cuối.
6 Bảo trì và cải tiến: Sau khi triển khai, phần mềm cần được bảo trì để đảm bảo tính ổn định và bảo mật Ngoài ra, có thể có các phiên bản cải tiến sau này để thêm tính năng mới hoặc khắc phục lỗi.
Phát triển phần mềm cơ bản là quá trình này và có thể thay đổi tùy thuộc vào quy mô, phức tạp và mục tiêu của dự án phần mềm cụ thể.
2.1.2 Một số điểm quan trọng liên quan đến phát triển phần mềm theo mục đích cơ bản.
1 Mục tiêu cụ thể: Phát triển phần mềm theo mục đích cơ bản bắt đầu với việc xác định mục tiêu rõ ràng và cụ thể Điều này có thể là giải quyết một vấn đề như quản lý danh bạ, tính toán dữ liệu, hoặc thực hiện một chức năng như gửi email tự động.
2 Tính đơn giản: Phần mềm này thường được thiết kế với tính đơn giản và tối giản Nó tập trung vào những tính năng và chức năng cần thiết để đáp ứng mục tiêu cơ bản mà không phải quá phức tạp hoá sản phẩm.
3 Sử dụng ngôn ngữ lập trình phù hợp: Lựa chọn ngôn ngữ lập trình phù hợp với mục tiêu cụ thể và sự đơn giản của dự án là quan trọng Các ngôn ngữ lập trình như Python, JavaScript và Ruby thường được sử dụng cho các dự án cơ bản do tính dễ học và sử dụng của chúng.
4 Thời gian phát triển ngắn hơn: Phát triển phần mềm theo mục đích cơ bản thường có thời gian phát triển ngắn hơn so với các dự án phức tạp hơn Điều này giúp nhanh chóng có sản phẩm hoạt động để giải quyết vấn đề cụ thể.
5 Kiểm thử cơ bản: Kiểm thử trong dự án này tập trung vào đảm bảo rằng các tính năng cơ bản hoạt động đúng như dự kiến và đáp ứng mục tiêu cơ bản.
Phát triển phần mềm cơ bản là quá trình này và có thể thay đổi tùy thuộc vào quy mô, phức tạp và mục tiêu của dự án phần mềm cụ thể và là một phương pháp hiệu quả để giải quyết các vấn đề cụ thể hoặc thực hiện các nhiệm vụ cơ bản mà không cần phải đầu tư quá nhiều tài nguyên vào các tính năng phức tạp và không cần thiết.
2.1.3 Một số ví dụ về phát triển phần mềm cơ bản.
1 Máy tính bỏ túi (Pocket Calculator): Phát triển một ứng dụng máy tính đơn giản có khả năng thực hiện các phép tính cơ bản như cộng, trừ, nhân, chia.
2 Quản lý danh bạ: Xây dựng một ứng dụng đơn giản để lưu trữ và quản lý danh bạ của người dùng, bao gồm tên, số điện thoại, và địa chỉ email.
Theo phạm vi dự án
3.1 Tổng quan về phạm vi dự án.
Phạm vi dự án là một phần kế hoạch của dự án, bao gồm việc xác định và liệt kê danh sách các mục tiêu dự án cụ thể, khả năng cung cấp, tính năng, chức năng, nhiệm vụ,thời hạn và cuối cùng là chi phí Nói cách khác, phạm vi dự án là những gì cần phải đạt được và những công việc cần thiết để thực hiện dự án.
3.1.1 Thống nhất phạm vi dự án.
Phạm vi dự án có thể được hiểu là tập hợp tất cả những công việc và qui trình có liên quan đến một dự án cụ thể nhằm đạt được các mục tiêu đã đặt ra trong đó, nếu dự án phải tạo ra các sản phẩm cần chuyển giao, được coi là những sản phẩm trung gian, từ đó tổng hợp thành các mục tiêu của dự án mà quản trị dự án cần phải chuyển giao cho chủ đầu tư.
Các sản phẩm cần chuyển giao này cũng là một bộ phận của phạm vi dự án Sản phẩm cần chuyển giao có thể là một bộ phận của sản phẩm mà dự án phải hoàn thiện hoặc liên quan tới qui trình, như đề xuất, thuyết minh, các thiết kế, các tài liệu.
Chẳng hạn, để xây dựng một hệ thống thông tin quản trị nhân lực trong doanh nghiệp, dự án phải hoàn thiện hệ thống máy chủ và phần mềm máy tính là một phần của nhiệm vụ hoàn thiện hệ thống thông tin quản trị nhân lực.
Trong quá trình lắp đặt hệ thống máy chủ và phần mềm, quản trị dự án phải chuyển giao đề xuất về dự án phần mềm, các thiết kế phần mềm, tài liệu hướng dẫn sử dụng Đây chính là các sản phẩm cần chuyển giao.
Bên cạnh đó, quản trị dự án cũng phải thực hiện các qui trình viết đề xuất, thống nhất các yêu cầu từ phía chủ đầu tư, xây dựng, chỉnh sửa và phê duyệt thiết kế, xây dựng tài liệu hướng dẫn sử dụng chính là tập hợp các qui trình có liên quan tới việc đạt mục tiêu của dự án nằm trong phạm vi dự án.
Thống nhất phạm vi dự án rất quan trọng đối với việc kiểm soát dự án đầu tư bởi vì nó ảnh hưởng tới những gì phải hoàn thiện và không phải hoàn thiện trong quá trình thực hiện dự án đầu tư Nếu dự án tập trung vào những công việc không cần thiết phải hoàn thiện, chi phí và thời gian của dự án sẽ tăng lên, gây ra lãng phí
3.1.2 Tầm quan trọng của phạm vi dự án.
Phạm vi dự án rất quan trọng, đi kèm với đó là một số lợi ích quan trọng của việc thiết lập phạm vi dự án đối với bất kỳ tổ chức, doanh nghiệp nào:
- Phạm vi của dự án chỉ ra những yếu tố mà các bên liên quan bắt buộc phải nắm rõ để không hành động sai lệch định hướng.
- Phạm vi dự án cho phép các nhà quản lý nắm bắt cụ thể lộ trình dự án để dễ dàng phân bổ ngân sách cũng như chỉ định và sắp xếp công việc hợp lý.
- Phạm vi dự án giúp doanh nghiệp phòng ngừa những tình huống nằm ngoài phạm vi đã thiết lập.
- Giúp tập trung mọi nguồn lực vào mục tiêu chung, tránh lãng phí nguồn lực vào những thứ không mang lại nhiều lợi ích.
3.1.3 Những yếu tố ảnh hưởng đến phạm vi dự án.
Yếu tố thời gian: Thời gian thực hiện dự án phải được tính toán hợp lý dựa theo quy mô dự án, nhằm sử dụng hiệu quả ngân sách và nguồn lực của doanh nghiệp Đối với dự án nhỏ, thời gian có thể vài tuần, ngược lại với dự án lớn thì thời gian có thể kéo dài đến vài tháng hoặc vài năm.
Yếu tố nhân sự: Việc tính toán chính xác số lượng nhân sự cũng như phân bổ đúng nhân sự cho một dự án giúp doanh nghiệp tiết kiệm thời gian và ngân sách Ngược lại, nếu tính sai, dự án có thể bị kéo dài tiến độ hoặc chất lượng hoàn thành không đạt chuẩn như đã thiết lập ban đầu.
Ngân sách: Trong phạm vi dự án một yếu tố quan trọng là việc xây dựng một bảng ngân sách dự án khả thi Bảng này không chỉ bao gồm các chi phí trực tiếp liên quan đến việc thực hiện dự án mà còn bao gồm các chi phí bổ sung như lương nhân viên và thù lao chuyên gia Bằng cách áp dụng cách tiếp cận toàn diện này để lập ngân sách, kế toán dự án không chỉ đảm bảo khả năng tồn tại về mặt tài chính của dự án mà còn tạo điều kiện phân bổ nguồn lực minh bạch và có trách nhiệm.
Yếu tố khả thi: Tính khả thi của dự án là điều mà doanh nghiệp cần xem xét kỹ lưỡng trước khi tiến hành triển khai dự án Yếu tố khả thi phải dựa trên tình hình thị trường, khả năng tài chính và trình độ kiến thức chuyên môn của nhân sự tại doanh nghiệp.
3.2 Phạm vi dự án trong phát triển phần mềm lớn và phần mềm nhỏ.
3.2.1 Phạm vi dự án trong phần mềm lớn. Đối với loại phạm vi dự an trong phát triển phần mềm lớn (quy mô lớn) là một phần quan trọng, là việc xác định và mô tả các yếu tố quan trọng của dự án để đảm bảo công việc được thực hiện đúng theo kế hoạch và không bị trôi khỏi tầm kiểm soát Đi kèm với đó gồm những yêu cầu:
- Mục tiêu dự án: Xác định mục tiêu chính của dự án phần mềm quy mô lớn Mục tiêu này có thể bao gồm việc xây dựng một hệ thống phức tạp, triển khai một ứng dụng lớn, hoặc thay đổi một hệ thống hiện có.
Theo đối tượng sử dụng
4.1 Phát triển ứng dụng di động
Phát triển ứng dụng di động là quá trình tạo ra các ứng dụng chạy trên các thiết bị di động như điện thoại thông minh và máy tính bảng Để phát triển một ứng dụng di động, bạn cần có kiến thức về lập trình và các ngôn ngữ lập trình phổ biến như Java, Swift hoặc React Na
4.1.1 Một số bước để phát triển một ứng dụng di động.
1 Xác định mục tiêu và yêu cầu của ứng dụng: Đầu tiên, bạn cần xác định mục tiêu của ứng dụng và các yêu cầu cụ thể mà nó phải đáp ứng.
2 Thiết kế giao diện người dùng: Bạn cần thiết kế giao diện người dùng hấp dẫn và dễ sử dụng cho ứng dụng của mình Điều này bao gồm việc tạo các bố cục, màu sắc, biểu tượng và các tử khác của giao diện.
3 Lập trình ứng dụng: Bạn cần lập trình ứng dụng bằng ngôn ngữ lập trình phù hợp cho nền tảng di động bạn muốn hướng đến (ví dụ: Java cho Android, Swift cho iOS) Bạn cần có kiến thức về lập trình và các công cụ phát triển phù hợp.
4 Kiểm thử và sửa lỗi: Sau khi hoàn thành việc lập trình, bạn cần kiểm thử ứng dụng để xác định và sửa các lỗi có thể xảy ra Điều này bao gồm việc kiểm tra tính năng, tương tác người dùng và hiệu suất của ứng dụng.
5 Triển khai và phân phối: Khi ứng dụng đã được kiểm thử và sửa lỗi, bạn có thể triển khai nó trên các cửa hàng ứng dụng như Google Play Store hoặc App Store để người dùng có thể tải về và cài đặt.
6 Cập nhật và duy trì: Sau khi triển khai, bạn cần tiếp tục theo dõi và duy trì ứng dụng của mình Điều này bao gồm việc cập nhật tính năng, sửa lỗi và tương tác với người.
4.1.2 Tình hình thực tế trong phát triển ứng dụng di động.
Cùng với sự phát triển nhanh chóng của phần cứng, các thiết bị di động hiện tại thường có cấu hình rất tốt, với chip xử lý mạnh mẽ cùng bộ nhớ (RAM) rất tốt nên việc phát triển hay lập trình các ứng dụng trên thiết bị ngày càng trở nên dễ dàng.
Tuy nhiên đặc trưng di động của các thiết bị này cũng đem đến nhiều vấn đề mà chúng ta cần phải quan tâm như : kết nối mạng của thiết bị di động thường không ổn định
( tùy thuộc vào vị trí, tốc độ di chuyển, hạ tầng mạng ) Việc quản lý tài nguyên để tối ưu hóa lượng điện năng tiêu thụ (tiết kiệm pin).Ngoài ra việc có quá nhiều loại thiết bị di động với nhiều loại kích thước, cấu hình phần cứng khác nhau cũng khiến việc kiểm tra ứng dụng trở nên khó khăn.
Nhưng hiện nay các hãng phát triển hệ điều hành di động đã làm ra các bộ KIT phát triển (SDK) và môi trường phát triển tích hợp (IDE) rất thuận tiện cho việc viết code ,biên dịch, gỡ rối,kiểm thử,cũng như xuất bản phần mềm.
Các thiết bị di động hiện đại được trang bị thêm rất nhiều tính năng giúp cho việc tương tác vs người dùng trở nên thuận tiện (màn hình cảm ứng đa điểm, tương tác giọng nói, khuân mặt) , các loại kết nối đa dạng (NFC,GPS,4G,5G,bluetooth,), các cảm biến phong phú giúp trải nghiệm rất đa dạng ( cảm biến ánh sáng ,la bàn ,cảm biến chuyển động ) Chúng ta có thể tùy vào ứng dụng cụ thể có thể lập trình để sử dụng và phát triển những tính năng này để đem đên cho người dùng trải nghiệm tốt nhất trên thiết bị di động của mình.
Trên thị trường hiện nay có 2 hệ điều hành phổ biến nhất cho các thiết bị di động hiện nay là Google’s Androind và Apple’s IOS Mỗi ứng dụng được phát triển hầu hết sẽ được phát triển cho 2 hệ điều hành này Mỗi hệ đều có 1 chợ ứng dụng chính hãng (Google có Google play store, Apple có Apple store) với rất nhiều khách hàng tiềm năng. Ngoài việc phát triển ứng dụng cho từng hệ điều hành kể trên , người lập trình có thể lựa chọn các thư viện lập trình đa nền , để phát triển ứng dụng ,phổ biến nhất trong các ứng dụng đa nền là các ứng dụng viết bằng ngôn ngữ web (HTML,CSS,& Javascript). Trình duyệt web của các thiết bị di động đương thời có đầy đủ các tính năng lẫn hiệu năng chạy tốt các ứng dụng web hiện đại
Việc chọn hệ điều hành nào để có thể phát triển tùy thuộc vào nhiều yếu tố khác nhau như mục đích của ứng dụng, đối tượng sử dụng ,tiềm năng cũng như sự tiện lợi của hệ điều hành.
4.2 Phát triển phần mềm máy tính.
Phát triển phần mềm máy tính là quá trình tạo ra các ứng dụng chạy trên máy tính để thực hiện các nhiệm vụ cụ thể
4.2.1 Một số bước để phát triển phần mềm máy tính.
Bước1 Xác định mục tiêu và yêu cầu của phần mềm: Đầu tiên, bạn cần xác định mục tiêu của phần mềm và các yêu cầu cụ thể mà nó phải đáp ứng Điều này bao gồm việc xác định chức năng, giao diện người dùng và hiệu suất.
Theo quy mô dự án
5.1 Phát triển phần mềm doanh nghiệp.
Phần mềm dành cho doanh nghiệp, hoặc phần mềm ứng dụng dành cho doanh nghiệp,là phần mềm máy tính được các tổ chức sử dụng thay vì người dùng cá nhân Các loại phần mềm dành cho doanh nghiệp phổ biến bao gồm phần mềm tổng đài, nghiệp vụ thông minh, giao tiếp doanh nghiệp, quản lý hàng tồn kho, công cụ tiếp thị, thanh toán trực tuyến và hoạch định nguồn lực doanh nghiệp Các tổ chức sử dụng phần mềm dành cho doanh nghiệp để chạy, thay đổi quy mô và tối ưu hóa các hoạt động cũng như quy trình hàng ngày, đồng thời xây dựng nhiều ứng dụng độc đáo của riêng họ.
5.1.1 Tại sao phần mềm dành cho doanh nghiệp lại quan trọng.
Phần mềm dành cho doanh nghiệp có vai trò vô cùng quan trọng đối với chức năng kinh doanh hàng ngày cũng như các hoạt động tối quan trọng trong nhiều tổ chức Sau đây là một số ví dụ về cách tổ chức sử dụng các giải pháp phần mềm dành cho doanh nghiệp:
* Thay đổi quy mô nguồn lực
Các tổ chức sử dụng phần mềm dành cho doanh nghiệp để mở rộng quy mô hoạt động và điều hướng nguồn lực đến các chức năng cần chúng Họ có thể tăng giảm quy mô khi cần thiết, giữ cho chi phí và nguồn lực cũng như ngân sách trong tầm kiểm soát.
Ví dụ: bạn có thể sử dụng SDK Amazon Chime để bổ sung các tính năng liên lạc có thể mở rộng như giao tiếp bằng video, giọng nói và tin nhắn văn bản vào các ứng dụng dành cho doanh nghiệp hiện tại của bạn.
* Nâng cao hiệu quả tổ chức
Phần mềm ứng dụng doanh nghiệp đưa khả năng tự động hóa vào các lĩnh vực như nhân sự, tính lương, tiếp thị và nhập dữ liệu, giúp nhân viên tập trung vào những nhiệm vụ mang lại nhiều giá trị hơn cho doanh nghiệp Nó cung cấp một bộ công cụ cộng tác tiêu chuẩn và các giải pháp luồng công việc giúp giảm bớt hiện tượng lô cốt liên ngành.
* Tăng năng suất của nhân viên
Các công nghệ và công cụ như tự động hóa quy trình, phần mềm quản lý dự án, trí tuệ nhân tạo (AI), phân tích dữ liệu và máy học (ML) giúp hoạt động cộng tác giữa các nhóm trở nên dễ dàng hơn và cung cấp thông tin chuyên sâu hữu ích Các nhóm có thể giao tiếp với nhau mọi lúc mọi nơi Điều này giúp nhân viên hoàn thành công việc hàng ngày của họ một cách hiệu quả hơn.
* Tăng sự hài lòng của khách hàng
Các giải pháp phần mềm dành cho doanh nghiệp như quản lý quan hệ khách hàng, tự động hóa tiếp thị và phần mềm tổng đài đã giúp cho các tổ chức có thể xây dựng sự hiểu biết chi tiết về khách hàng và nhu cầu của họ Bằng cách tập hợp và tập trung dữ liệu khách hàng, các doanh nghiệp có thể cung cấp trải nghiệm dịch vụ được cá nhân hóa thỏa mãn nhu cầu của khách hang.
5.1.2 Phần mềm dành cho doanh nghiệp gồm những loại nào?
Hiện nay có một số loại và thương hiệu phần mềm dành cho doanh nghiệp khác nhau Phần mềm này có thể được nhóm lại thành một số hạng mục chính.
* Hoạch định nguồn lực doanh nghiệp
Phần mềm hoạch định nguồn lực doanh nghiệp (ERP) giúp các tổ chức quản lý các quản lý dự án và tính lương từ một hệ thống tập trung duy nhất Các tổ chức sử dụng phần mềm ERP để:
Quản lý tập trung dữ liệu tổ chức từ các nguồn khác nhau
Tự động hóa các tác vụ và đơn giản hóa quy trình kinh doanh
Mang lại hiệu quả hoạt động và tăng lợi nhuận
* Quản lý quan hệ khách hàng
Doanh nghiệp sử dụng phần mềm quản lý quan hệ khách hàng (CRM) và tổng đài để:
Quản lý tốt hơn các mối quan hệ khách hàng
Thu thập thông tin chuyên sâu về nhu cầu của khách hàng thông qua dữ liệu
Mang lại trải nghiệm tốt hơn cho khách hàng hiện tại
Đưa ra quyết định sáng suốt về các khách hàng tiềm năng mới
Với thông tin về khách hàng hiện tại và tiềm năng ở cùng một nơi, các doanh nghiệp có thể cá nhân hóa cách giao tiếp của họ và xây dựng mối quan hệ sâu sắc hơn Họ cũng có thể tập hợp dữ liệu từ các bộ phận khác để xây dựng quy trình bán hàng của họ và đưa ra dự báo tài chính.
Nghiệp vụ thông minh là phần mềm ứng dụng doanh nghiệp tập hợp dữ liệu được lưu trữ trong nhiều nguồn - ví dụ như đám mây, trung tâm dữ liệu tại chỗ và bảng tính - để phân tích và lập báo cáo Mọi thành viên trong tổ chức đều có một góc nhìn nhất quán về dữ liệu thông qua bảng điều khiển tương tác Phần mềm nghiệp vụ thông minh cũng làm nổi bật những mẫu và xu hướng để các nhóm có thể:
Thu được thông tin chuyên sâu có giá trị về quy trình kinh doanh
Tự tin đưa ra các quyết định chiến lược
Tránh tốn thời gian phân tích thủ công
* Quản lý chuỗi cung ứng
Chuỗi cung ứng ngày nay là mạng lưới toàn cầu vô cùng phức tạp giữa các nhà sản xuất, nhà cung cấp, hậu cần và các nhà bán lẻ hợp tác với nhau để cung cấp hàng hóa và dịch vụ Mỗi tổ chức đều cần sở hữu cơ sở hạ tầng kỹ thuật số hiệu quả để phối hợp và quản lý các tác vụ chuỗi cung ứng như:
Lập hóa đơn cho nhà cung cấp
Kiểm định nhà cung cấp
* Quản lý nguồn nhân lực
Phần mềm ứng dụng doanh nghiệp dành cho quản lý nguồn nhân lực (HR) thường được tạo thành từ các công cụ giám sát và kiểm soát những chức năng nhân sự như:
Tuyển dụng và đào tạo
Quản lý nghỉ thường niên
Giữ chân và gắn kết nhân tài
Bằng cách kết hợp tất cả các chức năng mà bộ phận nhân sự doanh nghiệp hiện đại phải giám sát, các tổ chức có thể hoạt động hiệu quả hơn và mang lại giá trị lớn hơn cho doanh nghiệp.
5.1.3 Các bước để triển khai một phần mềm quản trị doanh nghiệp hiệu quả.
1 Xác định vấn đề – Đặt mục tiêu
Phần mềm quản trị doanh nghiệp cung cấp giải pháp cho nhiều vấn đề mà doanh nghiệp phải đối mặt Tuy nhiên, điều đầu tiên rất quan trọng là xác định được vấn đề và đặt mục tiêu để triển khai phần mềm Câu hỏi đặt ra là chúng ta nên triển khai ra sao và triển khai phần mềm như thế nào?
2 Lựa chọn nhà cung cấp phù hợp
CÁC VẤN ĐỀ TRONG PHÁT TRIỂN PHẦN MỀM
Ước lượng không chính xác
Ước lượng là một phần thường không thể tránh khỏi trong quá trình phát triển phần mềm nhưng việc này cũng có thể tạo ra rủi ro nếu ước tính tạo ra những kỳ vọng không thể đáp ứng được. Ước lượng không chính xác xảy ra khi độ dài của một dự án, các cột mốc quan trọng và nhiều yếu tố khác bị nhóm dự án đánh giá thấp Ước lượng phần mềm có thể gây ra vấn đề giữa nhà phát triển và khách hàng vì chúng dẫn đến nhiều hệ lụy như thời gian của dự án dẫn đến việc tăng chi phí của dự án Rủi ro này rất có thể xảy ra và gây ảnh hưởng nghiêm trọng đến việc thực hiện dự án nếu có.
- Chỉ xây dựng công việc cần ưu tiên trước mắt;
- Tính đến Tech Spikes trong ước lượng của bạn (tức là phân bổ thời gian để tập trung vào một số vấn đề kỹ thuật hoặc vấn đề thiết kế trong dự án cần được giải quyết trước và loại bỏ rủi ro đối với một phần đặc biệt phức tạp hoặc không quen thuộc của dự án);
Các thay đổi về phạm vi
Các thay đổi về phạm vi (scope) xảy ra khi phạm vi của tác vụ thay đổi sau một khung thời gian đã được thống nhất Sự phản hồi thường xuyên của khách hàng, của các bên liên quan hoặc chủ sở hữu sản phẩm thường sẽ thường dẫn đến việc thay đổi phạm vi của một dự án.
Tuy nhiên, sự khác biệt về phạm vi tạo ra rủi ro nghiêm trọng cho các dự án Khi phạm vi thay đổi, nó ảnh hưởng đáng kể đến khả năng của các nhà phát triển trong việc bám sát dòng thời gian ban đầu của một dự án.
- Các lần lặp (iteration) ngắn, có thể quản lý được (hoặc sử dụng phương pháp Agile) cho phép có nhiều cơ hội thường xuyên hơn để phản ánh và thay đổi phạm vi dự án; và
- Xây dựng công việc ưu tiên duy nhất.
Tương tác của người dùng cuối
Rủi ro này là khi một sản phẩm được tung ra thị trường nhưng người dùng không chấp nhận các thay đổi hoặc xảy ra xung đột giữa những người dùng.
- Thử nghiệm và khảo sát người dùng;
- Làm việc với các nhóm tập trung (focus groups);
- Phát hành thường xuyên; và
Kỳ vọng của các bên liên quan
Mặc dù chúng ta đang nói về việc quản lý kỳ vọng của các bên liên quan (stakeholders) như một chiến lược giảm thiểu rủi ra, nhưng việc áp dụng chiến lược này tự nó có thể trở thành một rủi ro của dự án.
Các bên liên quan là bất kỳ cá nhân hoặc nhóm nào có thể tác động hoặc sẽ bị ảnh hưởng bởi kết quả của dự án phần mềm Các bên liên quan này có thể bao gồm từ chủ doanh nghiệp, đến nhóm phát triển, hoặc thậm chí là các nhà đầu tư vào dự án Chính mối quan hệ chặt chẽ này với kết quả dự án khiến việc quản lý kỳ vọng của từng bên liên quan trở thành một thách thức.
- Đạt được sự chấp thuận và nhận sự hồi đáp thường xuyên về dự án từ các bên liên quan;
- Tuân theo các phương pháp phát triển đã được chứng minh (chẳng hạn như phương thức Phối hợp công việc (Agile Way of Working));
- Cho các bên liên quan tham gia vào các cuộc họp quan trọng; và
- Đảm bảo các bên liên quan duy trì các kênh phản hồi hợp lý với các nhóm phát triển.
Code chất lượng kém
Khi chất lượng của một dự án không phù hợp với kỳ vọng của các bên liên quan, sẽ có nguy cơ đáng kể là dự án sẽ không thành công Code chất lượng kém có thể xảy ra vì một số lý do, chẳng hạn như khi các dự án bị đánh giá thấp và các nhà phát triển gấp rút hoàn thành các tác vụ.
Code xấu là gì? Code chất lượng kém có thể có có nhiều nghĩa Code có thể khó đọc, tức là các developers khác khó có thể xem xét hoặc thực hiện thay đổi Nó có thể đã được phát hành vội vã và không được kiểm thử, do đó còn nhiều các lỗi có thể ngăn chặn được Nói cách khác, code chất lượng kém sẽ tạo ra nguy cơ nợ kỹ thuật (technical debt). Giải pháp:
- Xây dựng các Tiêu chí chấp nhận của người dùng (User Acceptance Criteria) để các bên liên quan xác nhận dự án đạt tiêu chuẩn;
- Các tiêu chuẩn và hướng dẫn lập trình rõ ràng;
- Kiểm tra tất cả các code;
- Chỉ định một Giám đốc Sản phẩm chuyên trách để giám sát chất lượng của dự án và nắm quyền sở hữu đối với tất cả các bên liên quan về sự thành công và thất bại;
Khi một nhóm dự án bị tụt lại so với kế hoạch về thời gian, bạn có thể cần phải kiểm tra năng suất của nhóm phát triển Mặc dù không chắc, nhưng năng suất kém có thể là nguyên nhân.
- Văn hóa con người của công ty bạn;
- Lên kế hoạch thời gian có thể đạt được trong dài hạn để tránh tình trạng kiệt sức của nhân viên.
- Tìm một Giám đốc sản phẩm tham gia trực tiếp và cộng tác với nhóm
7 Quản lý rủi ro không đầy đủ.
Quản lý rủi ro không đầy đủ có thể xảy ra khi bất kỳ rủi ro cụ thể nào của dự án phần mềm không được các bên liên quan nhận biết và giảm thiểu (mitigate) một cách thích hợp.
- Một giải pháp tốt hơn là xem xét các chiến lược giảm thiểu ngay từ đầu và liên tục đánh giá trong suốt dự án phần mềm Có rất nhiều rủi ro khi xây dựng phần mềm, và nếu rủi ro được xác định một cách hiệu quả thì nó có thể được giảm thiểu.
- Đưa các rủi ro vào trong ước lượng; và
- Sử dụng Sổ đăng ký rủi ro (Risk Register) để quản lý các rủi ro của dự án
8 Ít có sự tham gia của các bên liên quan.
Là khi khách hàng hoặc bên liên quan mà bạn đang cộng tác không tham gia với nhóm của bạn ở tần suất cần thiết Việc ít tham gia của các bên liên quan là một rủi ro đáng kể đối với các dự án vì phản hồi chậm từ khách hàng có thể ảnh hưởng đến kế hoạch ra mắt sản phẩm.
- Thỏa thuận rõ ràng với khách hàng hoặc các bên liên quan về thời gian phản hồi, đặc biệt đối với bất kỳ Thử nghiệm chấp nhận người dùng (User Acceptance Testing) nào; và
- Lựa chọn hiệu quả việc hoàn thành và các mục tiêu của dự án.
Nguồn nhân lực không đủ
Mặc dù không chắc chắn, nhưng đôi khi một bên liên quan hoặc thành viên nhóm phát triển phải rời khỏi dự án một cách đột xuất Điều này có thể tạo ra rủi ro cho dự án, đặc biệt nếu kiến thức về dự án không được ghi chép đầy đủ.
- Duy trì cập nhật tài liệu;
- Cung cấp các tài liệu hướng dẫn đầy đủ cho người mới tham gia; và
- Theo dõi lịch trình làm việc của nhóm một cách thường xuyên.
Quyền sở hữu phần mềm là quan trọng để đảm bảo luôn có người trong nhóm chịu trách nhiệm về phần mềm được chuyển giao và chịu trách nhiệm về những thành công và thất bại.
Thật không may, rủi ro này thường chỉ trở nên rõ ràng khi có sự cố xảy ra trong một dự án Do đó, ngay từ đầu phải xác định rõ ai là người chịu trách nhiệm về những khía
- Đặt ra trách nhiệm cho các bên liên quan;
- Thiết lập các kênh liên lạc rõ ràng giữa các bên liên quan với sự minh bạch và trung thực.
- Ghi lại các cuộc họp và các mục hành động có thể phát sinh; và ỨNG DỤNG CỦA PHÁT TRIỂN PHẦN MỀM Đề tài “ Phân loại trong phát triển phần mềm và các vấn đề thường gặp” mang lại nhiều ứng dụng quan trọng trong lĩnh vực phát triển phần mềm Dưới đây là một số ứng dụng tiêu biểu:
1.Quy trình phát triển phần mềm hiệu quả hơn.
Việc nắm vững phân loại giúp nhóm phát triển xác định rõ mục tiêu, phạm vi và yêu cầu của dự án Điều này giúp tối ưu hóa quy trình phát triển, từ việc lập kế hoạch, thiết kế, mã hóa, kiểm thử đến triển khai.
2.Tối ưu hóa được kiểm thử và đảm bảo chất lượng.
Hiểu rõ các vấn đề thường gặp giúp tối ưu hóa quy trình kiểm thử Bằng cách tập trung vào các điểm quan trọng, nhóm phát triển có thể đảm bảo tính ổn định và chất lượng của phần mềm.
3 Quản lý dự án hiệu quả hơn.
Khả năng quản lý vấn đề phát triển phần mềm giúp nhóm theo dõi tiến độ, ưu tiên công việc và tối ưu hóa tài nguyên Điều này giúp đảm bảo rằng dự án được hoàn thành đúng hạn và trong ngân sách.
4 Nâng cao bảo mật và an toàn thông tin.
Hiểu rõ các vấn đề về bảo mật giúp nhóm phát triển xác định và giải quyết các lỗ hổng và mối đe dọa an ninh Điều này cực kỳ quan trọng đối với các ứng dụng và hệ thống chứa thông tin nhạy cảm.
5 Tăng cường trải nghiệm người dùng.
Phân loại giúp tập trung vào việc thiết kế giao diện người dùng (UI/UX) tốt hơn Điều này đảm bảo rằng ứng dụng có giao diện thân thiện và dễ sử dụng, từ đó tăng cường trải nghiệm người dùng.
6.giảm thiểu rủi ro và tối ưu hóa hiệu năng.
Hiểu rõ các vấn đề thường gặp giúp tránh những sai lầm phổ biến và tối ưu hóa hiệu năng của phần mềm Điều này đồng nghĩa với việc giảm thiểu thời gian và nguồn lực phát triển.
Tóm lại, đề tài này có ứng dụng rộng rãi trong việc cải thiện quy trình phát triển phần mềm và đảm bảo chất lượng của sản phẩm cuối cùng Những kiến thức và kỹ năng thu được từ nghiên cứu về đề tài này sẽ mang lại lợi ích lớn cho cá nhân và tổ chức tham gia vào ngành công nghệ phần mềm.