1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)

75 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng dụng qui trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty Cổ phần VNG (VNG Corporation)
Tác giả Nguyễn Anh Vũ
Người hướng dẫn TS. Phạm Quốc Trung
Trường học Đại Học Quốc Gia Tp. Hồ Chí Minh
Chuyên ngành Quản trị Kinh doanh
Thể loại Khóa luận thạc sĩ
Năm xuất bản 2012
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 75
Dung lượng 645,34 KB

Cấu trúc

  • CHƯƠNG 1 TỔNG QUAN - GIỚI THIỆU ĐỀ TÀI (12)
    • 1.1. Lý do hình thành đề tài (12)
    • 1.2. Tên đề tài (13)
    • 1.3. Mục tiêu (13)
    • 1.4. Đối tượng nghiên cứu (13)
    • 1.5. Phạm vi thực hiện (14)
    • 1.6. Phương pháp nghiên cứu (14)
    • 1.7. Ý nghĩa đề tài (16)
    • 1.8. Các bước thực hiện (17)
    • 1.9. Bố cục đề tài (18)
  • CHƯƠNG 2 CƠ SỞ LÝ THUYẾT (19)
    • 2.1. Qui trình phát triển phần mềm linh hoạt (19)
      • 2.1.1. Giới thiệu (19)
      • 2.1.2. Tuyên ngôn Agile (Agile Manifesto) (20)
      • 2.1.3. Nguyên lý Agile (Agile Principles) (22)
      • 2.1.4. Đặc trưng Agile (23)
      • 2.1.5. Các phương pháp Agile (24)
    • 2.2. Một số qui trình phát triển phần mềm khác (27)
    • 2.3. Giới thiệu Capability Maturity Model Integration (CMMI) (29)
    • 2.4. So sánh các mô hình (30)
    • 2.5. Thành công của dự án phần mềm (33)
  • CHƯƠNG 3 HIỆN TRẠNG CÔNG TY CỔ PHẦN VNG (36)
    • 3.1. Tổng quan (36)
    • 3.2. Hiện trạng (37)
    • 3.3. Qui trình phát triển phần mềm công ty VNG (40)
    • 3.4. Phân tích vấn đề (41)
    • 3.5. Nhận diện và phân tích giải pháp (44)
    • 4.1. Đánh giá mức độ phù hợp (47)
    • 4.2. Kế hoạch ứng dụng (50)
    • 4.3. Hiệu quả sau khi ứng dụng (53)
    • 4.4. Kết quả triển khai thử nghiệm (55)
  • CHƯƠNG 5 KẾT LUẬN (47)
    • 5.1. Kết quả đạt được (60)
    • 5.2. Hạn chế của đề tài (61)
    • 5.3. Hướng phát triển của đề tài (61)
  • TÀI LIỆU THAM KHẢO (73)

Nội dung

Bằng cách tiếp cận và phân tích những vấn đề mà công ty VNG đang gặp phải trong các dự án phần mềm web tại công ty, nguyên nhân dẫn đến hiệu quả các dự án không cao dần được làm rõ, cho

TỔNG QUAN - GIỚI THIỆU ĐỀ TÀI

Lý do hình thành đề tài

Trong thời gian từ năm 2009 đến năm 2011, bộ phận phát triển website của công ty Cổ phần VNG (VNG Corporation, gọi tắt và VNG) nhận được hơn 20 yêu cầu phát triển các sản phẩm từ phía khách hàng nội bộ (Nguồn: Thông tin bộ phận phát triển phần mềm VNG) Tuy nhiên, có đến 30% dự án không hoàn thành đúng tiến độ đề ra Một phần nguyên nhân là do hạn chế về mặt kỹ thuật của các thành viên, nhưng phần lớn vẫn là những thay đổi đến từ phía khách hàng trong quá trình phát triển sản phẩm (Trung bình có từ 5 đến 10 thay đổi cho các sản phẩm có thời gian thực hiện 1 tháng - Nguồn:

Thông tin thống kê và phân tích từ bộ phận phát triển phần mềm VNG) Điều này đã gây nên những gia tăng về chi phí thực hiện dự án (Trung bình tăng 20% so với dự kiến ban đầu - Nguồn: Thông tin bộ phận phát triển phần mềm VNG), đồng thời cũng gây ảnh hưởng chung đến công ty trong kế hoạch giới thiệu sản phẩm đến người dùng cuối, dẫn đến giải pháp tạm thời được sử dụng khá nhiều cho các dự án trễ hạn: Thiết lập các trang giả (nội dung tĩnh) để thay thế cho sản phẩm chưa xuất bản kịp

Ngoài ra, cũng như những công ty về phát triển phần mềm ở Việt Nam, VNG vẫn còn tồn tại những qui trình không thống nhất, không chuẩn trong quản lý các dự án phần mềm, là một trong những nguyên nhân chính, góp phần tạo nên những vấn đề trên

Bên cạnh đó, qui trình phát triển phần mềm linh hoạt (Agile) ra đời đã bổ sung thêm một giải pháp lựa chọn cho các công ty phần mềm

Với sự linh hoạt tối đa, Agile đã thuyết phục được sự hợp tác của các công ty phần mềm trong việc triển khai qui trình Nhiều diễn đàn về Agile (đại diện có nhóm Hanoi Scrum ở Hà Nội, Agile forum Vietnam ở TP HCM, hai nhóm này đã thu hút trên 300 thành viên) được xây dựng, thu hút đông đảo thành viên, số lượng bài viết ngày càng tăng, đã tạo nên một cộng đồng phát triển mạnh cho Agile tại Việt Nam Đứng trước nhu cầu chuẩn hóa qui trình phát triển phần mềm trong bộ phận phát triển phần mềm tại công ty và nhận ra tính ưu việt của Agile, đề tài

“Ứng dụng qui trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty Cổ phần VNG (VNG Corporation)” được đưa ra với mong đợi giải quyết các vấn đề tồn tại ở trên và xa hơn là cải thiện hiệu quả của các dự án phần mềm của công ty trong tương lai.

Tên đề tài

Việc ứng dụng quy trình phát triển phần mềm linh hoạt Agile đã giúp VNG Corporation cải thiện đáng kể hiệu quả quản lý dự án phần mềm Agile chú trọng vào sự hợp tác, phản hồi nhanh và khả năng thích ứng với những thay đổi liên tục, giúp VNG Corporation có thể phản ứng linh hoạt với nhu cầu kinh doanh đang thay đổi Kết quả là, thời gian phát triển phần mềm được rút ngắn, chất lượng sản phẩm được nâng cao, đồng thời tăng sự hài lòng của khách hàng và cải thiện lợi tức đầu tư (ROI) cho VNG Corporation.

Mục tiêu

Mục tiêu chung của đề tài này là tìm hiểu và ứng dụng Qui trình phát triển phần mềm linh hoạt (Agile) vào các dự án phần mềm tại công ty Cổ phần VNG nhằm cải thiện chất lượng dự án, thời gian thực hiện và chi phí thực hiện

Chi tiết hơn, mục tiêu của đề tài này bao gồm: (1) Tìm hiểu Qui trình phát triển phần mềm linh hoạt (Agile); (2) Xác định thực trạng quản lý dự án phần mềm tại công ty Cổ phần VNG: những hạn chế về chất lượng, thời gian và chi phí; (3) Qua đó, xây dựng kế hoạch triển khai chi tiết cho qui trình phát triển phần mềm linh hoạt vào các dự án phần mềm tại công ty;

(4) Triển khai thử nghiệm và đánh giá.

Đối tượng nghiên cứu

Các thành viên tham gia vào các dự án phần mềm web (bao gồm thành viên bộ phận và khách hàng) tại bộ phận phát triển phần mềm của công ty Cổ phần VNG (VNG Corporation).

Phạm vi thực hiện

Đề tài này được thực hiện với phạm vi trong bộ phận phát triển phần mềm ứng dụng Web tại công ty Cổ phần VNG, chi nhánh Thành phố Hồ Chí Minh.

Phương pháp nghiên cứu

Đề tài được thực hiện qua 3 giai đoạn:

Giai đoạn tổng hợp lý thuyết và thu thập dữ liệu

Thu thập số liệu là công việc hết sức quan trọng trong NCKH Số liệu có thể thu thập từ các tài liệu nghiên cứu trước đó, từ quan sát, thực nghiệm Mục đích chính của việc thu thập số liệu là để cung cấp cơ sở lý luận khoa học, chứng minh giả thuyết hoặc tìm ra vấn đề cần nghiên cứu.

Tổng hợp lý thuyết về Qui trình phát triển phần mềm linh hoạt (Agile) thông qua các thông tin thứ cấp: bài báo, tạp chí khoa học công nghệ, trang web chính thức của Agile

Tổng hợp những điểm chính về các qui trình phát triển phần mềm khác thông qua các thông tin thứ cấp: bài báo, tạp chí khoa học công nghệ

Thu thập số liệu thống kê kết quả dự án tại nhóm phát triển phần mềm web của công ty VNG qua phỏng vấn sâu các thành viên quản lý của dự án (project manager, 3-5 người)

Thu thập những bài học đúc kết (lesson learnt) từ các dự án đã hoàn thành, thông qua phỏng vấn các thành viên trong nhóm phát triển phần mềm web tại công ty (10-15 người)

Số lượng dự án ước lượng tham gia đánh giá: 20 dự án (từ năm 2009 đến năm 2011)

Kết thúc giai đoạn này là các thông tin thống kê về mặt lý thuyết cho qui trình dự định ứng dụng (Agile) và đánh giá hiện trạng của đối tượng dự định ứng dụng qui trình (bộ phận phát triển phần mềm tại công ty VNG)

Giai đoạn xử lý số liệu và đề xuất giải pháp Đánh giá những thông tin (khó khăn) thu được tại công ty từ giai đoạn trên, tìm giải pháp khắc phục từ qui trình Agile qua những thông tin mô tả về Agile

Phỏng vấn chuyên sâu với các chuyên gia công ty giúp xác định những cấu trúc và khuôn mẫu Agile cần điều chỉnh khi áp dụng cho bộ phận phát triển phần mềm Đánh giá khả thi của quá trình được thực hiện thông qua phân tích kết quả phỏng vấn và dữ liệu nội bộ, từ đó xác định các đặc điểm, yêu cầu cần chuẩn bị trước để triển khai Agile hiệu quả.

Kết thúc giai đoạn này là bản đề xuất giải pháp ứng dụng qui trình phát triển phần mềm Agile vào bộ phận phát triển phần mềm tại công ty Cổ phần VNG

Giai đoạn triển khai thử nghiệm giải pháp đề xuất tại công ty

Dự án triển khai thử nghiệm là một dự án mới, có qui mô nhỏ (5 developers, thời gian hoàn thành dự kiến là 2 tháng) tại bộ phận phát triển phần mềm ứng dụng web

Để đánh giá hiệu quả của dự án áp dụng Agile, nghiên cứu này đã so sánh chất lượng sản phẩm của hai nhóm dự án: có áp dụng Agile và không áp dụng Agile Cả hai nhóm đều có phạm vi, thời gian thực hiện, thành viên tham gia và mức độ kỹ thuật tương đương Việc đánh giá chất lượng dự án dựa trên các tiêu chí về chất lượng, tính chất liên quan và so sánh kết quả triển khai thử nghiệm.

Ý nghĩa đề tài

Trong bối cảnh qui trình phát triển phần mềm tại bộ phận phát triển phần mềm ứng dụng web của công ty Cổ phần VNG chưa có sự chuẩn hóa, kết hợp với vấn đề về kỹ thuật và con người, bộ phận đang phải đối mặt với nhiều khó khăn và thử thách trong việc quản lý các dự án với nhu cầu phát triển nhanh và thường phải đáp ứng nhiều thay đổi Song song đó, mô hình thác nước được ứng dụng tại bộ phận đã không còn phù hợp với định hướng và tính chất của các dự án hiện tại, gián tiếp gây nên nhiều vấn đề về chất lượng của sản phẩm của dự án Đề tài “Ứng dụng qui trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty Cổ phần VNG (VNG Corporation)” được thực hiện với mong muốn giải quyết những vấn đề mà bộ phận đang gặp phải, nâng cao hiệu quả hoạt động của bộ phận, kích thích tăng hiệu suất làm việc của các thành viên, qua đó tạo ra các dự án với chi phí thấp và chất lượng cao, thỏa mãn nhu cầu ở mức độ cao từ phía khách hàng Ngoài ra, ứng dụng Agile cũng giúp chuẩn hóa qui trình của bộ phận, có ý nghĩa rất lớn trong công tác vận hành và phát triển của bộ phận trong tương lai.

Các bước thực hiện

Tổng hợp lý thuyết các qui trình phát triền phần mềm

Tìm hiểu quy trình phát triển phần mềm hiện tại tại bộ phận phát triển phần mềm ứng dụng web của công ty Cổ phần VNG (VNG Corporation)

Nhận diện những hạn chế mà bộ phận gặp phải

Tìm hiểu quy trình triển khai Agile tại doanh nghiệp Đánh giá khả năng triển khai Agile vào bộ phận phát triển phần mềm ứng dụng web tại công ty

So sánh ưu và nhược điểm qua các yếu tố của dự án khi có Agile và không Kế hoạch triển khai chi tiết Đánh giá kết quả đạt được

Kết luận, kiến nghị, hướng phát triển và hạn chế của đề tài

Bố cục đề tài

Nội dung báo cáo được trình bày theo hướng tiếp cận từ trên xuống, giúp người đọc dễ nhận biết trình tự của báo cáo cũng như có thể tra cứu dễ dàng vị trí các phần bên trong Cũng như các đề tài nghiên cứu khác, đề tài này cũng bao gồm các phần dẫn nhập giúp cho đọc giả có cái nhìn ban đầu về sự tồn tại của đề tài Lý do hình thành đề tài, cùng với phạm vi, đối tượng nghiên cứu, kết hợp với phương pháp nghiên cứu và các bước thực hiện giúp làm rõ phần giới thiệu tổng quan, đem đến cho người đọc những thông tin ban đầu cho việc tiếp cận nội dung tiếp theo

Vì đây là đề tài ứng dụng nên phần cơ sở lý thuyết tiếp theo mang đến những khái niệm và các giá trị liên quan về qui trình sẽ được nghiên cứu ứng dụng – qui trình phát triển phần mềm linh hoạt (Agile) Ngoài ra, việc tiếp cận và tìm hiểu sơ lược, cũng như so sánh ưu và nhược điểm các qui trình phát triển phần mềm khác so với Agile, giúp cho người đọc hiểu rõ hơn về qui trình được nghiên cứu và ứng dụng trong đề tài

Xác định hiện trạng Công ty Cổ phần VNG giúp người đọc quay lại với mục tiêu của đề tài là ứng dụng quy trình phát triển phần mềm linh hoạt Agile vào bộ phận phát triển phần mềm của VNG Sau phần giới thiệu tổng quan về công ty và bộ phận liên quan, việc phân tích các vấn đề hiện tại cho người đọc hiểu lý do hình thành đề tài và nhu cầu ứng dụng Agile Qua đó, người đọc hiểu rõ hơn các phương pháp giải quyết vấn đề mà đề tài muốn đề cập.

Giai đoạn tiếp theo được thực hiện thông qua việc triển khai thử nghiệm Agile tại bộ phận phát triển phần mềm ứng dụng web Các phần đánh giá mức độ phù hợp củng cố thêm cơ sở cho phần lên kế hoạch triển khai thử nghiệm

Hiệu quả và kết quả triển khai thử nghiệm cũng được làm rõ để đánh giá kết quả của đề tài, củng cố quan điểm ứng dụng mà đề tài đưa ra ban đầu.

CƠ SỞ LÝ THUYẾT

Qui trình phát triển phần mềm linh hoạt

Phát triển phần mềm Agile dựa trên nguyên tắc phát triển phân đoạn lặp và tiệm tiến, cho phép nhu cầu và giải pháp được hoàn thiện thông qua sự cộng tác giữa các nhóm tự quản và liên chức năng Triết lý Agile, thể hiện trong Tuyên ngôn Agile, nhấn mạnh bốn giá trị cốt lõi: cá nhân và sự tương tác hơn quy trình và công cụ, phần mềm hoạt động hơn các tài liệu toàn diện, phản hồi của khách hàng hơn sự tuân thủ hợp đồng và linh hoạt phản ứng với thay đổi hơn so với làm theo kế hoạch.

Agile ra đời trong bối cảnh nhu cầu tăng cao của của cộng đồng phát triển phần mềm vào đầu những năm 90 là cần có một phương pháp phát triển phần mềm nhanh và có tính linh hoạt cao, khắc phục những yếu điểm mà mô hình thác nước đang tồn tại, bên cạnh đó, cần hướng tới chất lượng sản phẩm phần mềm tạo ra Như nhóm tác giả Abrahamsson, Salo, Ronkainen, và Warsta (2002) đã nói: Agile là biểu thị cho chất lượng, nhanh nhẹn và khéo léo trong chuyển động, là các phương pháp phát triển phần mềm đang cố gắng trả lời cho mong muốn của cộng đồng các doanh nghiệp: một qui trình phát triển phần mềm nhỏ gọn và nhanh nhẹn hơn

Agile hướng những kế hoạch đến khả năng đáp ứng tốt với sự thay đổi, chú trọng đến sự tương tác giữa các bên, sử dụng khung thời gian ngắn, phát triển và chuyển giao theo hướng tiến hóa và liên tục

(Wikipedia, 2011) Mỗi phương pháp Agile bao gồm một tập hợp các quy tắc (pratice), chẳng hạn quy tắc về sử dụng công cụ quản lý mã nguồn, quy tắc về các chuẩn lập trình hay quy tắc trình diễn sản phẩm hàng tuần cho khách hàng (Shore &

Qui trình phát triển phần mềm linh hoạt là qui trình phát triển phần mềm theo phương pháp Agile Theo đó, mỗi dự án (hay sản phẩm) sẽ được chia nhỏ thành nhiều phần theo chức năng Mỗi phần được thực hiện như một sản phẩm hoàn chỉnh và được thực hiện trong phạm vi thời gian ngắn (từ 2 đến 4 tuần)

Các phần của sản phẩm (cũng là một sản phẩm hoàn chỉnh với qui mô nhỏ hơn) sẽ được chuyển giao cho khách hàng sử dụng, phản hồi và cập nhật

Song song đó, các phần (chức năng) tiếp theo sẽ được tiếp tục đưa vào phát triển

Quá trình này lặp lại nhiều lần cho đến khi sản phẩm cuối cùng hoàn chỉnh

2.1.2 Tuyên ngôn Agile (Agile Manifesto)

“Tuyên ngôn Agile được xuất bản bởi một nhóm những người thực hiện và các chuyên gia tư vấn trong lĩnh vực phần mềm trong năm 2001”

(Abrahamsson, Salo, Ronkainen & Warsta, 2002) Theo đó, ý nghĩa cụ thể của tuyên ngôn được nhóm tác giả trình bày như sau:

Chúng tôi đã phát hiện ra cách phát triển phần mềm tốt hơn bằng cách thực hiện nó và giúp đỡ người khác thực hiện

Qua công việc này, chúng tôi đã đi đến việc đánh giá cao:

Con người và sự tương tác hơn là qui trình và công cụ;

Phần mềm chạy tốt hơn là tài liệu đầy đủ;

Cộng tác với khách hàng hơn là đàm phán hợp đồng;

Phản hồi với các thay đổi hơn là bám sát kế hoạch.

Mặc dù các điều bên phải vẫn còn giá trị, nhưng chúng tôi đánh giá cao hơn các mục ở bên trái.

Agile đề cao mối quan hệ và cộng đồng của nhà phát triển phần mềm, coi trọng con người hơn quy trình và công cụ Các nhóm Agile gắn kết chặt chẽ thông qua môi trường làm việc gần gũi và các thủ tục động viên tinh thần Mục tiêu của Agile là liên tục triển khai phần mềm đã kiểm thử Nhà phát triển được khuyến khích viết mã đơn giản, dễ hiểu để giảm gánh nặng tài liệu Agile thúc đẩy hợp tác giữa khách hàng và nhà phát triển thông qua đàm phán trực tiếp Theo quan điểm kinh doanh, Agile tập trung chuyển giao giá trị kinh doanh từ đầu dự án để giảm thiểu rủi ro không thực hiện theo hợp đồng Các thành viên nhóm phát triển (nhà phát triển phần mềm và đại diện khách hàng) phải được trao đủ thông tin, thẩm quyền và có thể điều chỉnh nhu cầu thay đổi trong quá trình phát triển sản phẩm, đảm bảo khả năng thực hiện các yêu cầu thay đổi.

2.1.3 Nguyên lý Agile (Agile Principles)

Theo Cunningham (2001), để hướng đến tuyên ngôn Agile ở trên, các nhà sáng lập đã đưa ra mười hai nguyên lý sau:

1 Ưu tiên cao nhất của chúng tôi là thỏa mãn khách hàng thông qua việc chuyển giao sớm và liên tục các phần mềm có giá trị

2 Chào đón việc thay đổi yêu cầu, thậm chí rất muộn trong quá trình phát triển Các qui trình linh hoạt tận dụng sự thay đổi cho các lợi thế cạnh tranh của khách hàng

3 Thường xuyên chuyển giao phần mềm chạy tốt tới khách hàng, từ vài tuần đến vài tháng, ưu tiên cho các khoảng thời gian ngắn hơn

4 Nhà kinh doanh và nhà phát triển phải làm việc cùng nhau hàng ngày trong suốt dự án

5 Xây dựng các dự án xung quanh những cá nhân có động lực Cung cấp cho họ môi trường và sự hỗ trợ cần thiết, và tin tưởng họ để hoàn thành công việc

6 Phương pháp hiệu quả nhất để truyền đạt thông tin tới nhóm phát triển và trong nội bộ nhóm phát triển là hội thoại trực tiếp

7 Phần mềm chạy tốt là thước đo chính của tiến độ

8 Các qui trình linh hoạt thúc đẩy phát triển bền vững Các nhà tài trợ, nhà phát triển, và người dùng có thể duy trì một nhịp độ liên tục không giới hạn

9 Liên tục quan tâm đến các kỹ thuật và thiết kế tốt để gia tăng sự linh hoạt

10.Sự đơn giản – nghệ thuật tối đa hóa lượng công việc chưa xong – là căn bản

11.Các kiến trúc tốt nhất, yêu cầu tốt nhất, và thiết kế tốt nhất sẽ được làm ra bởi các nhóm tự tổ chức

Các đội ngũ sản xuất sẽ thường xuyên cân nhắc để tìm ra giải pháp nâng cao hiệu suất làm việc; từ đó, họ sẽ điều chỉnh và thay đổi các hành vi của mình cho phù hợp với mục tiêu đạt được.

Với tính linh hoạt cao, Agile có những nét đặc trưng mà theo Dương (2011) bao gồm những điều sau:

Tính lặp (Iterative): Agile chia nhỏ quá trình phát triển dự án ra nhiều phân đoạn (Sprint), có đầy đủ các công việc phát triển dự án như: lập kế hoạch, phân tích yêu cầu, thiết kế, lập trình và kiểm thử

Tính tiến hóa (Evolutionary): Kết quả sau mỗi phân đoạn là một hay nhiều module (là một phần hoàn chỉnh của sản phẩm cuối) giúp cho khách hàng có cái nhìn trực quan về sản phẩm, qua đó thấy từng bước hoàn thiện và có những thay đổi kịp thời cho các module sau, giúp cho sản phẩm có chất lượng tốt nhất, thỏa mãn nhất yêu cầu của khách hàng

Tính thích nghi (Adaptive): Nhà quản lý dự án có thể nắm bắt tốt hơn về kế hoạch, quản lý rủi ro trong từng phân đoạn ngắn, qua đó có thể thay đổi cho phù hợp với tình hình thực tế

Cấu trúc nhóm: Linh hoạt, liên kết với nhau tốt Công việc của mỗi nhóm do các thành viên tự thiết kế và quản lý, giữa các nhóm trao đổi với nhau thông qua các mẫu (prototype) thỏa thuận

Một số qui trình phát triển phần mềm khác

Mô hình thác nước (Waterfall)

Hình 2.4.Mô hình thác nước (Waterfall)

(Waterfall Model, 2011) Mô hình này bao gồm các giai đoạn xử lý nối tiếp nhau như hình trên

Theo đó, các pha sau được thực hiện khi pha trước kết thúc

Tại mô hình thác nước, kiểm thử diễn ra tách biệt ở một giai đoạn riêng Ngược lại, mô hình chữ V chia toàn bộ quy trình thành hai nhóm giai đoạn tương ứng: phát triển và kiểm thử Mỗi giai đoạn phát triển sẽ khớp với một giai đoạn kiểm thử đi kèm.

(Cao, 2005) Qui trình được bắt đầu bằng việc thu thập yêu cầu với sự có mặt của đại diện của cả phía phát triển lẫn khách hàng nhằm định ra mục tiêu tổng thể của hệ thống phần mềm sau này, đồng thời ghi nhận tất cả những yêu cầu có thể biết được và sơ luợc những nhóm yêu cầu nào cần phải được làm rõ

Sau đó, thực hiện thiết kế nhanh tập trung chuyển tải những khía cạnh thông qua prototype để khách hàng có thể hình dung, đánh giá giúp hoàn chỉnh yêu cầu cho toàn hệ thống phần mềm Việc này không những giúp tinh chỉnh yêu cầu, mà đồng thời giúp cho đội ngũ phát triển thông hiểu hơn những gì cần được phát triển Tiếp theo sau giai đoạn làm prototype này có thể là một chu trình theo mô hình waterfall hay cũng có thể là mô hình khác

Hình 2.7 Mô hình tiến hóa

Mô hình này thực sự cũng là một dạng dựa trên mô hình mẫu, tuy nhiên có sự khác biệt:

• Mô hình tiến hóa xây dựng nhiều phiên bản prototype liên tiếp nhau

• Những phiên bản prototype trước sẽ được xây dựng với mục tiêu có thể tái sử dụng trong những phiên bản sau

(Rational Software, 2001) RUP (Rational Unified Process) là một qui trình công nghệ phần mềm được phát triển bởi hãng Rational Software Nó cung cấp một cách tiếp cận chặt chẽ để phân công công việc và trách nhiệm trong một tổ chức phát triển phần mềm Mục tiêu của RUP là để tạo ra các phần mềm chất lượng cao đáp ứng nhu cầu của người dùng cuối với thời hạn và chi phí có thể định trước.

Giới thiệu Capability Maturity Model Integration (CMMI)

CMMI (Capability Maturity Model Integration) - Mô hình trưởng thành năng lực tích hợp - là một phương pháp tiếp cận cải tiến qui trình, phương pháp này cung cấp cho các tổ chức với các yếu tố thiết yếu của qui trình hiệu quả điểm mạnh và điểm yếu trong qui trình của tổ chức và tiến hành thay đổi để biến những điểm yếu thành điểm mạnh (Software Engineering Institute, 2012)

CMMI được Viện kỹ nghệ phần mềm Mỹ SEI (Software Engineering Institute) tại trường Đại học Carnegie Mellon ở Pittsburgh, PA phát triển

CMMI được chia thành 5 cấp độ, từ 1 đến 5, mỗi cấp độ có những qui định riêng về qui trình phát triển phần mềm Tuy nhiên, cấp độ càng cao thì qui trình càng chuẩn hóa và càng nhiều qui định cần phải đạt được trong qui trình, do đó, yêu cầu về tài liệu ghi lại cũng tăng cao, đòi hỏi phải thực hiện nghiêm ngặt

Hình 2.9.Các cấp độ của CMMI

So sánh các mô hình

Thông qua việc tổng hợp lý thuyết về các mô hình phát triển phần mềm, kết hợp với ý kiến chuyên gia (Cao Đại Ân, Global CyberSoft Vietnam) trong ngành Công nghệ thông tin (CNTT), các tạp chí và sách báo chuyên ngành cùng với kinh nghiệm cá nhân hoạt động trong thời gian dài (6 năm) trong cùng lĩnh vực, bảng so sánh các mô hình sau đây nhằm tóm tắt lại những ưu, nhược điểm của từng mô hình, đồng thời cũng giới thiệu sơ lược về phạm vi và lĩnh vực ứng dụng phù hợp

Bảng 2.2.So sánh các mô hình (1)

Mô hình Ưu điểm Nhược điểm Ứng dụng

Trình tự các chuỗi công việc rõ ràng, tài liệu thiết kế đầu vào và đầu ra rõ ràng

Yêu cầu khách hàng phải được làm rõ ngay từ đầu

Quá trình kiểm thử nằm ở giai đoạn cuối nên có nguy cơ bị bỏ qua trong trường hợp trễ hạn Nhiều rủi ro thường xảy ra vào giai đoạn gần hoàn thành sản phẩm Chi phí thay đổi cao, đáp ứng chậm

Các dự án có mức rủi ro thấp, ít thay đổi yêu cầu Đội ngũ phát triển phần mềm hiểu rõ các bước trong mô hình

Quá trình kiểm thử được thực hiện song song với phân tích, thiết kế và hiện thực hóa

Giống mô hình waterfall Giống mô hình waterfall

Người sử dụng sớm hình dung ra chức năng và đặc điểm của hệ thống

Cải thiện sự liên lạc giữa nhà phát triển và người sử dụng

Có thể mẫu không thể hiện hết yêu cầu của khách hàng, gây ra hiểu không chính xác về sản phẩm

Mẫu được thiết kế nhanh nên có thể không phân tích kỹ yêu cầu, dẫn đến sự khác biệt giữa yêu cầu và sản phẩm mong muốn

Hệ thống chủ yếu dựa trên giao diện người dùng (GUI)

Khách hàng, nhất là người sử dụng cuối, không thể xác định rõ ràng yêu cầu

Bảng 2.3.So sánh các mô hình (2)

Mô hình Ưu điểm Nhược điểm Ứng dụng

Một phần chương trình có thể được hiện thực trong quá trình phân tích yêu cầu và thiết kế hệ thống

Tính chặt chẽ, minh bạch của qui trình kém

Làm chậm quá trình phân tích yêu cầu

Dự án cần chu kỳ phát triển ngắn Đội ngũ phát triển không quen thuộc với lĩnh vực của dự án

Giảm rủi ro Những yêu cầu quan trọng thường được phát triển và chuyển đến khách hàng sớm

Nhiều phiên bản, phiên bản sau được rút kết từ kinh nghiệm trong phiên bản trước

Có nhiều rủi ro về mặt kỹ thuật

Hệ thống lớn được phát triển trong thời gian dài, khách hàng cần triển khai sớm một số phần của hệ thống Đội ngũ phát triển quen thuộc với lĩnh vực dự án

CMMI Giảm rủi ro qua cải tiến qui trình, yêu cầu trong từng giai đoạn chặt chẽ

Sản phẩm được giao dễ dàng và đúng hạn cho khách hàng nhờ vào hệ thống hồ sơ liên quan toàn diện và kế hoạch triển khai được quản lý hiệu quả.

Chi phí đánh giá cao

Chi phí vận hành cao

Thời gian phân bổ cho việc ghi tài liệu nhiều

Giảm tính linh hoạt trong các dự án

Hệ thống lớn được phát triển trong thời gian dài

Phù hợp trong lĩnh vực gia công (outsourcing) Đội ngũ nhân viên được phân cấp rõ ràng, có chuyên môn trong từng cấp

Bảng 2.4.So sánh các mô hình (3)

Mô hình Ưu điểm Nhược điểm Ứng dụng

Agile Khả năng thích ứng rất cao trước những thay đổi yêu cầu Rủi ro thấp do được quản lý tốt qua từng Sprint Thời gian tương tác giữa các bên liên quan được rút ngắn do tương tác trực tiếp Giảm thiểu nhu cầu phát sinh tài liệu trong quá trình hiện thực hóa nếu không cần thiết

Khách hàng dõi theo những bước phát triển của sản phẩm mình yêu cầu thông qua việc chuyển giao liên tục các module qua từng Sprint

Yêu cầu đội ngũ phát triển phải có kinh nghiệm

Thời gian cần cho các tài liệu trong quá trình dự án đang được phát triển khá lâu

Các dự án vừa và nhỏ (số lượng thành viên trong nhóm từ 10-12 người), thời gian phát triển ngắn.

Thành công của dự án phần mềm

Theo Shore và Warden (2008), quan niệm truyền thống của một dự án phần mềm được coi là thành công khi sản phẩm được giao đúng hạn, trong ngân sách cho phép và làm đúng yêu cầu của khách hàng

Trên thực tế, nhiều dự án thỏa mãn tất cả các tiêu chí này nhưng vẫn bị coi là thất bại bởi phần mềm làm ra không được người dùng ưa thích hoặc không mang lại nhiều lợi ích cho các cá nhân, tổ chức sử dụng Đồng thời, Shore và Warden (2008) cũng chỉ ra ba loại thành công rất quan trọng trong dự án phần mềm: Thành công ở mức cá nhân, thành công về mặt kỹ thuật và thành công ở mức công ty Nếu không có thành công cá nhân, sẽ gặp rắc rối trong việc thúc đẩy động lực của bản thân và các thành viên dự án

Nếu không thành công về kỹ thuật, mã nguồn của dự án sẽ càng ngày càng trở nên nặng nề và sụp đổ Nếu không có thành công tổ chức, nhóm sẽ thấy được sự không cần thiết của mình trong công ty

Hình 2.10.Ba loại thành công của một dự án phần mềm

(Shore & Warden, 2008) Bằng phân tích của mình, nhóm tác giả Shore & Warden (2008) cũng chỉ ra sự đáp ứng cả ba loại thành công trên trong các dự án Agile như sau:

Thành công ở mức công ty: Agile nhắm đến việc tạo ra giá trị và giảm chi phí cho công ty, giúp xác định sớm các kì vọng đối với sản phẩm đang được phát triển để có thể loại bỏ những yêu cầu không mang lại giá trị như mong đợi, tiết kiệm chi phí cho công ty Theo phương pháp Agile, các chuyên gia về nghiệp vụ (business) sẽ làm việc trực tiếp cùng với đội dự án

Các chức năng quan trọng nhất của sản phẩm được tập trung phát triển trước và được đưa vào vận hành sớm nhất có thể Các phiên bản mới với các tính năng mới sẽ lần lượt được đưa thêm vào Ngoài ra, Agile giúp tăng cường khả năng giao tiếp giữa các thành viên trong nhóm, chất lượng mã nguồn được cải tiến liên tục, đảm bảo tiến độ dự án

Thành công về mặt kỹ thuật: Trong Agile, các lập trình viên làm việc cùng nhau Nhờ vậy, các chi tiết quan trọng sẽ không bị bỏ sót, mỗi đoạn code sẽ được kiểm tra bởi ít nhất hai người Các lập trình viên liên tục tích hợp những đoạn mã có thể đóng góp thêm giá trị vừa viết vào hệ thống, tạo ra phiên bản mới Để tiến độ công việc được kiểm soát tốt hơn và có thể dễ dàng phản ứng với những thay đổi từ phía khách hàng, nhóm dự án đã tập trung hoàn thành một chức năng trước khi chuyển sang chức năng tiếp theo

Thành công về mặt cá nhân: Mỗi thành viên trong dự án Agile đều cảm nhận được một cách rõ ràng sự thành công của bản thân Điều này thể hiện qua các kết quả đạt được, sự trao đổi kinh nghiệm trong nhóm và tăng khả năng tương tác khách hàng Công việc ở tất cả các khâu trong dự án cho phép thành viên tích lũy nhiều kinh nghiệm, cảm thấy tự tin hơn và trên hết là sự nhìn nhận từ các thành viên, từ khách hàng

Như vậy, từ việc phân tích mô hình ở trên, kết hợp với phân tích các tiêu chí (loại) thành công của dự án phần mềm cho thấy Agile có những bước tiến hóa so với các mô hình khác, phù hợp với nhu cầu phát triển phần mềm tại công ty VNG hiện nay: sản phẩm có khả năng đáp ứng nhanh, thay đổi nhiều và có chất lượng.

HIỆN TRẠNG CÔNG TY CỔ PHẦN VNG

Tổng quan

Công ty Cổ phần VNG (VNG Corporation, gọi tắt là VNG) - tiền thân là công ty Vinagame - là công ty phát hành trò chơi trực tuyến và kinh doanh thương mại điện tử được thành lập ngày 9 tháng 9 năm 2004 ở Việt Nam VNG là công ty đầu tiên phát hành trò chơi trực tuyến có bản quyền ở Việt Nam và là nhà phát hành trò chơi trực tuyến hàng đầu ở thị trường

Các sản phẩm chính là các trò chơi trực tuyến nhập vai nhiều người chơi (MMORPG) như Võ Lâm Truyền Kỳ, Kiếm Thế, Chinh Đồ, Phong Thần, Thuận Thiên Kiếm, cùng các game casual như Zing Dance, Gunny, web game Zing Play, game phổ thông Boom Online Bên cạnh, các sản phẩm web giải trí như Mạng xã hội ZingMe, trang nghe nhạc trực tuyến ZingMp3, trang tin tức ZingNews… và web thương mại điện tử như 123Mua, ZingDeal… đang phát triển mạnh trên thị trường Việt Nam

Bằng nguồn nhân lực dồi dào và được tuyển chọn cao, VNG đã dần chuyển sang phạm vi kinh doanh rộng hơn: kinh doanh trên thị trường internet, với mục tiêu: trở thành công ty internet hàng đầu tại Việt Nam Nhiều sản phẩm của công ty trong lĩnh vực mạng xã hội và thương mại điện tử đang dần chiếm 50% mảng kinh doanh vốn trước đây chỉ là phát hành game của công ty

Bộ phận phát triển phần mềm ứng dụng dạng web được ban lãnh đạo công ty VNG tạo ra nhằm hỗ trợ cho các sản phẩm game mà công ty đã, đang và sẽ phát hành/phát triển trên thị trường Các sản phẩm chủ yếu của bộ phận là các website ứng dụng, liên kết thông tin và tạo nên cổng thông tin cho toàn bộ các sản phẩm hiện có, cao hơn nữa là tạo ra các liên kết thành viên trong mạng xã hội game thủ, tại đây, mỗi thành viên có thể chia sẻ và tiếp nhận thông tin, tình trạng và các hoạt động từ bạn bè trong danh sách của mình

Ngoài ra, bộ phận phát triển phần mềm ứng dụng web cũng phải chịu nhiều áp lực cho ra đời những sản phẩm hỗ trợ thật tốt chiến lược của công ty, đặc biệt là trong tình hình cạnh tranh trên thị trường internet ngày càng lớn mạnh tại Việt Nam Sản phẩm của bộ phận đòi hỏi phải đáp ứng kịp thời, đồng thời phải có sự hấp dẫn với người sử dụng, bên cạnh sự kết nối và tương thích với các sản phẩm khác, các sản phẩm của bộ phận cũng phải thể hiện được tính độc lập trong chất lượng và vận hành Với hơn 20 thành viên, chia làm nhiều nhóm dự án nhỏ, mỗi năm bộ phận phát triển phần mềm ứng dụng web cho ra đời trên dưới sáu sản phẩm, chưa kể những cập nhật cho các phiên bản cũ

Với số lượng sản phẩm như vậy, các thành viên trong bộ phận đã phải nỗ lực nhiều và không ngừng cải thiện khả năng của mình ngày càng hoàn thiện hơn.

Hiện trạng

Theo các số liệu thống kê và phân tích từ việc phỏng vấn các trưởng nhóm, trưởng dự án của bộ phận phát triển phần mềm web (3 người) của công ty VNG trong thời gian từ năm 2009 đến năm 2011 (tham khảo thêm ở phụ lục B), bộ phận phát triển website của công ty VNG nhận được hơn 20 yêu cầu phát triển các sản phẩm từ phía khách hàng nội bộ Tuy nhiên, theo kết quả thống kê nội bộ, có đến 30% dự án không hoàn thành đúng tiến độ đề ra Điều này gây nên tình trạng trì trệ trong các sản phẩm giới thiệu của công ty, giảm nhiều khả năng thu hút khách hàng cho các sản phẩm đang phát hành và các sản phẩm mới

Với tình hình cạnh tranh ngày càng gay gắt trong cùng lĩnh vực như hiện nay, công ty VNG nhận thức rõ tầm quan trọng của việc giới thiệu sản phẩm của công ty đến với khách hàng đúng thời điểm và sớm hơn đối thủ cạnh tranh Vì vậy, mặc dù các sản phẩm của bộ phận không có tính chất tạo ra doanh thu trực tiếp, nhưng là nơi khởi nguồn cho việc thu hút khách hàng tham gia, gián tiếp tạo ra doanh thu cho công ty, nên việc phát hành nội dung trễ hoặc chậm cho ra mắt các sản phẩm mới, làm giảm đáng kể khả năng cạnh tranh của công ty, gây nên tổn thất gián tiếp về doanh thu (Một số sản phẩm bị đối thủ

“vượt mặt”, một phần do truyền tải thông tin đến khách hàng chậm)

Đội ngũ nhân sự có năng lực chuyên môn cao (trên 90% tốt nghiệp đại học chuyên ngành CNTT), kinh nghiệm lâu năm (4-5 năm trong lĩnh vực CNTT), nhưng tổ chức yếu kém, khiến hiệu suất công việc trì trệ, ý thức trách nhiệm kém, dẫn tới sản phẩm lỗi (40%), chậm tiến độ (30%), ảnh hưởng đến sự tin tưởng của khách hàng nội bộ Ngoài ra, việc phân công nhiệm vụ không rõ ràng gây nên sự tị nạnh giữa các thành viên, cản trở việc quản lý tiến độ và rủi ro, góp phần làm giảm chất lượng sản phẩm.

Sự phàn nàn của khách hàng nội bộ có chiều hướng giảm đáng kể trong giai đoạn từ đầu năm 2009 đến cuối năm 2011, tuy nhiên, sản phẩm làm ra vẫn còn chưa thỏa mãn được kỳ vọng của khách hàng Các kết quả đánh giá nội bộ cho thấy sự tín nhiệm ngày càng sa sút của khách hàng nội bộ dành cho các sản phẩm của bộ phận (có nhiều ý kiến cho rằng nên sử dụng sản phẩm của bên thứ ba hoặc cải tiến lại toàn bộ sản phẩm hiện có) Đóng góp của của bộ phận chưa được khách hàng đánh giá cao, các yêu cầu thay đổi thiết kế, yêu cầu sửa lỗi cũng như các yêu cầu về nội dung của ứng dụng chưa được bộ phận đáp ứng tốt và kịp thời

Bên cạnh đó, các hành động động viên, khuyến khích thành viên nhóm làm việc hiệu quả, không thấy hoặc rất hiếm xuất hiện tại bộ phận trong thời gian gần đây, đây cũng là một phần nguyên nhân dẫn đến thái độ làm việc không hết mình từ các thành viên

Phần lớn các ứng dụng của bộ phận (hơn 90%) là ứng dụng có nội dung phong phú, là công cụ chính để thu hút khách hàng cho sản phẩm được hỗ trợ, mỗi ứng dụng web đều có rất nhiều sự thay đổi yêu cầu trước, trong và sau khi triển khai, xuất bản (trung bình 5-6 thay đổi) Vì vậy, xét về mức độ ổn định của một ứng dụng của bộ phận trong khoảng thời gian dài (một năm) là rất hiếm, hầu hết các sản phẩm đều được yêu cầu thay đổi nội dung, kiến trúc sau một khoảng thời gian ba tháng, nên sự đáp ứng từ phía nhóm dự án liên quan cho các thay đổi này là rất quan trọng, về điều này, bộ phận hiện vẫn chưa đáp ứng tốt, gây nên “hàng đợi” công việc nhiều, dẫn đến kết quả đáp ứng thường không tốt hoặc chỉ ở mức vừa đạt yêu cầu Đứng trên góc độ người dùng cuối, yếu tố cần thiết để thu hút người dùng cũ sử dụng sản phẩm lâu hơn, thu hút người dùng mới bỏ thời gian trải nghiệm sản phẩm của bộ phận phần lớn thể hiện ở khâu biên tập nội dung phong phú, giao diện sử dụng bắt mắt và thời gian đáp ứng tốt (response time) Về yếu tố biên tập nội dung, công ty đã nhận ra được tầm quan trọng của yếu tố này từ sớm, thể hiện ở việc bộ phận Web Content xuất hiện và hoạt động tốt ngay từ thời điểm sơ khai của công ty Nhưng hai yếu tố còn lại luôn là vấn đề của bộ phận phát triển phần mềm ứng dụng web trong suốt thời gian qua

Thời gian đáp ứng tốt (hay còn gọi là website performance) bị ảnh hưởng trực tiếp từ khâu phân tích, thiết kế và lập trình (đánh giá ở đây đã loại bỏ phần thiết bị phần cứng đáp ứng, vì công ty đã tối ưu hóa phần cứng để đảm bảo đáp ứng tốt cho từng bộ phận)

Nói thêm về chất lượng sản phẩm, số lượng lỗi (bug) xuất hiện theo chiều hướng tăng dần Trong đó, các lỗi gây ngưng hệ thống trong thời gian hơn một giờ ngày càng tăng (tổng kết cuối năm 2011 là 6 incidents, cao hơn 20% so với năm trước), điều này ảnh hưởng trực tiếp đến lượng khách hàng truy cập vào website của công ty, làm xấu đi hình ảnh của sản phẩm của công ty Phần lớn nguyên nhân đến từ các bên liên quan (do quản trị máy chủ, đường truyền…), tuy nhiên, một phần nguyên nhân là do hạn chế về mặt kỹ thuật của các thành viên (không cập nhật kiến thức mới nhất kịp thời để xử lý tình huống) Trong đó, nhiều nguyên nhân xuất phát từ những thay đổi của khách hàng trong quá trình phát triển sản phẩm (trung bình có đến 5-10 thay đổi cho các sản phẩm có thời gian thực hiện 1-2 tháng) Điều này đã gây nên những gia tăng về chi phí thực hiện dự án (trung bình tăng 20% so với dự kiến ban đầu), đồng thời cũng gây ảnh hưởng chung đến công ty trong kế hoạch giới thiệu sản phẩm đến người dùng cuối, dẫn đến giải pháp tạm thời được sử dụng khá nhiều cho các dự án trễ hạn và sản phẩm đang vá lỗi là thiết lập các trang giả (nội dung tĩnh) để thay thế cho sản phẩm chưa xuất bản kịp.

Qui trình phát triển phần mềm công ty VNG

Xuất phát từ nhu cầu phát triển các ứng dụng phục vụ trực tiếp cho công ty và các sản phẩm của công ty, bộ phận phát triển phần mềm web được lập nên từ những thành viên có kinh nghiệm chuyên môn và hiểu rõ về các sản phẩm cần hỗ trợ Thời gian đầu, do số lượng dự án còn ít nên qui trình phát triển sản phẩm của bộ phận chưa được chú ý, các sản phẩm được đầu tư khá nhiều về nhân lực và thời gian hoàn thiện Tuy nhiên, đến giữa năm 2009, sự phát triển nhanh chóng các sản phẩm của công ty đã làm tăng số lượng dự án tại bộ phận

Nhu cầu cần có một qui trình đơn giản giúp các dự án dễ hoạch định và quản lý hơn, giảm bớt các sai lầm và thao tác lặp trong các dự án cũ, mô hình thác nước đã được sử dụng trong qui trình phát triển phần mềm của bộ phận

Với mô hình thác nước ứng dụng vào qui trình phát triển dự án phần mềm tại bộ phận, các dự án tiếp theo được phát triển theo từng giai đoạn rõ ràng, từ tiếp nhận yêu cầu, đến phân tích yêu cầu, đưa ra bản đặc tả, phân tích thiết kế sản phẩm, lập trình, kiểm thử và chuyển giao sản phẩm Thời gian đầu vận hành, qui trình mới đã mang lại nhiều lợi ích cho bộ phận, giúp các dự án dễ tiếp cận để bảo trì hơn, đồng thời, việc ước lượng và hoạch định dự án cũng chính xác hơn Qua nhiều dự án (khoảng 15 dự án – tính đến năm 2011), các thành viên trong nhóm dự án đã quen với qui trình và quán tính giải quyết vấn đề cũng tuân thủ theo qui trình, qua đó, các dự án đều phải trải qua các khâu chuẩn bị yêu cầu rất kỹ lưỡng trước khi tiến hành hiện thực hóa, các thay đổi yêu cầu (change request) cũng phải được phân tích và chấp nhận mới tiến hành thực hiện Điều này trở nên khó khăn khi các dự án càng lúc càng được yêu cầu cao hơn, phát triển nhanh hơn và thay đổi yêu cầu khách hàng thường xuyên, cũng có nghĩa là các giai đoạn chiếm nhiều thời gian trong dự án như: phân tích yêu cầu, viết đặc tả… (chiếm 60% dự án) trước khi tiến hành hiện thực hóa, cần phải cắt giảm, ngoài ra, cấu trúc sản phẩm cũng cần phải linh động trong việc tích hợp các yêu cầu mới và thay đổi các yêu cầu cũ

Do hạn chế của mô hình thác nước cũ, đội ngũ phát triển phần mềm web tại VNG gặp nhiều khó khăn, ảnh hưởng đến năng suất và hiệu quả dự án Vì vậy, nhu cầu về một quy trình tiên tiến phù hợp với đặc thù dự án của công ty trở thành một điều bức thiết.

Phân tích vấn đề

Từ những vấn đề mà bộ phận phát triển phần mềm web tại công ty VNG đang gặp phải như trên, có thể nhận thấy bộ phận đang sở hữu nguồn lực lớn mạnh về cơ sở vật chất, trang bị kỹ thuật, cũng như đội ngũ nhân viên giàu kinh nghiệm, có nền tảng tốt (là cơ sở để tiếp nhận nhanh kiến thức mới), nhưng tất cả lại không được tổ chức trong một trật tự tốt, gây nên những xáo trộn và hoạt động không hiệu quả cả về nguồn lực máy móc thiết bị lẫn con người

Bằng các thông tin tổng kết từ việc phỏng vấn các thành viên trong nhóm dự án (15 người) về những khó khăn và bài học kinh nghiệm được đúc kết từ cuối mỗi dự án (tham khảo thêm ở phụ lục C), có thể nhìn nhận sâu xa hơn về vấn đề hoạt động không hiệu quả từ phía bộ phận thông qua khâu quản lý, sử dụng nguồn lực và qui trình hoạt động của các dự án tại bộ phận Điều này thể hiện qua 7 điểm tổng kết như sau:

1 Qui trình hiện tại không đáp ứng được yêu cầu phát triển nhanh và thay đổi yêu cầu thường xuyên từ các dự án

Trong năm 2011, công ty VNG với chiến lược phát hành và phát triển nhiều sản phẩm mới, đồng thời cập nhật nhiều bản nâng cấp cho các sản phẩm cũ nhằm duy trì khách hàng cũ và tìm kiếm khách hàng mới, đã đưa ra nhu cầu phát triển nhiều dự án web hỗ trợ với tương tác phức tạp, thời gian hoàn thành ngắn, có khả năng mở rộng và tiếp nhận thay đổi yêu cầu thường xuyên, qua đó mang lại lợi thế cạnh tranh cho các sản phẩm của công ty trên thị trường cạnh tranh ngày càng xuất hiện nhiều đối thủ Qui trình thác nước truyền thống, với sự phát triển sản phẩm tuần tự qua từng bước, đã trở nên ì ạch hơn trong các dự án hiện nay do yêu cầu ban đầu của hầu hết các dự án chỉ ở mức thô sơ (khả năng thay đổi yêu cầu rất cao), không chi tiết và ổn định như các dự án trước đây

2 Chi phí phát triển, vận hành, bảo trì các sản phẩm của bộ phận tăng cao

Với qui trình hiện tại, thời gian chờ giữa các khâu trong quá trình phát triển dự án tương đối lớn, đặc biệt là khâu tiếp nhận và phân tích yêu cầu khách hàng, điều này làm giảm thời gian của các khâu khác, nhất là khâu kiểm thử (thường bị bỏ qua do không kịp tiến độ), làm ảnh hưởng đến chất lượng sản phẩm, gây nhiều lỗi trong thời gian vận hành, qua đó làm tăng chi phí sửa lỗi, bảo trì sản phẩm Ngoài ra, nguồn nhân lực chưa được tối ưu hóa do cấu trúc dự án vẫn còn ở mức đơn giản của mô hình thác nước, phù hợp với những dự án có nội dung đơn giản trong giai đoạn đầu của bộ phận nên chi phí đầu tư cho dự án tăng cao, tỉ lệ thuận với độ phức tạp của các dự án hiện tại

3 Phân bổ thời gian giữa các giai đoạn trong qui trình chưa hợp lý

Áp lực công việc gia tăng do yêu cầu thay đổi thường xuyên và kỳ vọng đáp ứng cao từ khách hàng nội bộ khiến các thành viên trong nhóm làm việc quá sức nhưng vẫn không thể đáp ứng yêu cầu Nguyên nhân gốc rễ là sự phân bổ thời gian không hợp lý trong quy trình hiện tại, ưu tiên quá mức cho phân tích yêu cầu và thiết kế, dẫn đến thời gian lập trình bị eo hẹp, khiến các sự cố phát sinh trong quá trình lập trình không kịp xử lý, gây ra lỗi tiềm ẩn trong sản phẩm.

4 Xác định độ ưu tiên của các yêu cầu và giá trị của nó chưa chính xác

Sự phối hợp không nhịp nhàng giữa các bên liên quan, giữa khách hàng và nhóm dự án, giữa các thành viên trong dự án đã gián tiếp tạo ra các quyết định không chính xác, dẫn đến việc thực hiện những quyết định này cũng không giúp giải quyết nhiều vấn đề mà bộ phận đang gặp phải Nhìn nhận từ phía cấp quản lý bộ phận, việc tăng hiệu suất làm việc từ phía nhân viên là điều đáng mừng, nhưng theo nguyên lý 80:20, việc quyết định đúng những công việc cần thực hiện trước và sau, nói cách khác là xác định độ ưu tiên của công việc chính xác, đưa 20% công việc cần giải quyết gấp để đem lại 80% sự ổn định cho hệ thống, lại không được thực hiện tốt, tạo nên hiệu quả làm việc không tốt của toàn bộ phận Điều này không được thể hiện trong qui trình hiện tại

5 Bài học kinh nghiệm (lesson learned) được rút ra sau mỗi dự án, đã không được tận dụng để giảm rủi ro cho các dự án tiếp theo Ở hầu hết các công ty hoạt động trong lĩnh vực CNTT, việc đánh giá và rút ra các bài học kinh nghiệm sau mỗi dự án là việc làm rất quen thuộc, góp phần tạo nên kho kinh nghiệm quý báu, phục vụ cho công tác hoạch định, quản lý rủi ro và lên danh sách các điều cần phải đáp ứng (check list) trong các dự án tiếp theo Tuy nhiên, kho kinh nghiệm này lại không được tận dụng tốt ở bộ phận phát triển phần mềm web, gián tiếp tạo nên các lỗi không đáng có và lặp lại nhiều trong quá trình phát triển các sản phẩm

6 Thời gian chờ trong giao tiếp giữa các bộ phận hỗ trợ và khách hàng với nhóm dự án tăng cao

Giao tiếp chủ yếu giữa bộ phận phát triển với khách hàng và với các bộ phận hỗ trợ trực tiếp cho dự án, hầu hết đều gián tiếp qua email và sử dụng các tài liệu tự định nghĩa Điều này làm kéo dài thời gian thực hiện dự án, tạo nên các chi phí gia tăng không hợp lý, góp phần làm trễ kế hoạch dự án Trung bình các tài liệu được hoàn tất và chuyển giao sau mỗi cuộc họp từ 3 đến 5 ngày, trong thời gian này, bộ phận lập trình không bắt đầu viết mã được do thông tin yêu cầu cụ thể cho tính năng chưa được rõ ràng

7 Cấu trúc nhóm dự án phức tạp, nhiều cấp gây thất thoát và làm chậm dòng thông tin di chuyển

Các thành viên trong nhóm không chủ động trong công tác tiếp nhận yêu cầu từ khách hàng hoặc ra quyết định kiến trúc sử dụng trong dự án mà phải thông qua nhiều cấp (từ Project Manager, đến Team Leader), làm cho luồng thông tin về yêu cầu, cũng như thay đổi yêu cầu từ phía khách hàng chậm đến với thành viên nhóm phát triển hoặc bị sai lệch (do người tiếp nhận thông tin không có chuyên môn về phát triển sâu sản phẩm), tạo nên những cuộc họp không cần thiết và lặp lại để thống nhất yêu cầu giữa các bên, chiếm nhiều thời gian của dự án (khoảng 35-40% tổng thời gian dự án), góp phần làm trễ tiến độ dự án

Kết luận: Từ những vấn đề phân tích ở trên, có thể thấy được tầm quan trọng của qui trình phát triển phần mềm trong các dự án của bộ phận Các vấn đề 1,2 và 3 đã phân tích mối quan hệ này Ở vấn đề 4, sự xác định các yêu cầu chủ chốt, đem lại giá trị cao cho dự án không được yêu cầu trong qui trình hiện tại mà dựa vào kinh nghiệm của người tiếp nhận, phân tích và quản lý yêu cầu của khách hàng Tuy nhiên, việc xác định rõ mục tiêu của dự án trong nguồn lực (thời gian) hạn hẹp dựa trên các thực hành tốt từ phía qui trình là điều nên có

Bên cạnh đó, việc giao tiếp trong dự án được đưa ra ở vấn đề 6 cũng cho thấy các qui định sử dụng phương thức truyền/nhận tin trong qui trình hiện tại chưa được định nghĩa, đa phần dựa trên thói quen của các thành viên trong nhóm dự án

Tương tự, vấn đề 7 cũng chỉ ra được cấu trúc nhóm được tổ chức dựa trên mô hình phát triển hiện tại được sử dụng trong qui trình của dự án không còn phù hợp nữa

Như vậy, một qui trình phát triển phần mềm nhằm cải thiện những hạn chế từ bộ phận phát triển phần mềm web tại công ty VNG là một trong các lựa chọn nhằm nâng cao hiệu quả các dự án, nâng cao chất lượng và sự hài lòng của khách hàng đối với sản phẩm.

Nhận diện và phân tích giải pháp

Vượt lên nhiều qui trình phát triển phần mềm trước đây, CMMI (Capability Maturity Model Integration) là qui trình phát triển phần mềm được xem là hoàn thiện nhất, là mục tiêu hướng đến của các doanh nghiệp phần mềm trong và ngoài nước Tuy nhiên, theo TS Nguyễn Long, Tổng thư ký Hội Tin học Việt Nam, chi phí và thời gian để triển khai và cấp chứng nhận cho doanh nghiệp đạt chuẩn CMMI lại rất cao (có thể lên tới cả trăm ngàn USD) và tốn nhiều thời gian, ngoài ra, chi phí để thiết lập các tài liệu của một dự án theo CMMI là rất lớn và tốn nhân lực để hoàn thành việc này Như vậy, dù được xem là giấy thông hành của các doanh nghiệp trong nước để hoạt động trên thị trường phần mềm quốc tế, nhưng chứng nhận CMMI lại không phải dễ dàng có được, nói cách khác, CMMI chỉ phù hợp cho những công ty lớn, hoạt động trong lĩnh vực gia công phần mềm là chủ yếu

Bộ phận phát triển phần mềm ứng dụng web của công ty VNG chủ yếu phát triển các sản phẩm phục vụ cho chính mình, theo định hướng phát triển chung của công ty Các sản phẩm của bộ phận cung cấp khác với các sản phẩm của dự án phần mềm gia công ở yếu tố đánh giá dự án, trong khi các dự án gia công đòi hỏi rất nhiều và rõ ràng về các tài liệu liên quan trước khi hiện thực hóa bản thiết kế để cho ra sản phẩm như cam kết, thì các dự án của bộ phận đặt yếu tố này ở mức không quan trọng, thay vào đó, sự phát triển sản phẩm nhanh, chất lượng tốt, đáp ứng chính xác những gì công ty mong muốn được đưa lên làm mục tiêu hàng đầu cần phải đạt được Ở các dự án gia công theo qui trình CMMI thì việc thay đổi yêu cầu trong quá trình hiện thực hóa được xem là rủi ro, phá vỡ cấu trúc thiết kế và tăng chi phí dự án, vì vậy, hầu hết các thay đổi (change request) được đưa vào điều khoản tăng thêm và phải qua đàm phán, xem xét kỹ lưỡng mới tiến hành thực hiện Ngược lại, các dự án của bộ phận phát triển phần mềm web của công ty VNG luôn phải tiếp nhận rất nhiều thay đổi từ khâu tiếp nhận yêu cầu, đến khâu phân tích và thiết kế hệ thống và cuối cùng là ở khâu lập trình, thậm chí, nhiều dự án còn phải thay đổi sau khi sản phẩm đã xuất bản ra thị trường Ngoài ra, chất lượng dự án tại bộ phận cũng không chỉ dừng lại ở mức độ bàn giao đúng thời gian cam kết, mà còn thể hiện qua quá trình sử dụng, sự hài lòng của người dùng cuối và trên hết là đáp ứng tốt nhiều thay đổi từ phía khách hàng nội bộ

Nhận thấy quy trình CMMI không phù hợp với các dự án tại bộ phận phát triển phần mềm web của VNG, nhu cầu áp dụng quy trình phát triển phần mềm mới là cấp thiết Mô hình thác nước lỗi thời không đáp ứng được yêu cầu thực tế Các quy trình phát triển phần mềm linh hoạt như Agile đang được quan tâm, tuy nhiên việc lựa chọn phù hợp với tình hình thực tế không phải dễ dàng.

CHƯƠNG 4 ỨNG DỤNG AGILE TRONG CÁC DỰ ÁN PHẦN MỀM TẠI

CÔNG TY CỔ PHẦN VNG

Đánh giá mức độ phù hợp

Hai tác giả Boehm và Turner (2003) đã đưa ra năm yếu tố quyết định quan trọng trong việc đánh giá mức độ phù hợp của dự án ứng dụng Agile, theo đó, sự phù hợp trong các dự án của bộ phận phát triển phần mềm web của công ty VNG được thể hiện qua phân tích chi tiết từng yếu tố dựa trên kết quả phỏng vấn chuyên gia (là các trưởng dự án của bộ phận, 3 người) nhằm xác định các thông tin sử dụng cho việc đánh giá mức độ phù hợp (tham khảo thêm ở phụ lục D):

• Mức độ rủi ro thấp (Criticality)

Rủi ro được nói đến ở đây là mức ảnh hưởng của kết quả dự án đến những bên liên quan và ảnh hưởng đến kết quả hoạt động của công ty

Với đặc trưng của mình là nhanh và linh hoạt, Agile cho phép các thay đổi yêu cầu (Change request) được thực thi ngay cả khi dự án đã bắt đầu, điều này là điểm cải tiến trong nhiều qui trình hiện tại mà ở đó sự thay đổi yêu cầu được xem là trở ngại rất lớn, làm mất thời gian và phá vỡ những cam kết (Baseline) ban đầu Cũng vì vậy mà việc một sản phẩm cuối cùng không giống với thiết kế ban đầu là điều dễ dàng tìm thấy ở các dự án có ứng dụng Agile Điều này cũng đồng nghĩa với việc rủi ro phá vỡ cấu trúc, hoặc những cam kết ban đầu rất cao Vì vậy, đối với những dự án cần thiết phát triển nhanh thành ứng dụng từ yêu cầu sơ khai ban đầu với mức độ ảnh hưởng thấp (rủi ro thấp) hoàn toàn phù hợp với Agile

Bộ phận phát triển phần mềm VNG là nơi cho ra đời những sản phẩm có đặc điểm trên Sản phẩm chủ yếu được sử dụng để giới thiệu hoặc cung cấp thông tin đến người dùng cuối, được điều hành bởi nội bộ công ty Vì lý do cạnh tranh gay gắt trong môi trường kinh doanh cùng lĩnh vực, VNG buộc phải giới thiệu hình ảnh sản phẩm/dịch vụ của mình với người dùng cuối sớm hơn đối thủ cạnh tranh, chính vì vậy, các sản phẩm web của công ty đòi hỏi sự phát triển nhanh và có nhiều thay đổi trong quá trình thực hiện

• Thành viên nhóm có kinh nghiệm (Personnel)

Như giới thiệu ở trên, Agile chia nhỏ dự án ra nhiều phân đoạn, với mỗi phân đoạn kéo dài từ một đến hai tuần làm việc (gọi là sprint)

Mỗi Sprint là một tập hợp các khâu từ tiếp nhận yêu cầu, phân tích thiết kế, hiện thực hóa, kiểm thử (testing) và chuyển giao cho khách hàng (release)

Trong quá trình triển khai dự án, mỗi thành viên nhóm đều phải trải qua các giai đoạn liên quan Điều này đòi hỏi mỗi thành viên không chỉ có kinh nghiệm ở tất cả các khâu mà còn phải có khả năng làm việc độc lập, phân tích tốt Ngoài ra, kỹ năng giao tiếp cũng đóng vai trò quan trọng ở giai đoạn tiếp xúc với khách hàng để làm rõ yêu cầu và tiếp nhận những thay đổi.

Môi trường làm việc áp lực trong các dự án ứng dụng Agile thể hiện đặc tính phát triển nhanh và linh hoạt của qui trình, vì vậy, một điểm khác cần lưu ý ở đây là các thành viên dự án phải có khả năng làm việc nhóm tốt và chịu áp lực cao

Với phần lớn thành viên nhóm dự án tốt nghiệp đại học chuyên ngành công nghệ thông tin (CNTT), trong đó, hơn 80% thành viên có kinh nghiệm làm việc trong cùng lĩnh vực từ 3 năm trở lên, các trưởng nhóm là những người hoạt động trong lĩnh vực này từ thời công ty còn sơ khai (5-6 năm), đội ngũ bộ phận phát triển phần mềm VNG cho thấy khả năng ứng dụng Agile vào các dự án là rất lớn

• Yêu cầu thay đổi thường xuyên (Dynamism)

Tính linh hoạt trong Agile một lần nữa được nhấn mạnh ở những thay đổi yêu cầu trước, trong và sau khi dự án triển khai Đối với một dự án ổn định (các yêu cầu được “chốt” lại – baseline – trong các tài liệu trước khi hiện thực hóa) thì việc ứng dụng Agile không thực sự cần thiết Thông thường, những qui trình phát triển phần mềm trước đây đều đánh giá những thay đổi yêu cầu (Change request – viết tắt là CR) là không mong muốn, vì vậy, việc sử dụng thời gian dự trữ (buffer) trong các dự án là điều không tránh khỏi Tuy nhiên, các thay đổi trong các dự án này cũng sẽ được đáp ứng với ước tính cẩn thận, dĩ nhiên, thời gian và chi phí cho dự án cũng tăng lên theo, điều này gây khó khăn cho khách hàng

Xuất phát từ nhu cầu quảng bá sản phẩm/dịch vụ công ty, VNG đã hình thành nên nhóm các dự án có nhu cầu tiếp nhận nhiều thay đổi yêu cầu ở mức thường xuyên, tùy thuộc vào chiến lược và kế hoạch cho từng sản phẩm

Vì mức độ cạnh tranh và thời gian ra mắt sản phẩm giữa các đối thủ rất khắt khe nên dự án của công ty thường phát triển theo hướng nhanh, kịp thời, có nhiều thay đổi trong quá trình thực hiện Ngoài ra, nhằm thu hút nhiều người dùng hơn nữa, các website công ty đều có kế hoạch thiết kế lại nhiều lần trong năm, quá trình thiết kế lại này là các thay đổi nội dung bên trong và giao diện bên ngoài Như vậy, đánh giá về mức độ thay đổi thì các dự án tại bộ phận phát triển phần mềm có mức độ thay đổi nhiều, diễn ra thường xuyên

• Kích thước nhóm nhỏ, các thành viên làm việc cùng một địa điểm (Size)

Trong phương pháp làm việc linh hoạt Agile nhấn mạnh tính tự quản cao, mỗi thành viên đều tham gia vào quá trình phân tích, thiết kế và triển khai ứng dụng, do đó cấu trúc nhóm là một yếu tố rất quan trọng Một nhóm trong dự án Agile được tối ưu khi có từ 10-12 thành viên Kích thước nhóm nhỏ này giúp cho việc phản ứng nhanh nhạy với các yêu cầu, tiếp nhận và triển khai nhu cầu của khách hàng hiệu quả hơn Các thành viên trong nhóm cần có sự phối hợp thông tin và yêu cầu chính xác cũng như kịp thời, tạo sự thống nhất trong mục tiêu triển khai và kết nối chặt chẽ các phần của dự án Để đạt được điều này, các thành viên nên làm việc tại cùng một địa điểm.

Tại VNG, các thành viên của nhóm dự án hiện tại đang làm việc cùng với nhau tại cùng tòa nhà, mỗi nhóm từ 5 đến 6 thành viên Với điều kiện như trên, rõ ràng cấu trúc nhóm dự án của bộ phận phát triển phần mềm web tại công ty VNG là phù hợp trong câu chuyện ứng dụng của Agile

• Văn hóa công ty tự do, không yêu cầu trật tự (Culture)

Theo Boehm và Turner (2003), phương pháp Agile sẽ thành công trong tổ chức có nền văn hóa “phát triển trên sự hỗn loạn” (thrives on chaos) hơn tổ chức có nền văn hóa “phát triển trong trật tự” (thrives on order)

VNG, với sự phát triển nhanh chóng, đã sở hữu hơn 1.500 nhân sự kể từ khi thành lập vào tháng 9/2004 với 5 người ban đầu Lực lượng lao động trẻ trung của VNG, ở độ tuổi trung bình dưới 30, mang lại nguồn năng lượng và nhiệt huyết, thúc đẩy sự phát triển nhanh chóng, sáng tạo và tập trung Đam mê với công việc kết hợp với văn hóa trẻ trung, tự do và sáng tạo đã tạo nên nền tảng vững chắc cho trách nhiệm của nhân viên VNG đối với các sản phẩm do họ tạo ra.

Kế hoạch ứng dụng

• Thời gian ứng dụng: Hai tháng, từ tháng 01/2012 đến tháng 03/2012

• Giới thiệu dự án ứng dụng thử nghiệm

Dự án được đưa vào ứng dụng thử nghiệm là dự án SGN (Social Gaming Network – phase 2): cung cấp các tính năng về user profile, tra cứu thông tin sản phẩm sử dụng, liên kết bạn bè giữa các lĩnh vực ứng dụng, giới thiệu sản phẩm qua liên kết bạn bè, mô tả các hoạt động bạn bè, tạo ra cộng đồng cùng sử dụng các sản phẩm của công ty

• Liệt kê các yếu tố của dự án ứng dụng thử nghiệm trên cơ sở các yếu tố quyết định quan trọng trong ứng dụng Agile (đã phân tích ở trên)

-Mức độ rủi ro thấp: Dự án ứng dụng thử nghiệm là dự án kết hợp các sản phẩm hiện có của công ty, qua đó tạo nên cộng đồng người sử dụng

Xét đến mức độ rủi ro thì dự án này có rủi ro thấp

-Thành viên nhóm có kinh nghiệm: Dự án thử nghiệm gồm 5 thành viên với trình độ chuyên môn đều ở mức tốt nghiệp Đại học chuyên ngành CNTT, trong đó có 4 vị trí là Software Engineer và 1 vị trí là Senior Software Engineer, 3 thành viên có kinh nghiệm 5-6 năm trong cùng lĩnh vực, 2 thành viên còn lại có 1 năm kinh nghiệm

-Yêu cầu thay đổi thường xuyên: Đây là dự án tạo nên sân chơi mới cho các thành viên của các sản phẩm của công ty, do đó, yêu cầu về các chức năng phát triển luôn thay đổi từ điểm sơ khai ban đầu nhằm đáp ứng tốt cho nhu cầu sử dụng của khách hàng

-Kích thước nhóm nhỏ, các thành viên làm việc cùng một địa điểm: Tổ chức nhóm với kích thước 5 người, tập trung tại cùng một dãy bàn giúp cho các thành viên trong nhóm liên kết tốt, gắn bó cả trong và ngoài dự án

-Văn hóa công ty tự do, không yêu cầu trật tự: Nhóm dự án được hình thành từ những thành viên trong công ty, đều có điểm chung về văn hóa

“không ưa thích sự trật tự” Mỗi thành viên đều có những cá tính riêng, có nhiều sáng tạo trong các sản phẩm

• Các hoạt động cần hướng tới để đạt yêu cầu ứng dụng Agile

Nhân viên đa phần đã trải qua các qui trình phát triển phần mềm truyền thống và chuẩn CMMI nên khá cứng nhắc trong khâu tài liệu trước và sau quá trình phát triển ứng dụng, vì vậy, để tương thích với cách vận hành mới theo Agile, mỗi thành viên trong nhóm cần phải tuân thủ theo tính kỷ luật, cũng như biết cách xác định các phần quan trọng, các tài liệu quan trọng nào bắt buộc và không bắt buộc

Thói quen cũ của các thành viên về dự án: cần có yêu cầu rõ ràng từ phía khách hàng hoặc các bản thiết kế chi tiết trước khi bắt tay vào công việc, bắt buộc phải loại bỏ, thay vào đó là phong cách phản ứng nhanh, liên lạc khách hàng trực tiếp thường xuyên, nắm rõ sự thay đổi yêu cầu từ phía người dùng và mức độ phổ biến của tính năng cần phát triển trên cộng đồng người sử dụng

Thay đổi việc họp từ ít cuộc họp (nhưng nội dung nhiều) ở phương pháp truyền thống sang daily meeting (họp hằng ngày với nội dung ngắn, còn gọi là họp đứng – nhằm tránh kéo dài thời gian họp, không đúng tính chất của Agile), qua đó nắm bắt các vấn đề hiện hành của dự án để có hướng khắc phục và cập nhật tình hình kịp thời

Tính tự chủ trong công việc cũng cần thay đổi từ thói quen nhận yêu cầu chi tiết của Leader sang thói quen tự phân tích, thiết kế chi tiết các tình huống của phần mình đảm nhận Mỗi thành viên cần thiết phải coi mình là một nhà phát triển phần mềm hơn là một người lập trình

- Thiết lập KPI Để công việc trôi chảy, khen thưởng và khiển trách đúng lúc, đúng người, nhóm dự án cũng cần đưa ra các tiêu chí, thiết lập các mục tiêu cá nhân cần đạt được trên khía cạnh dự án (đây cũng là một phần trong quá trình thiết lập KPI hàng năm của công ty nhằm đánh giá kết quả làm việc và năng lực chuyên môn từ phía nhân viên, dùng cho việc khen thưởng, định hướng nghề nghiệp)

Việc thiết lập KPI cho từng thành viên dựa trên phần công việc được cam kết hoàn thành qua các cuộc họp Mỗi thành viên trong dự án thử nghiệm đều phải cam kết hoàn thành chức năng của mình, ngoài ra, các KPI về nghiên cứu và ứng dụng công nghệ, cải thiện giao tiếp và hỗ trợ dịch vụ khác cho các bộ phận liên quan cũng được thiết lập cụ thể cho từng cá nhân thông qua KPI của công ty trong cả năm

• Đưa ra các tiêu chí đánh giá kết quả

Do dự án mang tính nội bộ, thúc đẩy sự tham gia và liên kết khách hàng từ nhiều sản phẩm, dịch vụ khác của công ty, nên việc đánh giá sự thành công của dự án cũng cần thông qua những chỉ tiêu đo lường được sử dụng trong các dự án tại công ty.

CCU (Concurrent Users) – Số lượng khách hàng sử dụng sản phẩm/dịch vụ của công ty trong cùng một thời điểm - là con số định lượng cơ bản trong việc đánh giá này Tại thời điểm thực hiện phase này, dự án hướng tới việc tích hợp với hệ thống Gunny đang được rất nhiều người sử dụng, cũng là một sản phẩm thành công của công ty Việc đếm số thành viên người dùng sử dụng Gunny sau khi dự án đưa vào hoạt động, dựa trên thông tin thống kê từ hệ thống

Hiệu quả sau khi ứng dụng

Sau thời gian ứng dụng thử nghiệm Agile trong dự án SGN tại bộ phận phát triển phần mềm web công ty VNG, đã thu được những thành công trong kết quả ứng dụng như sau:

Chỉ số CCU trên sản phẩm Gunny mà dự án SGN hỗ trợ, đã tăng gấp 1,5 lần so với khi chưa có dự án Đây là bước đầu gặt hái thành công thông qua kết quả đo lường từ thực tế người sử dụng

SGN được đưa ra với mong muốn kết nối và tạo nên cộng đồng người sử dụng trong các sản phẩm/dịch vụ công ty và điều này đã phần nào thành công khi số người sử dụng mới tăng lên đáng kể, là hiệu quả của việc “mời người sử dụng” thông qua danh sách bạn bè, nhờ đó doanh thu công ty trên sản phẩm được hỗ trợ cũng tăng lên đáng kể Ngoài ra, sự hỗ trợ của dự án SGN trong các sự kiện khuyến mãi (promotion) cũng giúp gia tăng nhanh chóng tính hiệu quả của sự kiện, thu hút đông đảo người sử dụng mới

Xét về góc độ vận hành sản phẩm – kết quả của dự án SGN, bộ phận vận hành web đã giảm đáng kể thời gian và chi phí nhân sự cho việc nhập nội dung (content) định kỳ nhờ vào tính tự động cập nhật và đồng bộ hóa thông tin từ sản phẩm/dịch vụ hiện có và sản phẩm của dự án Thay vì trước đây, số lượng người nhập liệu cần cho sản phẩm là 3 người với lượng thông tin nhập liệu tương đối nhiều, thì nay đã giảm xuống còn 1 người với lượng thông tin ít hơn tới 1/5 lần

Sự ra đời của dự án SGN đã liên kết các sản phẩm/dịch vụ hiện có của công ty lại với nhau, tạo nên mạng lưới thông tin khổng lồ, tạo điều kiện thuận lợi nhất cho người dùng trong công tác tra cứu thông tin, sử dụng thông tin và liên kết người dùng trong cộng đồng lại với nhau Đây là thành công lớn về mặt kết nối từ phía dự án

Để đánh giá hiệu quả ứng dụng, nhóm dự án đã thu thập ý kiến khách hàng thông qua diễn đàn diendan.zing.vn Kết quả cho thấy 90% khách hàng hài lòng về sản phẩm, mong muốn phát triển thêm ứng dụng mới Nhóm dự án đã tiếp nhận phản hồi, cải thiện sản phẩm và cập nhật vá lỗi kịp thời, nâng cao chất lượng và đáp ứng nhu cầu của người dùng.

Từ góc độ người dùng, ứng dụng đem lại giá trị phù hợp, làm hài lòng khách hàng Đối với người quản lý dự án, dự án giúp giảm chi phí vận hành, tăng tương tác, phản ứng nhanh với thông tin cập nhật, yêu cầu thay đổi, nâng cao kỹ năng chuyên môn và liên kết nhóm Những hiệu quả này minh chứng cho thành công của dự án triển khai thử nghiệm.

Tuy nhiên, trong quá trình triển khai dự án thử nghiệm ứng dụng Agile, xuất hiện một số khó khăn cần được cải thiện như sau:

- Sự năng động trong công việc khiến cho hiệu suất hoạt động của nhóm tăng cao, một số thành viên vẫn chưa quen nên tỏ ra quá sức Việc này sẽ sớm cải thiện khi các thành viên quen với qui trình mới

- Sự phối hợp giữa các bên trong giao tiếp rất tốt nhưng vẫn tỏ ra khó khăn ở khâu quyết định và ghi nhớ Để cải thiện, cần có những email chốt lại vấn đề trao đổi, nhằm ghi lại những nội dung cần thiết cho quyết định.

Ngày đăng: 24/09/2024, 13:54

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Phương pháp Agile - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Hình 2.1. Phương pháp Agile (Trang 20)
Bảng 2.1. Tuyên ngôn Agile - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Bảng 2.1. Tuyên ngôn Agile (Trang 21)
Hình 2.2. Qui trình Scrum - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Hình 2.2. Qui trình Scrum (Trang 24)
Hình 2.3. Vòng đời của qui trình XP - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Hình 2.3. Vòng đời của qui trình XP (Trang 26)
Hình 2.4. Mô hình thác nước (Waterfall) - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Hình 2.4. Mô hình thác nước (Waterfall) (Trang 27)
Hình 2.8. Qui trình RUP - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Hình 2.8. Qui trình RUP (Trang 29)
Hình 2.9. Các cấp độ của CMMI - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Hình 2.9. Các cấp độ của CMMI (Trang 30)
Bảng 2.2. So sánh các mô hình (1) - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Bảng 2.2. So sánh các mô hình (1) (Trang 31)
Bảng 2.3. So sánh các mô hình (2) - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Bảng 2.3. So sánh các mô hình (2) (Trang 32)
Bảng 2.4. So sánh các mô hình (3) - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Bảng 2.4. So sánh các mô hình (3) (Trang 33)
Hình 2.10. Ba loại thành công của một dự án phần mềm - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Hình 2.10. Ba loại thành công của một dự án phần mềm (Trang 34)
Bảng 4.1. Kết quả ứng dụng Agile (thành công về tổ chức) - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Bảng 4.1. Kết quả ứng dụng Agile (thành công về tổ chức) (Trang 56)
Bảng 4.2. Kết quả ứng dụng Agile (thành công về kỹ thuật) (1) - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Bảng 4.2. Kết quả ứng dụng Agile (thành công về kỹ thuật) (1) (Trang 57)
Bảng 4.4. Kết quả ứng dụng Agile (thành công về cá nhân) - Luận văn thạc sĩ Quản trị kinh doanh: Ứng dụng quy trình phát triển phần mềm linh hoạt để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty cổ phần VNG (VNG Corporation)
Bảng 4.4. Kết quả ứng dụng Agile (thành công về cá nhân) (Trang 59)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN