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

Ứ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 32 1

Đ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

Định dạng
Số trang 75
Dung lượng 670,01 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

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

Trang 1

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

Trang 2

-

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

Trang 3

CÔNG TRÌNH ĐƯỢC HOÀ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

Trang 4

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

Phạm Quốc Trung

Trang 5

LỜI CẢM ƠN

Trong quá 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 quý 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

Ngoà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ả hoà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 quý 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à luôn vui vẻ, hạnh phúc

Trân trọng kính chào, Nguyễn Anh Vũ

Trang 6

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 Toà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ũ

Trang 7

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ế

Trang 8

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

Trang 9

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 CƠ SỞ LÝ THUYẾT 8

2.1 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

Trang 10

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

Trang 11

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

Trang 12

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

Trang 13

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

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)

Trang 14

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)

Trang 15

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

 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

Trang 16

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

Trang 17

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

Tổng hợp lý thuyết các quitrì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)

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

Trang 18

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 (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

Trang 19

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

Trang 20

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 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:

Trang 21

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 luôn được chuẩn bị để thực hiện các thay đổi yêu cầu

Trang 22

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 –

Trang 23

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ỏ 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

 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 toá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 quá 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

Trang 24

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 soá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 quá 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

Trang 25

- 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 soá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

(cross-functional) 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

Trang 26

 Các tài liệu trong Scrum: Scrum sử dụng các công cụ rất đơn giản

nhưng hiệu quả để trợ giúp công việc Chúng bao gồm bản yêu cầu của chủ sản phẩm (Product backlog), bản kế hoạch của từng Sprint

(Sprint backlog) và biểu đồ Burndown chart

- Product backlog: Các yêu cầu chức năng của hệ thống, của module

cần thực hiện trong sprint ScrumMaster sẽ sắp xếp thứ tự ưu tiên các nhiệm vụ cần làm (thông qua tương tác trực tiếp với khách hàng

để xác định giá trị cần đạt được của module)

- Sprint backlog: Chi tiết danh sách công việc cần phải làm trong sprint

- Burndown chart: Biểu đồ thể hiện khối lượng công việc cũng như thời gian còn lại của dự án

2.1.5.2 Extreme Programming (XP)

XP là một cách tiếp cận nhanh để phát triển phần mềm tuân thủ triết lý Agile XP hoạt động theo mô hình lặp và tăng trưởng Sản phẩm được chia ra thành các phần tăng trưởng nhỏ, mỗi phần được phát triển trong vòng một hoặc vài tuần gọi là một phân đoạn lặp (Iteration) Mỗi phân đoạn là một quá trình hoàn chỉnh từ khâu lên kế hoạch đến khâu kiểm thử sản phẩm

Hình 2.3 Vòng đời của qui trình XP

(Abrahamsson, Salo, Ronkainen & Warsta, 2002)

Trang 27

Chính vì việc cập nhật từng phần nhỏ hoàn chỉnh của sản phẩm giúp cho khách hàng có những thay đổi, hiệu chỉnh phù hợp cho sản phẩm cuối và cũng giúp cho nhóm phát triển đáp ứng tốt những thay đổi này trong các phân đoạn tiếp theo

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

Trang 28

Trong mô hình Waterfall, kiểm thử được thực hiện trong một giai đoạn riêng biệt Còn với mô hình chữ V, toàn bộ qui trình được chia thành hai nhóm giai đoạn tương ứng nhau: phát triển và kiểm thử Mỗi giai đoạn phát triển

sẽ kết hợp với một giai đoạn kiểm thử tương ứng như được minh họa trong hình trên

 Mô hình mẫu (Prototype)

Hình 2.6 Mô hình prototype

(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

 Mô hình tiến hóa

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

(Cao, 2005)

Trang 29

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 Unified Process (RUP)

Hình 2.8 Qui trình RUP

(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

2.3 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ả nhằm cải thiện hiệu suất của họ CMMI dựa trên sự cải tiến qui trình, nhận diện

Trang 30

đ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

về phạm vi và lĩnh vực ứng dụng phù hợp

Trang 31

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

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

Trang 32

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

Mô hình

RUP

Giảm rủi ro Những yêu

cầu quan trọng thường

được phát triển và chuyển

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

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

Trang 33

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

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

2.5 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

Trang 34

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

Trang 35

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

Trang 36

CHƯƠNG 3 HIỆN TRẠNG CÔNG TY CỔ PHẦN VNG 3.1 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

Trang 37

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

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

Ngày đăng: 03/09/2021, 16:25

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w