Quản lý dự án phần mềm
Mô hình công việc của một công ty CNTT tham gia vào phát triển phần mềm có thể được chia thành hai phần:
- Tạo phần mềm
- Quản lý dự án phần mềm
Một dự án là nhiệm vụ được xác định rõ ràng, là tập hợp của một số hoạt động được thực hiện để đạt được mục tiêu (ví dụ: phát triển và phân phối phần mềm). Một Dự án có thể được mô tả như sau:
- Mỗi dự án có thể có một mục tiêu duy nhất và khác biệt.
- Dự án không phải là hoạt động thường ngày hoặc hoạt động hàng ngày.
- Dự án có thời gian bắt đầu và thời gian kết thúc.
- Dự án kết thúc khi mục tiêu của nó đạt được do đó nó là một giai đoạn tạm thời trong vòng đời của một tổ chức.
- Dự án cần có đủ nguồn lực về thời gian, nhân lực, tài chính, vật lực và ngân hàng tri thức.
Dự án phần mềm
Dự án phần mềm là toàn bộ quy trình phát triển phần mềm từ thu thập yêu cầu đến kiểm tra và bảo trì, được thực hiện theo phương pháp thực thi, trong một khoảng thời gian xác định để đạt được sản phẩm phần mềm dự kiến.
Cần quản lý dự án phần mềm
Phần mềm được cho là một sản phẩm vô hình. Phát triển phần mềm là một loại hình hoàn toàn mới trong kinh doanh thế giới và có rất ít kinh nghiệm trong việc xây dựng các sản phẩm phần mềm. Hầu hết các sản phẩm phần mềm được thiết kế riêng để phù hợp với yêu cầu của khách hàng. Điều quan trọng nhất là công nghệ cơ bản thay đổi và tiến bộ thường xuyên và nhanh chóng đến mức trải nghiệm của một sản phẩm có thể không được áp dụng cho sản phẩm kia. Tất cả những ràng buộc về kinh doanh và môi trường như vậy đều mang lại rủi ro trong quá trình phát triển phần mềm, do đó cần phải quản lý các dự án phần mềm một cách hiệu quả.
Hình ảnh trên cho thấy ba hạn chế đối với các dự án phần mềm. Nó là một phần thiết yếu của tổ chức phần mềm để cung cấp sản phẩm chất lượng, giữ chi phí trong giới hạn ngân sách của khách hàng và cung cấp dự án theo đúng lịch trình. Có một số yếu tố, cả bên trong và bên ngoài, có thể tác động đến tam giác ràng buộc ba này. Bất kỳ yếu tố nào trong ba yếu tố đều có thể ảnh hưởng nghiêm trọng đến hai yếu tố còn lại.
Do đó, quản lý dự án phần mềm là điều cần thiết để kết hợp các yêu cầu của người dùng cùng với các hạn chế về ngân sách và thời gian.
Quản lý dự án phần mềm
Người quản lý dự án phần mềm là người đảm nhận trách nhiệm thực hiện dự án phần mềm. Người quản lý dự án phần mềm hiểu rõ tất cả các giai đoạn của SDLC mà phần mềm sẽ trải qua. Người quản lý dự án có thể không bao giờ trực tiếp tham gia sản xuất sản phẩm cuối cùng nhưng anh ta kiểm soát và quản lý các hoạt động liên quan đến sản xuất.
Người quản lý dự án giám sát chặt chẽ quá trình phát triển, chuẩn bị và thực hiện các kế hoạch khác nhau, sắp xếp các nguồn lực cần thiết và đầy đủ, duy trì liên lạc giữa tất cả các thành viên trong nhóm để giải quyết các vấn đề về chi phí, ngân sách, nguồn lực, thời gian, chất lượng và sự hài lòng của khách hàng.
Hãy để chúng tôi thấy một số trách nhiệm mà người quản lý dự án phải gánh vác -
Quản lý con người
- Hoạt động như trưởng dự án
- Liên hệ với các bên liên quan
- Quản lý nguồn nhân lực
- Thiết lập phân cấp báo cáo, v.v.
Quản lý dự án
- Xác định và thiết lập phạm vi dự án
- Quản lý các hoạt động quản lý dự án
- Giám sát tiến độ và hiệu suất
- Phân tích rủi ro ở mọi giai đoạn
- Thực hiện các bước cần thiết để tránh hoặc thoát khỏi vấn đề
- Làm người phát ngôn của dự án
Hoạt động quản lý phần mềm
Quản lý dự án phần mềm bao gồm một số hoạt động, bao gồm lập kế hoạch dự án, quyết định phạm vi sản phẩm phần mềm, ước tính chi phí theo các điều khoản khác nhau, lập lịch trình các nhiệm vụ và sự kiện và quản lý tài nguyên. Các hoạt động quản lý dự án có thể bao gồm:
- Project Planning
- Scope Management
- Project Estimation
Lập kế hoạch dự án
Lập kế hoạch dự án phần mềm là nhiệm vụ, được thực hiện trước khi quá trình sản xuất phần mềm thực sự bắt đầu. Nó ở đó để sản xuất phần mềm nhưng không liên quan đến hoạt động cụ thể nào có liên quan đến hướng sản xuất phần mềm; đúng hơn nó là một tập hợp nhiều quy trình, tạo điều kiện cho việc sản xuất phần mềm. Lập kế hoạch dự án có thể bao gồm những điều sau:
Phạm vi quản lí
Nó xác định phạm vi của dự án; điều này bao gồm tất cả các hoạt động, quá trình cần được thực hiện để tạo ra một sản phẩm phần mềm có thể phân phối. Quản lý phạm vi là điều cần thiết vì nó tạo ra ranh giới của dự án bằng cách xác định rõ ràng những gì sẽ được thực hiện trong dự án và những gì sẽ không được thực hiện. Điều này làm cho dự án chứa các tác vụ có giới hạn và có thể định lượng được, có thể dễ dàng được ghi lại và do đó tránh được chi phí và thời gian chạy quá nhiều.
Trong quá trình quản lý Phạm vi dự án, cần phải -
- Xác định phạm vi
- Quyết định xác minh và kiểm soát nó
- Chia dự án thành nhiều phần nhỏ khác nhau để dễ quản lý.
- Xác minh phạm vi
- Kiểm soát phạm vi bằng cách kết hợp các thay đổi đối với phạm vi
Dự toán dự án
Để quản lý hiệu quả, cần phải ước lượng chính xác các biện pháp khác nhau. Với việc lập dự toán chính xác, các nhà quản lý có thể quản lý và kiểm soát dự án hiệu quả hơn.
Dự toán dự án có thể bao gồm những điều sau:
- Software size estimation
Kích thước phần mềm có thể được ước tính theo KLOC (Dòng mã Kilo) hoặc bằng cách tính toán số điểm chức năng trong phần mềm. Các dòng mã phụ thuộc vào thực tiễn mã hóa và các điểm Chức năng thay đổi tùy theo yêu cầu của người dùng hoặc phần mềm.
- Effort estimation
Các nhà quản lý ước tính các nỗ lực về yêu cầu nhân sự và giờ công cần thiết để sản xuất phần mềm. Đối với nỗ lực ước tính kích thước phần mềm nên được biết. Điều này có thể được rút ra từ kinh nghiệm của người quản lý, dữ liệu lịch sử của tổ chức hoặc quy mô phần mềm có thể được chuyển đổi thành nỗ lực bằng cách sử dụng một số công thức tiêu chuẩn.
- Time estimation
Khi kích thước và nỗ lực được ước tính, thời gian cần thiết để sản xuất phần mềm có thể được ước tính. Các nỗ lực cần thiết được phân tách thành các danh mục phụ theo yêu cầu kỹ thuật và sự phụ thuộc lẫn nhau của các thành phần khác nhau của phần mềm. Các nhiệm vụ phần mềm được chia thành các nhiệm vụ, hoạt động hoặc sự kiện nhỏ hơn theo Cấu trúc Đột phá Công việc (WBS). Các nhiệm vụ được lên lịch hàng ngày hoặc theo tháng dương lịch.
Tổng thời gian cần thiết để hoàn thành tất cả các công việc tính bằng giờ hoặc ngày là tổng thời gian đã đầu tư để hoàn thành dự án.
- Cost estimation
Đây có thể coi là khó khăn nhất vì nó phụ thuộc vào nhiều yếu tố hơn bất kỳ yếu tố nào trước đó. Để ước tính chi phí dự án, cần phải xem xét -
- Kích thước của phần mềm
- Chất lượng phần mềm
- Hardware
- Phần mềm hoặc công cụ bổ sung, giấy phép, v.v.
- Nhân viên lành nghề với các kỹ năng cụ thể cho nhiệm vụ
- Du lịch liên quan
- Communication
- Đào tạo và hỗ trợ
Kỹ thuật ước tính dự án
Chúng tôi đã thảo luận về các thông số khác nhau liên quan đến ước tính dự án như quy mô, nỗ lực, thời gian và chi phí.
Người quản lý dự án có thể ước tính các yếu tố được liệt kê bằng cách sử dụng hai kỹ thuật được công nhận rộng rãi:
Kỹ thuật phân hủy
Kỹ thuật này giả định phần mềm là sản phẩm của nhiều thành phần khác nhau.
Có hai mô hình chính -
- Line of Code Việc ước lượng được thực hiện thay mặt cho số dòng mã trong sản phẩm phần mềm.
- Function Points Ước tính được thực hiện thay mặt cho số điểm chức năng trong sản phẩm phần mềm.
Kỹ thuật ước tính thực nghiệm
Kỹ thuật này sử dụng các công thức có nguồn gốc thực nghiệm để ước tính. Các công thức này dựa trên LOC hoặc FP.
- Putnam Model
Mô hình này được thực hiện bởi Lawrence H. Putnam, dựa trên phân bố tần số của Norden (đường cong Rayleigh). Mô hình Putnam ánh xạ thời gian và nỗ lực cần thiết với kích thước phần mềm.
- COCOMO
COCOMO là viết tắt của COnstructive COst MOdel, được phát triển bởi Barry W. Boehm. Nó chia sản phẩm phần mềm thành ba loại phần mềm: phần mềm hữu cơ, phần tách rời và phần mềm nhúng.
Lập kế hoạch dự án
Lập kế hoạch dự án trong một dự án đề cập đến lộ trình của tất cả các hoạt động được thực hiện theo thứ tự cụ thể và trong khoảng thời gian được phân bổ cho mỗi hoạt động. Người quản lý dự án có xu hướng xác định các nhiệm vụ khác nhau và các mốc quan trọng của dự án và sắp xếp chúng theo các yếu tố khác nhau. Họ tìm kiếm các nhiệm vụ nằm trong lộ trình quan trọng trong lịch trình, cần thiết để hoàn thành theo cách cụ thể (vì nhiệm vụ phụ thuộc lẫn nhau) và nghiêm ngặt trong thời gian được phân bổ. Việc sắp xếp các nhiệm vụ nằm ngoài lộ trình quan trọng ít có khả năng ảnh hưởng đến toàn bộ tiến độ của dự án.
Để lên lịch cho một dự án, cần phải -
- Chia nhỏ các nhiệm vụ dự án thành dạng nhỏ hơn, dễ quản lý
- Tìm ra các nhiệm vụ khác nhau và tương quan chúng
- Ước tính khung thời gian cần thiết cho mỗi nhiệm vụ
- Chia thời gian thành các đơn vị công việc
- Chỉ định đủ số lượng đơn vị công việc cho mỗi nhiệm vụ
- Tính tổng thời gian cần thiết cho dự án từ đầu đến cuối
Quản lý tài nguyên
Tất cả các yếu tố được sử dụng để phát triển một sản phẩm phần mềm có thể được coi là tài nguyên cho dự án đó. Điều này có thể bao gồm nguồn nhân lực, công cụ sản xuất và thư viện phần mềm.
Các nguồn lực có sẵn với số lượng hạn chế và ở trong tổ chức dưới dạng một nhóm tài sản. Sự thiếu hụt nguồn lực cản trở sự phát triển của dự án và có thể bị chậm tiến độ. Cuối cùng, phân bổ các nguồn lực bổ sung sẽ làm tăng chi phí phát triển. Do đó cần phải ước tính và phân bổ nguồn lực đầy đủ cho dự án.
Quản lý tài nguyên bao gồm -
- Xác định tổ chức dự án phù hợp bằng cách tạo một nhóm dự án và phân bổ trách nhiệm cho từng thành viên trong nhóm
- Xác định các nguồn lực cần thiết ở một giai đoạn cụ thể và tính khả dụng của chúng
- Quản lý Tài nguyên bằng cách tạo yêu cầu tài nguyên khi chúng được yêu cầu và phân bổ chúng khi không cần nữa.
Quản lý rủi ro dự án
Quản lý rủi ro bao gồm tất cả các hoạt động liên quan đến xác định, phân tích và lập dự phòng cho các rủi ro có thể dự đoán được và không thể dự đoán được trong dự án. Rủi ro có thể bao gồm những điều sau:
- Nhân viên có kinh nghiệm rời dự án và nhân viên mới đến.
- Thay đổi trong quản lý tổ chức.
- Yêu cầu thay đổi hoặc hiểu sai yêu cầu.
- Ước tính thấp thời gian và nguồn lực cần thiết.
- Thay đổi công nghệ, thay đổi môi trường, cạnh tranh kinh doanh.
Quy trình quản lý rủi ro
Có các hoạt động sau liên quan đến quá trình quản lý rủi ro:
- Identification - Ghi chú tất cả các rủi ro có thể xảy ra, có thể xảy ra trong dự án.
- Categorize - Phân loại rủi ro đã biết thành cường độ rủi ro cao, trung bình và thấp tùy theo tác động có thể có của chúng đối với dự án.
- Manage - Phân tích xác suất xảy ra rủi ro ở các giai đoạn khác nhau. Lập kế hoạch để tránh hoặc đối mặt với rủi ro. Cố gắng giảm thiểu tác dụng phụ của chúng.
- Monitor - Theo dõi chặt chẽ các nguy cơ tiềm ẩn và các triệu chứng ban đầu của chúng. Đồng thời theo dõi ảnh hưởng của các bước được thực hiện để giảm thiểu hoặc tránh chúng.
Thực hiện & Giám sát Dự án
Trong giai đoạn này, các nhiệm vụ được mô tả trong kế hoạch dự án được thực hiện theo lịch trình của chúng.
Việc thực hiện cần theo dõi để kiểm tra xem mọi thứ có diễn ra theo đúng kế hoạch hay không. Giám sát là quan sát để kiểm tra xác suất rủi ro và thực hiện các biện pháp để giải quyết rủi ro hoặc báo cáo tình trạng của các nhiệm vụ khác nhau.
Các biện pháp này bao gồm -
- Activity Monitoring - Tất cả các hoạt động được lên lịch trong một số nhiệm vụ có thể được giám sát hàng ngày. Khi tất cả các hoạt động trong một nhiệm vụ được hoàn thành, nó được coi là hoàn thành.
- Status Reports - Các báo cáo chứa tình trạng của các hoạt động và nhiệm vụ đã hoàn thành trong một khung thời gian nhất định, thường là một tuần. Trạng thái có thể được đánh dấu là đã hoàn thành, đang chờ xử lý hoặc đang tiến hành, v.v.
- Milestones Checklist - Mỗi dự án được chia thành nhiều giai đoạn trong đó các nhiệm vụ chính được thực hiện (các mốc quan trọng) dựa trên các giai đoạn của SDLC. Danh sách kiểm tra cột mốc này được lập vài tuần một lần và báo cáo trạng thái của các cột mốc quan trọng.
Quản lý truyền thông dự án
Giao tiếp hiệu quả đóng vai trò quan trọng trong sự thành công của một dự án. Nó thu hẹp khoảng cách giữa khách hàng và tổ chức, giữa các thành viên trong nhóm cũng như các bên liên quan khác trong dự án như nhà cung cấp phần cứng.
Giao tiếp có thể bằng miệng hoặc bằng văn bản. Quy trình quản lý thông tin liên lạc có thể có các bước sau:
- Planning - Bước này bao gồm nhận dạng của tất cả các bên liên quan trong dự án và phương thức giao tiếp giữa họ. Nó cũng xem xét nếu cần bất kỳ phương tiện liên lạc bổ sung nào.
- Sharing - Sau khi xác định các khía cạnh khác nhau của kế hoạch, người quản lý tập trung vào việc chia sẻ thông tin chính xác với đúng người vào đúng thời gian. Điều này giúp mọi người tham gia dự án được cập nhật về tiến độ dự án và tình trạng của nó.
- Feedback - Người quản lý dự án sử dụng các biện pháp và cơ chế phản hồi khác nhau và tạo báo cáo trạng thái và hiệu suất. Cơ chế này đảm bảo rằng đầu vào từ các bên liên quan khác nhau sẽ đến với người quản lý dự án dưới dạng phản hồi của họ.
- Closure - Vào cuối mỗi sự kiện lớn, kết thúc giai đoạn SDLC hoặc kết thúc dự án, việc đóng quản trị được thông báo chính thức để cập nhật cho mọi bên liên quan bằng cách gửi email, bằng cách phân phối bản cứng của tài liệu hoặc bằng các phương tiện liên lạc hiệu quả khác.
Sau khi kết thúc, nhóm chuyển sang giai đoạn hoặc dự án tiếp theo.
Quản lý cấu hình
Quản lý cấu hình là một quá trình theo dõi và kiểm soát những thay đổi trong phần mềm về các yêu cầu, thiết kế, chức năng và sự phát triển của sản phẩm.
IEEE định nghĩa nó là “quá trình xác định và xác định các mục trong hệ thống, kiểm soát sự thay đổi của các mục này trong suốt vòng đời của chúng, ghi lại và báo cáo trạng thái của các mục và yêu cầu thay đổi, đồng thời xác minh tính đầy đủ và đúng đắn của các mục”.
Nói chung, khi SRS được hoàn thiện, sẽ có ít khả năng yêu cầu thay đổi từ người dùng hơn. Nếu chúng xảy ra, các thay đổi chỉ được giải quyết khi có sự chấp thuận trước của cấp quản lý cao hơn, vì có khả năng chi phí và thời gian bị vượt quá.
Đường cơ sở
Một giai đoạn của SDLC được giả định hơn nếu nó là cơ sở, tức là đường cơ sở là một phép đo xác định mức độ hoàn chỉnh của một giai đoạn. Một giai đoạn được xác định cơ sở khi tất cả các hoạt động liên quan đến nó được kết thúc và được ghi lại đầy đủ. Nếu nó không phải là giai đoạn cuối cùng, đầu ra của nó sẽ được sử dụng trong giai đoạn tiếp theo.
Quản lý cấu hình là một kỷ luật của quản trị tổ chức, quản lý sự cố xảy ra bất kỳ thay đổi nào (quy trình, yêu cầu, công nghệ, chiến lược, v.v.) sau khi một giai đoạn được xác định. CM luôn kiểm tra mọi thay đổi được thực hiện trong phần mềm.
Kiểm soát thay đổi
Kiểm soát thay đổi là chức năng của quản lý cấu hình, đảm bảo rằng tất cả các thay đổi được thực hiện đối với hệ thống phần mềm là nhất quán và được thực hiện theo các quy tắc và quy định của tổ chức.
Việc thay đổi cấu hình của sản phẩm thực hiện theo các bước sau:
Identification- Yêu cầu thay đổi đến từ nguồn bên trong hoặc bên ngoài. Khi yêu cầu thay đổi được xác định chính thức, nó sẽ được ghi lại một cách chính xác.
Validation - Tính hợp lệ của yêu cầu thay đổi được kiểm tra và quy trình xử lý của nó được xác nhận.
Analysis- Tác động của yêu cầu thay đổi được phân tích về lịch trình, chi phí và các nỗ lực cần thiết. Tác động tổng thể của sự thay đổi trong tương lai đối với hệ thống được phân tích.
Control- Nếu sự thay đổi trong tương lai tác động đến quá nhiều thực thể trong hệ thống hoặc không thể tránh khỏi, thì bắt buộc phải có sự chấp thuận của các cơ quan có thẩm quyền cấp cao trước khi sự thay đổi được đưa vào hệ thống. Nó được quyết định nếu thay đổi có giá trị kết hợp hay không. Nếu không, yêu cầu thay đổi chính thức bị từ chối.
Execution - Nếu giai đoạn trước xác định thực hiện yêu cầu thay đổi, giai đoạn này thực hiện các hành động thích hợp để thực hiện thay đổi, thực hiện sửa đổi kỹ lưỡng nếu cần thiết.
Close request- Thay đổi được xác minh để thực hiện đúng và hợp nhất với phần còn lại của hệ thống. Thay đổi mới được kết hợp này trong phần mềm được ghi lại đúng cách và yêu cầu được chính thức đóng lại.
Công cụ quản lý dự án
Rủi ro và sự không chắc chắn tăng lên gấp bội lần so với quy mô của dự án, ngay cả khi dự án được phát triển theo các phương pháp luận đã định.
Có sẵn các công cụ hỗ trợ quản lý dự án hiệu quả. Một số được mô tả -
Biểu đồ Gantt
Biểu đồ Gantt do Henry Gantt (1917) nghĩ ra. Nó đại diện cho lịch trình của dự án đối với các khoảng thời gian. Nó là một biểu đồ thanh ngang với các thanh thể hiện các hoạt động và thời gian được lên lịch cho các hoạt động của dự án.
Biểu đồ PERT
Biểu đồ PERT (Kỹ thuật Đánh giá & Đánh giá Chương trình) là một công cụ mô tả dự án dưới dạng sơ đồ mạng. Nó có khả năng biểu diễn đồ họa các sự kiện chính của dự án theo cách song song và liên tiếp. Các sự kiện xảy ra nối tiếp nhau, cho thấy sự phụ thuộc của sự kiện sau so với sự kiện trước đó.
Các sự kiện được hiển thị dưới dạng các nút được đánh số. Chúng được kết nối với nhau bằng các mũi tên có nhãn mô tả trình tự các nhiệm vụ trong dự án.
Biểu đồ tài nguyên
Đây là một công cụ đồ họa chứa thanh hoặc biểu đồ đại diện cho số lượng tài nguyên (thường là nhân viên lành nghề) cần thiết theo thời gian cho một sự kiện (hoặc giai đoạn) của dự án. Biểu đồ nguồn lực là một công cụ hữu hiệu để lập kế hoạch và điều phối nhân viên.
Phân tích đường dẫn quan trọng
Công cụ này hữu ích trong việc nhận ra các nhiệm vụ phụ thuộc lẫn nhau trong dự án. Nó cũng giúp tìm ra con đường ngắn nhất hoặc con đường quan trọng để hoàn thành dự án thành công. Giống như sơ đồ PERT, mỗi sự kiện được phân bổ cho một khung thời gian cụ thể. Công cụ này cho thấy sự phụ thuộc của sự kiện giả sử một sự kiện chỉ có thể tiếp tục nếu sự kiện trước đó được hoàn thành.
Các sự kiện được sắp xếp theo thời gian bắt đầu sớm nhất có thể. Đường dẫn giữa nút bắt đầu và nút kết thúc là đường dẫn quan trọng không thể giảm hơn nữa và tất cả các sự kiện yêu cầu phải được thực hiện theo cùng một thứ tự.