Tải bản đầy đủ (.pdf) (75 trang)

Ứ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ạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (670.01 KB, 75 trang )

Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------

NGUYỄN ANH VŨ

Ứ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)
Chuyên ngành: Quản trị Kinh doanh

KHĨA LUẬN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 05 năm 2012


Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------

NGUYỄN ANH VŨ

Ứ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)


Chuyên ngành: Quản trị Kinh doanh

KHĨA LUẬN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 05 năm 2012


CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

Cán bộ hướng dẫn khoa học: TS. Phạm Quốc Trung
Cán bộ chấm nhận xét 1: PGS. TS. Lê Nguyễn Hậu
Cán bộ chấm nhận xét 2: TS. Nguyễn Thanh Hùng
Khóa luận thạc sĩ được bảo vệ/nhận xét tại HỘI ĐỒNG CHẤM BẢO VỆ
KHÓA LUẬN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA,
ngày 25 tháng 05 năm 2012.
Thành phần hội đồng đánh giá khóa luận thạc sĩ gồm:
1. Chủ tịch: PGS. TS. Lê Nguyễn Hậu
2. Thư ký:

TS. Nguyễn Thanh Hùng

3. Ủy viên:

TS. Phạm Quốc Trung

CHỦ TỊCH HỘI ĐỒNG

Lê Nguyễn Hậu


CÁN BỘ HƯỚNG DẪN

Phạm Quốc Trung


ĐẠI HỌC QUỐC GIA TP. HCM

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

Độc Lập - Tự Do - Hạnh Phúc
Tp. HCM, ngày 25 tháng 05 năm 2012

NHIỆM VỤ KHÓA LUẬN THẠC SĨ
Họ và tên học viên: NGUYỄN ANH VŨ........................... Giới tính: Nam ........................
Ngày, tháng, năm sinh: 19/03/1984 ................................... Nơi sinh: Bình Thuận ..............
Chuyên ngành: Quản trị Kinh doanh.................................. MSHV: 10170854 ...................
Khoá (Năm trúng tuyển): 2010 ............................................................................................
1- TÊ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)
2- NHIỆM VỤ KHĨA LUẬN:
Nhiệm vụ của khóa luận bao gồm các phần sau đây:
(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;
(3) Phân tích và đánh giá các vấn đề tồn tại tại công ty;
(4) Đưa ra các giải pháp và lựa chọn giải pháp;
(5) Ứng dụng triển khai thử nghiệm Agile tại công ty và đánh giá kết quả thử nghiệm;
(6) Đưa ra các nhận xét, kết luận và kiến nghị.

3- NGÀY GIAO NHIỆM VỤ: 05/12/2011
4- NGÀY HOÀN THÀNH NHIỆM VỤ: 08/04/2012
5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Tiến sĩ Phạm Quốc Trung
Nội dung và đề cương Khóa luận thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua.
CÁN BỘ HƯỚNG DẪN
(Họ tên và chữ ký)

Phạm Quốc Trung

KHOA QL CHUYÊN NGÀNH
(Họ tên và chữ ký)


i

LỜI CẢM ƠN
Trong q trình thực hiện đề tài Khóa luận này, Tác giả nhận được rất nhiều
sự giúp đỡ của nhiều thầy cơ, đồng nghiệp, gia đình và bạn bè thương mến.
Tác giả rất trân trọng và xin phép cảm ơn:
Tiến sĩ Phạm Quốc Trung – Khoa Quản lý Cơng nghiệp, trường Đại học
Bách khoa Thành phố Hồ Chí Minh – dù rất bận rộn với công việc và gia đình,
song vẫn dành cho Tác giả sự quan tâm rất lớn trong suốt quá trình thực hiện
đề tài này. Thầy là người luôn theo sát và kịp thời hướng Tác giả đi theo
đúng mục tiêu đề ra.
Tiến sĩ Nguyễn Thanh Hùng và Tiến sĩ Nguyễn Mạnh Tuân – Khoa Quản lý
Công nghiệp, trường Đại học Bách khoa Thành phố Hồ Chí Minh – đã có những
nhận xét q báu, giúp tác giả hoàn thiện về phương pháp nghiên cứu cũng như
nội dung đề tài.
Các đồng nghiệp trong bộ phận phát triển phần mềm tại công ty Cổ phần
VNG (VNG Corporation) đã nhiệt tình giúp đỡ Tác giả trong cơng tác thu thập

số liệu và nghiên cứu tại bộ phận.
Các Thầy, Cô trong khoa Quản lý Công nghiệp, trường Đại học Bách khoa
Thành phố Hồ Chí Minh đã cung cấp nhiều kiến thức chuyên ngành, giúp Tác giả
có được phương pháp và nền tảng trong quá trình thực hiện đề tài.
Ngồi ra, gia đình đã tạo động lực và điều kiện giúp Tác giả an tâm
và tập trung trong thời gian thực hiện đề tài.
Tất cả đã giúp Tác giả hồn tất đề tài khóa luận theo một cách tốt nhất có thể.
Cuối cùng, Tác giả kính chúc q Thầy, Cô dồi dào sức khỏe và thành công
trong sự nghiệp cao quý. Đồng kính chúc các Anh, Chị và các đồng nghiệp
trong bộ phận phát triển phần mềm công ty Cổ phần VNG luôn dồi dào sức khỏe,
đạt được nhiều thành cơng tốt đẹp trong cơng việc. Kính chúc các thành viên
trong gia đình dồi dào sức khỏe và ln vui vẻ, hạnh phúc.
Trân trọng kính chào,
Nguyễn Anh Vũ
Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


ii

LỜI CAM ĐOAN
Tơi, Nguyễn Anh Vũ, xin cam

đoan: Khóa luận “Ứ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)” là công trình
nghiên cứu khoa học của riêng tơi. Các số liệu nêu ra và trích dẫn
trong Khóa luận là trung thực. Tồn bộ kết quả nghiên cứu của Khóa luận
chưa từng được bất cứ ai khác công bố tại bất cứ cơng trình nào.
Tp. HCM, ngày 08 tháng 04 năm 2012

Tác giả Khóa luận,

Nguyễn Anh Vũ

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


iii

TĨM TẮT
Qui trình phát triển/xây dựng phần mềm (Software Development/
Engineering Process - SEP) đang ngày càng trở nên cần thiết và có tính chất
quyết định để tạo ra sản phẩm chất luợng tốt với chi phí thấp và năng suất cao
cho tổ chức sử dụng. Tuy nhiên, việc xác định đúng qui trình phù hợp với
tính chất và loại dự án trong tổ chức là một vấn đề khó khăn cho cho bất kỳ
doanh nghiệp nào, đặc biệt là doanh nghiệp có các dự án phần mềm vừa và nhỏ.
Trong đó, cơng ty cổ phần VNG (VNG Corporation) với rất nhiều dự án
phần mềm dạng web có qui mơ vừa và nhỏ, cũng không phải là một ngoại lệ.
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 thấy phần lớn
các nguyên nhân đều qui về qui trình phát triển phần mềm đang được sử dụng
khơng cịn phù hợp với yêu cầu ngày càng cao và linh hoạt của các dự án
tại bộ phận phát triển phần mềm. Thông qua tìm hiểu, phân tích và đánh giá
phương pháp phát triển phần mềm linh hoạt (Agile) so với các phương pháp
khác, cho thấy Agile là phương pháp phát triển phần mềm tiên tiến, có nhiều
điểm nổi bật và phù hợp với các dự án có qui mơ vừa và nhỏ. Trong bài viết này,
Agile được đề xuất như là một giải pháp để khắc phục các vấn đề về qui trình
phát triển phần mềm tại cơng ty VNG, góp phần giải quyết phần lớn các vấn đề
về hiệu quả của các dự án tại công ty. Hơn nữa, một dự án thử nghiệm dựa trên

qui trình phát triển phần mềm linh hoạt cũng được lên kế hoạch và thực hiện
để củng cố thêm cho giải pháp. Với kết quả đáp ứng được các yêu cầu đề ra
và thỏa mãn ba tiêu chí đánh giá chất lượng dự án phần mềm, dự án thử nghiệm
cho thấy tính khả thi của việc ứng dụng Agile trong qui trình phát triển
phần mềm tại công ty VNG trên thực tế.

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


iv

ABSTRACT
Software development/engineering process (SEP) becomes more and more
necessary and is the key factor to create a better quality product with low costs
and high productivity. However, how to choose the process which is suitable to
properties and types of projects of organization is a difficult problem for many
enterprises, especially for enterprise with small and medium software projects.
VNG Corporation, an enterprise with a lot of small and medium web forms
software projects, is not an exception.
By approaching and analyzing the problem that VNG is facing in software
projects, the causes of ineffective projects are clarified gradually. Almost the
causes belong to software development process. The software development
process being used is no longer consistent with the increasing requirements and
flexibilities of the project in the software development department. After
researching, analyzing, evaluating and comparing Agile to other software
methods, Agile is an advanced software development method, has many pros
points and consitent with small and medium software projects. In this research,
Agile is suggested as a method to overcome problems in the software
development process at VNG company, and to solve requirements of high
effectiveness of projects. Moreover, a prototyped project based on flexible

software development process is also planned and proceeded to consolidate the
solution. Because the result meets all requirements and satisfies three criterias of
software project quality, a prototyped project prove the feasibility of applying
Agile in software development process at VNG company in practice.

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


v

MỤC LỤC
CHƯƠNG 1

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

1.1.

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

1.2.

Tên đề tài .................................................................................................. 2

1.3.

Mục tiêu .................................................................................................... 2

1.4.

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


1.5.

Phạm vi thực hiện ..................................................................................... 3

1.6.

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

1.7.

Ý nghĩa đề tài ............................................................................................ 5

1.8.

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

1.9.

Bố cục đề tài ............................................................................................. 7

CHƯƠNG 2
2.1.

CƠ SỞ LÝ THUYẾT ..................................................................... 8

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

2.1.1.


Giới thiệu ........................................................................................... 8

2.1.2.

Tuyên ngôn Agile (Agile Manifesto) ................................................... 9

2.1.3.

Nguyên lý Agile (Agile Principles) ................................................... 11

2.1.4.

Đặc trưng Agile ............................................................................... 12

2.1.5.

Các phương pháp Agile.................................................................... 13

2.2.

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

2.3.

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

2.4.

So sánh các mơ hình ................................................................................ 19


2.5.

Thành cơng của dự án phần mềm ............................................................ 22

CHƯƠNG 3

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

3.1.

Tổng quan ............................................................................................... 25

3.2.

Hiện trạng ............................................................................................... 26

3.3.

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

3.4.

Phân tích vấn đề ...................................................................................... 30

3.5.

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

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG



vi

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 .................................................................................. 36
4.1.

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

4.2.

Kế hoạch ứng dụng ................................................................................. 39

4.3.

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

4.4.

Kết quả triển khai thử nghiệm ................................................................. 44

CHƯƠNG 5

KẾT LUẬN .................................................................................. 49

5.1.


Kết quả đạt được ..................................................................................... 49

5.2.

Hạn chế của đề tài ................................................................................... 50

5.3.

Hướng phát triển của đề tài ..................................................................... 50

Phụ lục A

Danh sách các nhà phát triển phần mềm đưa ra tuyên ngôn Agile .... 51

Phụ lục B

Bảng câu hỏi phỏng vấn về thực trạng của bộ phận .......................... 51

Phụ lục C

Bảng câu hỏi phỏng vấn về bài học kinh nghiệm .............................. 55

Phụ lục D

Bảng câu hỏi phỏng vấn về sự phù hợp ứng dụng Agile ................... 59

TÀI LIỆU THAM KHẢO ..................................................................................... 62

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG



vii

DANH MỤC HÌNH
Hình 1.1. Các bước thực hiện đề tài ......................................................................... 6
Hình 2.1. Phương pháp Agile .................................................................................. 9
Hình 2.2. Qui trình Scrum ..................................................................................... 13
Hình 2.3. Vịng đời của qui trình XP ..................................................................... 15
Hình 2.4. Mơ hình thác nước (Waterfall) ............................................................... 16
Hình 2.5. Mơ hình chữ V ....................................................................................... 16
Hình 2.6. Mơ hình prototype ................................................................................. 17
Hình 2.7. Mơ hình tiến hóa .................................................................................... 17
Hình 2.8. Qui trình RUP ........................................................................................ 18
Hình 2.9. Các cấp độ của CMMI ........................................................................... 19
Hình 2.10. Ba loại thành cơng của một dự án phần mềm ....................................... 23

DANH MỤC BẢNG BIỂU
Bảng 2.1. Tuyên ngôn Agile .................................................................................. 10
Bảng 2.2. So sánh các mơ hình (1)......................................................................... 20
Bảng 2.3. So sánh các mơ hình (2)......................................................................... 21
Bảng 2.4. So sánh các mơ hình (3)......................................................................... 22
Bảng 4.1. Kết quả ứng dụng Agile (thành công về tổ chức) ................................... 45
Bảng 4.2. Kết quả ứng dụng Agile (thành công về kỹ thuật) (1) ............................ 46
Bảng 4.3. Kết quả ứng dụng Agile (thành công về kỹ thuật) (2) ............................ 47
Bảng 4.4. Kết quả ứng dụng Agile (thành công về cá nhân)................................... 48

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 1


CHƯƠNG 1
TỔNG QUAN - GIỚI THIỆU ĐỀ TÀI
1.1.

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 q 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.
Ngồ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

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 2

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.
1.2.

Tê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).
1.3.

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á.
1.4.

Đố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).

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 3

1.5.

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.
1.6.

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à một công việc quan trọng trong nghiên cứu khoa học

(NCKH). Mục đích của thu thập số liệu (từ các tài liệu NCKH có trước,
từ quan sát và thực hiện thí nghiệm) là để làm cơ sơ lý luận khoa học
hay luận cứ chứng minh giả thuyết hay 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).

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 4

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 sâu các chuyên gia (3 người) tại công ty để xác định
cấu trúc và khuôn mẫu theo Agile cần thay đổi khi áp dụng vào
bộ phận phát triển phần mềm.
Đánh giá khả năng có thể áp dụng qui trình thơng qua phân tích
các kết quả phỏng vấn và dữ liệu nội bộ, qua đó, tìm các đặc điểm,
yêu cầu cần chuẩn bị trước trong kế hoạch áp dụng qui trình Agile
vào bộ phận phát triển phần mềm.
Đề xuất giải pháp thông qua các dữ liệu trên.
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 hồ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.
Lên kế hoạch triển khai và đánh giá hiệu quả của dự án qua các giá trị
chất lượng sản phẩm đầu ra, so sánh với mục tiêu đề ra ban đầu.
Đánh giá kết quả triển khai thử nghiệm dựa trên các tiêu chí
về chất lượng dự án và các tính chất liên quan qua việc so sánh giữa
hai nhóm dự án: nhóm dự án có ứng dụng Agile và nhóm dự án
khơng có ứng dụng Agile. Các dự án trong cả hai nhóm có cùng
phạm vi, thời gian thực hiện, thành viên tham gia và mức độ
kỹ thuật.

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 5


1.7.

Ý 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. Ngồ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.

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 6

1.8.

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
Kế hoạch triển khai
chi tiết

Đánh giá kết quả
đạt được

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ết luận, kiến nghị, hướng phát triển
và hạn chế của đề tài
Hình 1.1. Các bước thực hiện đề tài

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 7

1.9.

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). Ngồ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 (VNG Corporation)
là phần tiếp theo, hướng người đọc quay lại với mục tiêu của đề tài: ứng dụng
qui 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
tại cơng ty VNG. Bằng việc phân tích các vấn đề đang tồn tại ngay sau
phần giới thiệu tổng quan về công ty và bộ phận phát triển phần mềm ứng dụng,
đã mang lại cho người đọc lý do hình thành của đề tài. Tiếp theo sau
là phần phân tích vấn đề mà bộ phận đang gặp phải, qua đó, người đọc

hiểu rõ hơn về các phương pháp giải quyết vấn đề mà đề tài muốn đề cập,
cũng như làm rõ nhu cầu ứng dụng Agile.
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.
Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 8

CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
2.1.

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

2.1.1.

Giới thiệu

Phát triển phần mềm linh hoạt (Agile software development – gọi tắt là
Agile) là “một nhóm các phương pháp và phương pháp luận phát triển phần mềm
dựa trên các nguyên tắc phát triển phân đoạn lặp (Iterative) và tiệm tiến
(Incremental), theo đó nhu cầu và giải pháp tiến hóa thơng qua sự hợp tác
giữa các nhóm tự quản và liên chức năng” (Dương, 2011). Đồng thời, Agile
cũng là triết lý (philosophy), là cách “tư duy” cho việc phát triển các dự án
phần mềm, được cụ thể hóa bởi một số phương pháp phát triển phần mềm
(method), chẳng hạn như Extreme Programming (XP) hay Scrum, gọi tắt là

các phương pháp Agile. Triết lý Agile được đưa ra trong một bản tuyên ngôn
(manifesto) gồm bốn điểm và được làm rõ hơn bởi mười hai quy tắc.
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.

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 9

Hình 2.1. Phương pháp Agile
(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 &
Warden, 2007).
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 hồ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
tun ngơn được nhóm tác giả trình bày như sau:
Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 10

Bảng 2.1. Tuyên ngôn Agile
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.
(Cunningham, 2001)
Điều thứ nhất, Agile nhấn mạnh mối quan hệ và tính cộng đồng của những
nhà phát triển phần mềm, nêu cao vai trò con người trong các hợp đồng hơn

so với quan điểm lấy qui trình và công cụ làm gốc. Điều này thể hiện qua các
mối quan hệ chặt chẽ của nhóm, qua mơi trường làm việc được sắp xếp gần nhau
và các thủ tục thúc đẩy, động viên tinh thần của nhóm.
Điều thứ hai, mục tiêu quan trọng của nhóm phần mềm là liên tục
và thường xuyên đưa ra các phần mềm đã qua kiểm thử. Các nhà phát triển
được khuyến khích viết mã (code) đơn giản, dễ hiểu và mức kỹ thuật cao nhất có
thể để làm giảm gánh nặng trong việc tài liệu hóa.
Điều thứ ba, nhấn mạnh quan hệ hợp tác giữa khách hàng và các
nhà phát triển phần mềm thông qua đàm phán riêng. Trên quan điểm kinh doanh,
Agile tập trung vào việc chuyển giao các giá trị kinh doanh ngay từ thời điểm
dự án bắt đầu, làm giảm các nguy cơ không được thực hiện theo hợp đồng.
Điều thứ tư, nhóm phát triển (bao gồm nhà phát triển phần mềm và đại diện
khách hàng) nên có đầy đủ thơng tin, thẩm quyền và được quyền xem xét
nhu cầu thay đổi trong quá trình phát triển của sản phẩm. Điều này có nghĩa là
các bên ln được chuẩn bị để thực hiện các thay đổi yêu cầu.

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 11

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 q 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ọ để hồ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.
12. Đội sản xuất sẽ thường xuyên suy nghĩ về việc làm sao để trở nên
hiệu quả hơn, sau đó họ sẽ điều chỉnh và thay đổi các hành vi của mình
cho phù hợp.
Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 12

2.1.4.


Đặc trưng Agile

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ỏ q 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 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 hồ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.
Quản lý tiến trình thực nghiệm (Empirical Process Control): Các nhóm
Agile ra các quyết định dựa trên các dữ liệu thực tiễn thay vì tính tốn
lý thuyết hay các giả định.
Giao tiếp trực diện: Agile đánh giá cao hơn việc giao tiếp trực diện
thay vì gián tiếp thơng qua giấy tờ giữa các thành viên trong nhóm,
giữa các nhóm với nhau và giữa bộ phận phát triển với khách hàng,
điều này làm chậm q trình tiếp nhận thơng tin và xử lý.
Phát triển dựa trên giá trị (Value-based): Theo nguyên lý thứ 7
của Agile - “phần mềm chạy tốt chính là thước đo của tiến độ”, giá trị
sản phẩm sau mỗi phân đoạn, cũng như sản phẩm hoàn chỉnh cuối cùng
là yêu cầu cao nhất của khách hàng.

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 13

2.1.5.

Các phương pháp Agile

2.1.5.1. Phương pháp Scrum
Giới thiệu: Scrum là một cách tiếp cận nhanh để phát triển phần mềm
theo triết lý của Agile, sử dụng cơ chế lặp (Iterative) và tăng dần
(Incremental) để tối ưu hóa hiệu quả và kiểm sốt rủi ro.

Hình 2.2. Qui trình Scrum
(Abrahamsson, Salo, Ronkainen & Warsta, 2002)
Theo phương pháp Agile, dự án phần mềm được chia nhỏ thành nhiều
phân đoạn, mỗi phân đoạn là một quá trình phát triển phần mềm
thu nhỏ, với đầy đủ các công đoạn từ tiếp nhận yêu cầu, phân tích
thiết kế, lập trình, kiểm thử và chuyển giao. Các phân đoạn này
được gọi là Sprint.
Giá trị cốt lõi:
- Minh bạch (transparency): Các thơng tin trong q trình phát triển
sản phẩm phải minh bạch giữa các bên, các thành viên trong nhóm
và giữa các nhóm.
Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG


Trang 14


- Thanh tra (inspection): Tính cải tiến liên tục, thích nghi với
sự thay đổi địi hỏi Scrum phải thanh tra, kiểm sốt chặt chẽ tiến độ
cơng việc cam kết.
- Thích nghi (adaptation): Đáp ứng nhanh sự thay đổi từ khách hàng,
qua đó đem lại giá trị cao cho sản phẩm cũng như gia tăng sự hài lòng
từ khách hàng.
Các vai trò trong Scrum:
- Product Owner (chủ sản phẩm): Là người chịu trách nhiệm
về sự thành công của dự án, người định nghĩa các yêu cầu và đánh giá
cuối cùng đầu ra của các nhà phát triển phần mềm.
- Scrum Master: Là người có hiểu biết sâu sắc về Scrum và đảm bảo
nhóm có thể làm việc hiệu quả với Scrum.
- TeamMember (nhóm phát triển): Một nhóm liên chức năng (crossfunctional) tự quản lý để hiện thực hóa các yêu cầu.
Các cuộc họp trong Scrum: Nhằm tạo ra luồng thông tin gắn kết
trong quá trình phát triển sản phẩm, Scrum đưa ra bốn “cuộc họp”
(ceremony) trong nhóm như sau:
- Sprint Planning (Họp Kế hoạch Sprint): Lập kế hoạch cho từng Sprint
(từng phân đoạn phát triển ngắn hạn) thông qua tương tác với
khách hàng nhằm làm rõ những yêu cầu cần thiết ưu tiên kế tiếp.
- Daily Scrum (Họp Scrum hằng ngày): Họp chia sẻ tiến độ cơng việc
trong nhóm phát triển, nhằm phát hiện ra những rủi ro, khó khăn
và kịp thời khắc phục.
- Sprint Review (Họp Sơ kết Sprint): Họp đánh giá kết quả hoàn thành
cho một phân đoạn.
- Sprint Retrospective (Họp Cải tiến Sprint): Họp tìm ra những
trạng thái cần cải tiến cho phần sản phẩm của phân đoạn vừa kết thúc.

Ứng dụng Agile để nâng cao hiệu quả trong quản lý dự án phần mềm tại công ty VNG



×