Dự án phần mềm là một đối tượng quản lý phức tạp và có nhiều đặc trưng riêng. Đó là một hệ thống phức hợp của các mối quan hệ công việc – công việc, con người – công việc, con người
Trang 1Theo John D.Sterman [20], các dự án lớn là những hệ thống phức hợp:
Phức tạp, bao gồm nhiều thành phần phụ thuộc lẫn nhau
Thay đổi một thành phần sẽ ảnh hưởng lên các thành phần khác Mô hình mô phỏng liên tục có thể mô phỏng tốt đặc điểm này
Trang 2Trong các quan hệ không tuyến tính, hiệu quả các tác động không phải là đơn giản theo một tỷ lệ nhất định
Cần dữ liệu “cứng” và “mềm”
Dữ liệu “mềm” là các dữ liệu liên quan đến con người và tổ chức cần thiết cho quá trình ra quyết định Nó được thể hiện dưới dạng các đặc tả về hệ thống, cơ cấu tổ chức, mục tiêu, phỏng vấn, quan sát…bên cạnh các dữ liệu
số
Ngoài ra ngành công nghiệp phần mềm còn gặp nhiều thử thách từ bên ngoài: Yêu cầu của khách hàng ngày càng cao, thời gian thực hiện ngày càng ngắn Các phần mềm ngày càng gia tăng tính phức tạp
Công nghệ thay đổi nhanh
Nguồn nhân lực cho dự án thường thiếu và không đạt yêu cầu Thay đổi là không thể tránh khỏi:
o Thay đổi yêu cầu, phạm vi dự án o Thay đổi thiết kế
o Biến động nhân sự
Do đó nhu cầu về những công cụ và phương pháp mới hiệu quả hơn trở nên bức thiết đối với ngành công nghiệp phần mềm.
Trang 3đủ thời gian để xử lý Các thành viên trong dự án
không phối hợp tốt với nhau
Thiếu quy trình quản lý các yêu cầu của dự án
Giao tiếp kém hiệu quả (giũa các thành viên trong nhóm, với khách hàng)
Kiểm tra chất lượng thiếu chặt chẽ
Đánh giá chủ quan về tiến độ dự án
Không đánh giá được ảnh hưởng của các thay đổi
Theo tác giả thì các nguyên nhân trên khó có thể giải quyết triệt để nếu không có sự thay đổi sâu sắc về mặt nhận thức và phương pháp
Có nhiều yếu tố làm cho dự án thất bại Các yếu tố bên ngoài thường được viện dẫn nhưng thực ra nguyên nhân chính lại nằm trong nội bộ dự án, đó là hệ thống quản lý dự án kém hiệu quả (về mặt tổ chức, các thủ tục và cách thực hiện) Một hệ thống quản lý dự án tốt phải có khả năng đối phó với những biến động bên ngoài và đảm bảo sự thành công mà không phụ thuộc vào môi trường [17]
Trang 4Có nhiều yếu tố ảnh hưởng đến kết quả dự án Tuy nhiên các nhà quản lý dự án chỉ chú trọng các yếu tố về kỹ thuật
Hình 3.1 Các yếu tố ảnh hưởng đến kết quả dự án
Sự biến động nhân sự
Quy trình làm việc
NĂNG SUẤT CỦA LẬP
Số lượng thành viên
Năng lực của các thành viên
Kỹ năng làm việc nhóm
Đông cơ làm việc
Tổ chức dự án
Giao tiếp với khách hàng
Thay đổi yêu cầu và thiết kế
Trang 53.2 Dự An Gia Công Phần Mềm
3.2.1 Mục tiêu của dự án gia công phần mềm
Là tạo ra sản phẩm phần mềm đạt yêu cầu khách hàng với thời gian và chi phí cho phép
Để nâng cao năng lực cạnh tranh, các công ty gia công phần mềm phải luôn tìm cách:
Giảm chi phí bằng cách nâng cao năng suất lao động và hiệu quả sử dụng nguồn nhân lực, áp dụng các công nghệ và kỹ thuật mới
Nâng cao chất lượng bằng cách cải tiến quy trình
Hoàn thành dự án đúng hạn bằng phương pháp quản lý dự án hiệu quả và chặt chẽ
3.2.2 Tổ chức trong một công ty gia công phần mềm
Dự án nhỏ chỉ có một nhóm duy nhất Dự án trung bình hoặc lớn được chia thành các nhóm nhỏ Mỗi nhóm có một trưởng nhóm (team leader) trực tiếp quản lý Trưởng dự án (project manager) có trách nhiệm quản lý chung
Quan hệ giữa nhóm thực hiện dự án với các nhóm chức năng
Công ty phần mềm thường có các nhóm chức năng hỗ trợ các dự án:
o Bộ phận nhân sự (HR – Human Resource): cung cấp nhân lực, tuyển dụng o Bộ phận huấn luyện & đào tạo (Training): Tổ chức huấn luyện các kỹ năng
mà dự án yêu cầu
o Nhóm đảm bảo chất lượng (SQA – Software Quality Assurance): Hỗ trợ trưởng dự án trong việc thiết lập các quy trình và đảm bảo các quy trình này sẽ được thực hiện đầy đủ
Trang 6o Mạng/hệ thống (IT/System/Network): hỗ trợ mạng, phần cứng, cơ sở hạ tầng cho tất cả các nhân viên trong công ty
Hình 3.2 Tổ chức trong công ty gia công phần mềm
3.2.3 Quy trình gia công phần mềm
Một đặc điểm khác biệt của dự án gia công phần mềm với sự án phát triển sản phẩm mới là có khách hàng cụ thể và cần giao tiếp với khách hàng trong suốt quá trình thực hiện dự án Nhiệm vụ của dự án là tạo ra sản phẩm phần mềm theo các yêu cầu khách hàng đưa ra ban đầu
Khi dự án bắt đầu, nhóm làm việc sẽ được thành lập Nhóm sẽ giao tiếp với khách hàng để thu thập các yêu cầu Sau đó thực hiện phần mềm và giao hàng
Mỗi công ty thường áp dụng một loại quy trình khác nhau: thác nước (water-fall), lặp (iteration), xoắn ốc (spiral)…
Hình 3.3 Quy trình tiêu biểu thực hiện một dự án gia công phần mềm
Trưởng dự án 1
Trưởng nhóm 1
Thành viên 1 Thành viên 2
Trưởng nhóm 1
Thành viên 1 Thành viên 2
Nhân sự
Đào tạo
Đảm bảo chất lượng
Mạng/hệ thống
Giám đốc
Trưởng dự án 2
Trang 7Bắt đầu dự án
Tiến độ, thực hiện dự án
Hoạt động điều chỉnh
Kiểm soát dự án
Trang 8(Roles and Responsibilities)
Bảng liệt kê công việc (WBS – Work Breakdown Structure) Thời gian thực hiện (Schedule and Milestones)
Quy trình thực hiện (Development Process) và đảm bảo chất lượng (Quality Assurance)
Các giả định (Assumtions) và rủi ro (risks)
3.2.5 Một số đặc điểm của công nghiệp gia công phần mềm VN
Nguồn: Hội tin học Tp.HCM[24], [26]
Chính sách, quy trình của công ty
Các công cụ & kỹ thuật lập
dự án
Các thông tin về dự án Số liệu các dự án trước
Các giả định
Bản kế hoạch thực hiện dự án
Trang 9 So với các doanh nghiệp sản xuất phần mềm cho thị trường trong nước, các doanh nghiệp gia công phần mềm Việt Nam có trình độ hơn hẳn về tính chuyên nghiệp, năng lực quản lý dự án, kỹ năng tiếng Anh, điều kiện làm việc…Khác biệt này là do các yếu tố sau:
o Các khách hàng nước ngoài có yêu cầu nghiêm ngặt về chất lượng, thời gian giao hàng, khả năng giao tiếp…doanh nghiệp nào không đảm bảo được các yếu tố này sẽ mất khách hàng và không tồn tại được
o Các doanh nghiệp gia công phần mềm phần lớn là do người nước ngoài hoặc Việt kiều thành lập, bỏ vốn đầu tư và trực tiếp quản lý Do có nguồn vốn mạnh nên các doanh nghiệp này có khả năng đầu tư tốt về cơ sở hạ tầng, trả lương cao để thu hút nguồn nhân lực chất lượng cao Ngoài ra tổ chức và quản lý cũng theo mô hình Bắc Mỹ, Châu Au và Nhật Bản
Tuy nhiên so với các nước có ngành công nghiệp gia công phần mềm phát triển hơn như An Độ, các doanh nghiệp Việt Nam vẫn còn nhiều hạn chế:
o Thiếu quy trình rõ ràng và được chuẩn hoá Cách quản lý chủ yếu dựa vào kinh nghiệm và phong cách của trưởng dự án Các quy trình quản lý chất lượng (ISO, CMM) chưa được áp dụng rộng rãi Kết quả thực hiện dự án thiếu tính ổn định
o Thiếu chú trọng vào vấn đề kiểm tra chất lượng phần mềm Thời gian và nhân lực dành cho hoạt động kiểm tra thường không đủ so với yêu cầu của dự án nên sản phẩm khi giao cho khách hàng thường có vấn đề về chất lượng
o Việc tìm hiểu công nghệ mới thường dựa vào khả năng tự học của nhân viên Ít có các hoạt động huấn luyện chính quy
o Năng lực giao tiếp bằng tiếng Anh của các lập trình viên Việt Nam còn yếu Khả năng đọc và viết tương đối tốt nhưngkỹ năng nghe nói thường
Trang 10chưa đạt yêu cầu Do đó chỉ một bộ phận nhỏ thành viên của dự án (trưởng nhóm, trưởng dự án) là giao tiếp trực tiếp với khách hàng
Trang 11CHƯƠNG 4
SO SÁNH HAI PHƯƠNG PHÁP
4.1 Phương Pháp Quản Lý Dự An Truyền Thống
Phương pháp quản lý dự án truyền thống đã được xây dựng và sử dụng trong nhiều năm trên nhiều lĩnh vực Nó trở thành một hệ thống hoàn chỉnh với nhiều lý thuyết và công cụ Rất nhiều kỹ thuật đã được phát triển để giải quyết các vấn đề thực hành trong quá trình thực hiện dự án Các kỹ thuật đó tập trung vào việc xác định tổ chức các công việc, lên kế hoạch và kiểm soát việc thực hiện trong toàn vòng đời dự án Các kỹ thuật này là tạo ra các đồ thị, báo cáo chi tiết về kế hoạch và tiến độ dự án [17]
Bảng 4.1 - Các kỹ thuật của phương pháp quản lý dự án truyền thống [17]
Cấu trúc công việc(WBS) Các công việc, hoạt động cần thực hiện để hoàn thành dự án Xác định các thành phần của dự án Là tiền đề để lập kế hoạch thực hiện và dự toán chi phí
Các ma trận trách nhiệm Gán trách nhiệm: kết hợp tổ chức nhân sự của dự án với WBS
Các sơ đồ GANTT hoặc dạng cột
Mô tả một cách đơn giản kế hoạch thực hiện (thời gian thực hiện các công việc) Không thể hiện mối quan hệ giữa các công việc và công việc nào có tính quyết định Các sơ đồ mạng:
CPM (Critical Path Method) PERT (Project Evaluation & Review Techniques)
Các kỹ thuật mạng để lập kế hoạch công việc
Các kỹ thuật này cho phép xác định các công việc quan trọng và quan hệ về tiến độ
Trang 12giữa các công việc
Là cơ sở để tính toán chi phí, phân phối nguồn lực và phân tích rủi ro
Kế hoạch chi phí Xác định các yêu cầu về tài chính và dự toán ngân sách
Biểu đồ nhân lực Tối ưu việc sử dụng nguồn lực bằng cách thay đổi thời gian thực hiện các công việc giảm dao động trên biểu đồ giảm biến động nhân sự
Điều khiển dự án: phân tích biến động, PERT/chi phí, các giá trị được tạo ra (earning value)…
Các chỉ số để đánh giá kết quả của dự án Kiểm soát chi phí và các hoạt động điều chỉnh
4.2 Ap dụng mô phỏng liên tục trong quản lý dự án:
Hạn chế của phương pháp quản lý dự án truyền thống
Khi hoạch định và kiểm soát dự án bằng các công cụ truyền thống như CPM, PERT, chúng ta thường có các giả định và chính các giả định này làm cho chúng ta có cái nhìn tĩnh đối với dự án [16]:
Coi dự án là một tập hợp có thứ tự của các công việc (task) và nguồn lực của dự án được sử dụng để thực hiện các công việc đó
Năng suất được giả định là hằng số cho mỗi công việc
Mỗi công việc được giả định sẽ hoàn thành toàn bộ và chính xác trong khoảng thời gian dự kiến, không cần sửa đổi điều chỉnh (rework)
Sự liên hệ duy nhất giữa các công việc là thứ tự trước sau (công việc B chỉ có thể bắt đầu khi công việc A hoàn thành)
Trang 13 Khó điều chỉnh kế hoạch dự án khi có sự thay đổi Chúng ta thường đánh giá thấp ảnh hưởng của các thay đổi vì không tính được các tác động gián tiếp
Hai nguyên nhân chính dẫn đến thất bại của các kỹ thuật truyền thống [17]: 1 Tính chủ quan trong việc kiểm soát/đánh giá
2 Không thể hiện được tác động của một thành phần trong dự án đối với toàn bộ dự án
Các dự án thường có vẻ trôi chảy cho đến giai đoạn cuối, khi vấn đề ở các giai đoạn trước được phát hiện, dẫn đến quá hạn, sửa chữa và chi phí lớn, làm thêm giờ, thuê mướn thêm…
Những điều này cho thấy sự cần thiết của một công cụ có khả năng phân tích các vấn đề theo quan điểm chiến lược
Ví dụ: một người hay một nhóm nhỏ có thể nỗ lực để hoàn thành một công việc
trong ngắn hạn nhưng có thể dẫn tới giảm năng suất và chất lượng trong dài hạn, mà điều đó lại khó nhận biết được tức thì Để giải quyết được các hiệu ứng đó nhà quản lý phải có cái nhìn toàn cục và chiến lược đối với các vấn đề về con người
Mô phỏng liên tục cho phép những nhà quản lý dự án:
Hiểu rõ mối liên hệ tương hỗ giữa các yếu tố trong dự án:
- Số lượng thành viên - Sự biến động nhân sự
- Năng lực của các thành viên - Kỹ năng làm việc nhóm - Động cơ làm việc - Tổ chức dự án - Quy trình làm việc
Trang 14- Giao tiếp với khách hàng - Thay đổi yêu cầu và thiết kế
Cho phép khảo sát các yếu tố liên quan đến con người
- Tinh thần làm việc - Kỹ năng làm việc nhóm - Động cơ làm việc
Cho phép trả lời các câu hỏi có tính chiến lược:
- Đánh đổi giữa thời gian, chất lượng và chi phí - Thay đổi mục tiêu, độ ưu tiên
Ví dụ:
Khi khách hàng yêu cầu thêm một tính năng mới cho phần mềm, trưởng dự án phải đánh giá khối lượng công việc bổ sung, xem xét các ảnh hưởng và thảo luận với khách hàng để chọn lựa giải pháp:
Gia hạn thời gian giao hàng
Thêm nhân sự để làm công việc mới Thời gian giao hàng không đổi Tăng thời gian làm việc (làm ngoài giờ) Không bổ sung nhân sự và thay
đổi thời gian giao hàng
Tuy nhiên thường thì các ước lượng công việc bổ sung thấp hơn nhiều so với thực tế vì các tác động phụ hay dây chuyền của sự thay đổi thường khó tính toán chính xác và dễ bị bỏ qua
Phương pháp truyền thống: các công việc tương đối độc lập với nhau Các
yếu tố khác không được thể hiện tường minh trên mô hình nên phương pháp này chỉ tính được tác động của sự thay đổi lên một số công việc liên quan trực tiếp
Trang 15 Mô phỏng liên tục: trưởng dự án dùng mô hình để phân tích và tính toán
các tác động lên năng suất lao động (productivity) và tỷ lệ sửa chữa (rework)
Mô phỏng liên tục dựa trên cách nhìn tổng thể đối với quá trình quản lý dự án, chú trọng đến quá trình phản hồi bên trong dự án Nó cung cấp phương pháp cho việc mô tả và phân tích các dự án phức tạp, bao gồm các thành phần cấu thành dự án, các công việc và cả những ảnh hưởng của môi trường [3] Mỗi mô hình là một hình ảnh cục bộ của cấu trúc và quy trình hệ thống, cho phép khảo sát hành vi của hệ thống trước các biến động và thay đổi
Hình 4.1 Mục tiêu của mô hình mô phỏng
Mô hình
biến động Biến động nào cho ra kết
quả mong muốn?
Trang 16Các kho (stock, level) trong mơ hình mơ phỏng liên tục: Khối lượng cơng việc
Số lượng lỗi Số lượng nhân sự Nỗ lực thực hiện Thời gian thực hiện
Thực hiệnDuyệtSữa chữa hoàn thànhCông việc
Lỗi chưa phát
Lỗi còn lạiTốc độ thực hiệnTốc độ duyệtTốc độ sửa
Tốc độ phát sinh lỗi Tốc độ phát hiện lỗi
Tốc độ lỗi bỏ sót
Tốc độ sửa lỗi
Sản phẩmcuối cùngSản phẩm
ban đầu
Phần mềm
Hình 4.2 Ví dụ về mơ phỏng liên tục trong quy trình phần mềm
Tuy nhiên mơ phỏng liên tục cĩ một số hạn chế:
Khơng thể hiện được trình tự giữa các hoạt động
Khơng cĩ khả năng diễn tả từng đối tượng và các thuộc tính
Do đĩ mơ phỏng liên tục nên được sử dụng kết hợp với phương pháp quản lý dự án truyền thống
Trang 174.3 So Sánh Hai Phương Pháp
Phần này tóm tắt các kết quả đã được nghiên cứu về những khác biệt giữa phương pháp quản lý dự án truyền thống và mô phỏng liên tục Những khác biệt này cũng như ưu và nhược điểm của từng phương pháp sẽ được sử dụng để tìm phương pháp thích hợp cho các công việc trong mô hình tích hợp chi tiết
Mục tiêu của việc so sánh không phải là để lựa chọn hay loại trừ một phương pháp mà là để tìm ra điểm mạnh và hạn chế của từng phương pháp để có thể sử dụng chúng một cách hiệu quả nhất
Mỗi phương pháp có một cách nhìn và cách tiếp cận khác nhau đối với dự án Phương pháp truyền thống giải quyết tốt các vấn đề bên trong dự án, trong khi mô phỏng liên tục cung cấp tầm nhìn chiến lược và tính hiệu quả của dự án với các chính sách chung [17]
Cả hai phương pháp đều khảo sát nhiều về các quyết định quản lý với mức độ chi tiết khác nhau Phương pháp truyền thống tập trung vào các vấn đề tác vụ, còn mô phỏng liên tục tập trung vào các vấn đề chiến lược
Về cách nhìn đối với quá trình quản lý dự án
Cả hai mô hình đều coi quản lý dự án là một quá trình động của việc lập kế hoạch, thực hiện và kiểm soát
Trang 18Hình 4.3 Các giai đoạn quản lý dự án phần mềm [17]
Lập kế hoạch xác định các hành động sẽ được tiến hành khi thực hiện dự án Kiểm soát là quá trình đánh giá trạng thái dự án và đưa ra các điều chỉnh thích hợp Theo cách nhìn này thì dự án luôn được đánh giá và điều chỉnh kế hoạch trong suốt quá trình thực hiện
Lập kế hoạch (theo phương pháp truyền thống): o Xác định các công việc
o Xác định thời gian cần thiết cho mỗi công việc o Phân phối nguồn lực cho các công việc
o Dự toán chi phí và ngân sách cần thiết để thực hiện dự án
Việc đánh giá trạng thái dự án dựa vào việc so sánh kết quả hiện tại với kết quả dự kiến theo kế hoạch Sự điều chỉnh sẽ được tiến hành khi sự khác biệt là đáng kể để đảm bảo thời gian và chi phí cho toàn bộ dự án
Ngược lại, mục tiêu cơ bản của mô phỏng liên tục là thu nhận các phản hồi về hành vi của dự án mà không quan tâm nhiều đến các thành phần chi tiết của dự án
Trạng thái dự án Thông tin
điều chỉnh
KIỂM SOÁT
Kế hoạch dự án