Scrum được đánh giá cao ở tính linh động và hiệu quả của công việc, khả
năng thành công cao hơn so với các mô hình truyền thống (Waterfall, Spriral)
thay vì phải dành nhiều thời gian của giai đoạn đầu cho việc viết các đặc tả kỹ
thuật cho dự án, tuân thủ kế hoạch và giải pháp trên mô hình cũ thì giờ với mô
hình Scrum người ta tin rằng dựa trên y ếu tố chính yếu là con người, việc tiếp
cận thực tại cuộc sống và phát triển sản phẩm để học hỏi cải tiến hay thay đổi
sẽ mang lại các kết quả tốt hơn. Scrum đã được áp dụng phổ biến trong quy
trình phát triển phần mềm ở một số công ty lớn như Microsoft, Yahoo. Hiện
nay ở Việt Nam có các công ty phần mềm đang áp dụng mô hình Scrum như
FPT Software, Axon Active Vietnam, Pyramid-Consulting, Gameloft
17 trang |
Chia sẻ: lylyngoc | Lượt xem: 2658 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Đề tài Ứng dụng triz vào mô hình scrum trong phát triển dự án công nghệ thông tin, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
________________
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT
KHÔNG TẬP TRUNG KẾT HỢP MẠNG TH-VT
BÀI THU HOẠCH
CHUYÊN ĐỀ PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC
TRONG TIN HỌC
TÊN ĐỀ TÀI
ỨNG DỤNG TRIZ VÀO MÔ HÌNH SCRUM
TRONG PHÁT TRIỂN DỰ ÁN CÔNG NGHỆ
THÔNG TIN
GIẢNG VIÊN: GS.TSKH. HOÀNG KIẾM
HỌC VIÊN: NGUYỄN VĂN SANG
MÃ HV: CH1101128
KHÓA: 6
Tp. Hồ Chí Minh – 04/2012
LỜI NÓI ĐẦU
Trong lĩnh vực phát triển phần mềm, làm thế nào để một dự án có thể phát
triển tốt đảm bảo yêu cầu chất lượng, kịp thời thích ứng với những thay đổi
phức tạp và chuyển giao sản phẩm đúng hạn điều đó luôn là những thách thức
đối với những nhà quản lý.
Với những mô hình quản lý dự án truyền thống thường gồm nhiều giai
đoạn khá phức tạp với thời gian hoàn thành thường vài tháng đến vài năm. Liệu
có một phương pháp nào để một sản phẩm phần mềm luôn được cập nhật và
giao cho khách hàng với chất lượng tốt và thời gian nhanh nhất. Bài luận này
đề cập tới một mô hình phát triển sản phẩm năng động và hiệu quả, một
phương thức mới và đang đang được áp dụng trong các lĩnh vực phát triển sản
phẩm hiện nay đó là mô hình Scrum cùng với việc trình bày một số nguyên lý
sáng tạo (TRIZ) được áp dụng vào nó như thế nào.
Nhân đây em cũng xin gửi lời cảm ơn chân thành đến GS.TSKH. Hoàng
Kiếm người đã tận tình giảng dạy và truyền đạt những kiến thức từ cơ bản đến
chuyên sâu về các lĩnh vực công nghệ thông tin nói chung và bộ môn phương
pháp nghiên cứu khoa học trong tin học nói riêng để giúp cho bài luận này
hoàn thành tốt.
Mặc dù đã rất nỗ lực, cố gắng nhưng chắc chắn sẽ có những thiếu sót và bổ
sung thêm. Rất mong sự đón nhận và góp ý của thầy và bạn bè.
Tp.HCM, tháng 4
năm 2012
Lớp cao học khoá 6
Học viên thực hiện:
Nguyễn Văn
Sang
MỤC LỤC
CHƯƠNG 1. GIỚI THIỆU CHUNG .................................................................................................. 4
1.1 TRIZ là gì? ............................................................................................................................. 4
1.2 TRIZ trong mô hình quản lý phát triển sản phẩm Scrum ......................................................... 4
CHƯƠNG 2. TRÍCH DẪN MỘT SỐ NGUYÊN LÝ SÁNG TẠO TRIZ TRONG 40 NGUYÊN
LÝ ĐƯỢC ÁP DỤNG TRONG MÔ HÌNH PHÁT TRIỂN DỰ ÁN ............................................... 5
1. Nguyên tắc phân nhỏ .............................................................................................................. 6
2. Nguyên tắc kết hợp ................................................................................................................. 6
3. Nguyên tắc phẩm chất cục bộ ................................................................................................. 6
4. Nguyên tắc tách khỏi .............................................................................................................. 6
5. Nguyên tắc vạn năng .............................................................................................................. 6
6. Nguyên tắc thực hiện sơ bộ ..................................................................................................... 6
7. Nguyên lý dự phòng ............................................................................................................... 6
8. Nguyên lý năng động.............................................................................................................. 6
9. Nguyên tắc giải “thiếu” hoặc “thừa” ....................................................................................... 7
10. Nguyên lý tác đông liên tục có ích ...................................................................................... 7
11. Nguyên lý vượt nhanh ........................................................................................................ 7
12. Nguyên lý quan hệ phản hồi ................................................................................................ 7
13. Nguyên lý loại bỏ và tái sinh từng phần .............................................................................. 7
4.1 Scrum là gì ......................................................................................................................... 8
+ Minh bạch (transparency) ........................................................................................................ 8
+ Thanh tra (inspection) ............................................................................................................. 9
+ Thích nghi (adaptation) ........................................................................................................... 9
4.2 Lợi điểm khi dùng Scrum ................................................................................................. 10
4.3 Cách triển khai Scrum....................................................................................................... 10
4.4 Các nguyên tắc sáng tạo áp dụng trong mô hình Scrum ......................................................... 12
1. Nguyên tắc phân nhỏ ............................................................................................................ 12
2. Nguyên tắc kết hợp ............................................................................................................... 12
3. Nguyên tắc phẩm chất cục bộ ............................................................................................... 12
4. Nguyên tắc tách khỏi ............................................................................................................ 12
5. Nguyên tắc vạn năng ............................................................................................................ 13
6. Nguyên tắc thực hiện sơ bộ ................................................................................................... 13
7 Nguyên lý dự phòng ............................................................................................................. 13
8 Nguyên tắc năng động .......................................................................................................... 13
9 Nguyên tắc giải “thiếu” hoặc “thừa” ..................................................................................... 14
10 Nguyên tắc giải tác động liên tục có ích ............................................................................ 14
11 Nguyên tắc giải tác động liên tục có ích ............................................................................ 14
12 Nguyên tắc quan hệ phản hồi ............................................................................................ 14
13 Nguyên lý loại bỏ và tái sinh từng phần ............................................................................ 14
4.5 Một số mặt hạn chế trong mô hình Scrum ......................................................................... 15
TÀI LIỆU THAM KHẢO ................................................................................................................ 16
CHƯƠNG 1. GIỚI THIỆU CHUNG
1.1 TRIZ là gì?
TRIZ là phương pháp luận tìm kiếm những giải pháp kỹ thuật mới, cho
những kết quả khả quan, ổn định khi giải những bài toán mang tính sáng tạo
khác nhau. Tác giả của TRIZ – Giáo sư Altshuller bắt đầu nghiên cứu, xây
dựng lý thuyết từ 1946. Tiền đề cơ bản của TRIZ là: các hệ kỹ thuật phát triển
tuân theo các quy luật khách quan, nhận thức được. Với 40 các nguyên tắc (thủ
thuật) sáng tạo cơ bản của giáo sư Alshuller giúp cho chúng ta có được cách tư
duy và giải quyết những vấn đề nhanh hơn, thông minh hơn và tiết kiệm thời
gian hơn so với các phương pháp truyền thống.
1.2 TRIZ trong mô hình quản lý phát triển sản phẩm Scrum
TRIZ ứng dụng rất nhiều vào thực tế cuộc sống. Nhiều phát minh sáng chế
đã ra đời dựa trê ứng dụng TRIZ. Sáng tạo trong quản lý phần mềm tin học
cũng vậy, cũng phải có những phương pháp và áp dụng một các sáng tạo, hợp
lý để tạo ra những sản phẩm có tính năng động và hiệu quả cao. Chẳng hạn
nguyên tắc “nguyên tắc năng động” được áp dụng vào mô hình Scrum (Scrum
sẽ được đề cập chi tiết ở phần tiếp theo của tài liệu này) để phát triển kịp thời
theo nhu cầu năng động của khách hàng, khách hàng họ có ý tưởng phát triển
một sản phẩm và cần phải tiến hành nhanh cho kịp với ý tưởng đó (trang
Facebook là một điểm hình khi có ý tưởng là có triển khai xây dựng thành sản
phẩm dần dần cho tới khi chúng ta có được một mạng xã hội tuyệt vời ngày
nay), khi đó họ sẽ yêu cầu đội phát triển phần mềm làm. Không giống như mô
hình phát triển truyền thống (mô hình phát triển thác nước – Waterfall chẳng
hạn), nhà phát triển không cần phải bắt đầu với giai đoạn lập kế hoạch, xem xét
đầu ra một cách cẩn thận, thiết kế tài liệu rất chi tiết, ước lượng thời gian sau
đó mới làm. Với mô hình Scrum, tình hình sẽ trở nên linh động hơn, đội phát
triển nhận yêu cầu và cùng với khách hàng triển khai nhanh chóng, các nhiệm
vụ sẽ được phân bổ ngay cho các thành viên nhóm, mỗi thành viên tự phân tích
yêu cầu và thực hiện cho tới khi hoàn thành phần của mình. Mô hình Scrum dự
án không còn phải cố định từ đầu về thời gian hoành thành nữa, sản phẩm sẽ
được xây dựng dần dần theo những giai đoạn được xác định. Với sự đề cao yếu
tố tham gia của con người, sản phẩm có thể thay đổi liên tục theo yêu cầu thực
tế. Như chúng ta biết, các ý tưởng tốt xuất hiện trong suốt quá trình phát triển –
lúc bắt đầu, khi giữa chừng và thậm chí đôi khi xuất hiện trước ngày giới thiệu
sản phẩm, và một quy trình không cho phép những thay đổi sẽ kiềm chế sự đổi
mới. Với mô hình thác nước, ý kiến hay nhưng đưa ra muộn không phải là một
món quà mà là một nguy cơ…
CHƯƠNG 2. TRÍCH DẪN MỘT SỐ NGUYÊN LÝ SÁNG TẠO
TRIZ TRONG 40 NGUYÊN LÝ ĐƯỢC ÁP DỤNG TRONG MÔ HÌNH
PHÁT TRIỂN DỰ ÁN
Sau đây xin được trích dẫn một số nguyên lý sáng tạo, những nguyên tắc
này sẽ được phân tích trong chương sau khi chúng được sử dụng trong mô hình
phát triển dự án Scrum
1. Nguyên tắc phân nhỏ
- Chia đối tượng thành các phần độc lập.
- Làm đối tượng trở nên tháo lắp được.
- Tăng mức độ phân nhỏ của đối tượng
2. Nguyên tắc kết hợp
a) Kết hợp các đối tượng đồng nhất hoặc các đối tượng dùng cho các hoạt
động kế cận.
b) Kết hợp về mặt thời gian các hoạt động đồng nhất hoặc kế cận.
3. Nguyên tắc phẩm chất cục bộ
a) Chuyển đối tượng (hay môi trường bên ngoài, tác động bên ngoài) có
cấu trúc đồng nhất thành không đồng nhất.
b) Các phần khác nhau của đối tượng phải có các chức năng khác nhau
c) Mỗi phần của đối tượng phải ở trong những điều kiện thích hợp nhất của
công việc
4. Nguyên tắc tách khỏi
Tách phần gây "phiền phức" (tính chất "phiền phức") hay ngược lại, tách
phần duy nhất "cần thiết" (tính chất "cần thiết") ra khỏi đối tượng.
5. Nguyên tắc vạn năng
Đối tượng thực hiện một số chức năng khác nhau, do đó không cần sự
tham gia của đối tượng khác.
6. Nguyên tắc thực hiện sơ bộ
Gây ứng suất trước với đối tượng để chống lại ứng suất không cho phép
hoặc không mong muốn khi đối tượng làm việc (hoặc gây ứng suất trước
để khi làm việc sẽ dùng ứng suất ngược lại ).
7. Nguyên lý dự phòng
Bù đắp độ tin cậy không lớn của đối tượng bằng cách chuẩn bị trước các
phương tiện báo động, ứng cứu, an toàn.
8. Nguyên lý năng động
a) Cần thay đổi các đặt trưng của đối tượng hay môi trường bên ngoài sao
cho chúng tối ưu trong từng giai đoạn làm việc.
b) Phân chia đối tượng thành từng phần, có khả năng dịch chuyển với
nhau.
9. Nguyên tắc giải “thiếu” hoặc “thừa”
Nếu như khó nhận được 100% hiệu quả cần thiết, nên nhận ít hơn hoặc
nhiều hơn “một chút”. Lúc đó bài toán có thể trở nên đơn giản hơn và dễ
giải hơn.
10. Nguyên lý tác đông liên tục có ích
a) Thực hiện công việc một cách liên tục (tất cả các phần của đối tượng cần
luôn luôn làm việc ở chế độ đủ tải).
b) Khắc phục vận hành không tải và trung gian.
c) Chuyển chuyển động tịnh tiến qua lại thành chuyển động quay.
11. Nguyên lý vượt nhanh
a. Vượt qua các giai đoạn có hại hoặc nguy hiểm với vận tốc lớn.
b. Vượt nhanh để có được hiệu ứng cần thiết.
12. Nguyên lý quan hệ phản hồi
a) Thiết lập quan hệ phản hồi
b) Nếu đã có quan hệ phản hồi, hãy thay đổi nó.
13. Nguyên lý loại bỏ và tái sinh từng phần
a) Phần đối tượng đã hoàn thành nhiệm vụ hoặc trở nên không cần thiết
phải tự phân hủy (hoà tan, bay hơi..) hoặc phải biến dạng.
b) Các phần mất mát của đối tượng phải được phục hồi trực tiếp trong quá
trình làm việc.
CHƯƠNG 3. SCRUM TRONG PHÁT TRIỂN DỰ ÁN CÔNG NGHỆ THÔNG
TIN
4.1 Scrum là gì
Scrum là một khung làm việc (framework) để phát triển các sản phẩm phức
tạp. Được phát triển bởi Ken Schwaber và Jeff Sutherland, Scrum được dùng
để quản lý các dự án phát triển phần mềm từ đầu những năm 1990, nhưng nó
có thể được dùng trong các công việc khác với sự phức tạp, và đòi hỏi tính sáng
tạo rất đa dạng. Mô hình này con người có thể xác định được nhanh chóng các
vấn đề và thích nghi với chúng, trong khi đó vẫn giữ được tính năng suất và sự
sáng tạo để chuyển giao các sản phẩm có giá trị cao; hơn thế, nó là một khung
làm việc cho phép sử dụng nhiều quy trình và kỹ thuật khác nhau. Scrum làm
rõ độ hiệu quả tương đối của công tác quản lý và phát triển sản phẩm, từ đó cho
phép bạn cải tiến nó.
Scrum hoạt động dựa trên ba giá trị cốt lõi, còn gọi là Ba chân của Scrum
bao gồm Minh bạch, Thanh tra và Thích nghi.
Minh bạch (transparency)
Trong Scrum, tính minh bạch được đề cao như là giá trị cốt lõi cơ bản nhất.
Muốn thành công với Scrum, thông tin phải minh bạch và thông suốt. Từ đó
mọi người ở các vai trò các nhau có đủ thông tin cần thiết để tiến hành các
quyết định có giá trị để nâng cao hiệu quả công việc. Các công cụ và cuộc họp
trong Scrum luôn đảm bảo thông tin được minh bạch cho các bên.
Thanh tra (inspection)
Công tác thanh tra liên tục các hoạt động trong Scrum đảm bảo cho việc
phát hiện các vấn đề cũng như giải pháp để thông tin đa dạng và hữu ích đến
được với các bên tham gia dự án. Truy xét kĩ càng và liên tục là cơ chế khởi
đầu cho việc thích nghi và các cải tiến liên tục trong Scrum.
Thích nghi (adaptation)
Scrum rất linh hoạt như các phương pháp phát triển linh hoạt (agile
software development) khác. Nhờ đó nó mang lại tính thích nghi rất cao. Scrum
có thể phản hồi lại các thay đổi một cách tích cực, nhờ đó mang lại thành công
cho dự án.
Scrum chia dự án thành các vòng lặp phát triển gọi là các sprint. Mỗi sprint
thường mất 2- 4 tuần (30 ngày) để hoàn thành. Một sprint hoàn thành một số
chức năng, mục đích nào đó trong toàn bộ hệ thống. Thành phần chính quan
trọng của Scrum là các role (vai trò) và các cuộc trao đổi đánh giá. Có các role
chính là:
+ Product Owner (Chủ sản phẩm) : chịu trách nhiệm tối đa hóa giá trị của
sản phẩm và công việc của Nhóm Phát triển. Phân tích mục tiêu, giải phóng các
kế hoạch.
+ Development Team (Đội làm việc ở Scrum): thường từ 5-9 người, tùy
theo quy mô dự án nó có thể có rất nhiều đội, nhiều người tham gia. Sẽ không
có người thiết kế (designer), kiểm thử viên quản lý chất lượng (QC) thường
thấy ở các dự án phần mềm truyền thống. Các đội làm việc sẽ tiến hành cài đặt
các chức năng được mô tả trong bản yêu cầu. Họ tự quản lý, tổ chức và điều
chỉnh đội làm việc của mình sao cho hiệu quả lớn nhất. Tất cả các thành viên
có ảnh hưởng như nhau đến sự thành công hoặc thất bại của toàn bộ hệ thống
hoặc các hệ thống nhỏ hơn trong đó.
+ Scrum Master (Đội trưởng): chịu trách nhiệm đảm bảo mọi người hiểu
và dùng được Scrum. Scrum Master thực hiện việc này bằng cách đảm bảo
Nhóm Scrum tuân thủ lý thuyết, thực tiễn và các quy tắc của Scrum. Scrum
Master là một lãnh đạo, nhưng cũng là đầy tớ của Nhóm Scrum.
Có 2 pha là lập kế hoạch và kết thúc sẽ xác định các tiến trình cần thiết
gồm các dữ liệu đầu vào đầu ra thật đầy đủ. Có một số vòng lặp phát triển trong
pha kế hoạch. Kế hoạch lập ra ban đầu chỉ là tương đối và sẽ có sự điều chỉnh.
Khung làm việc Scrum
4.2 Lợi điểm khi dùng Scrum
Lợi điểm của mô hình Scrum đó là tính linh hoạt và tính thích nghi của nó
đối với những dự án có nhiều sự thay đổi và yêu cầu tốc độ cao, với loai mô
hình này dự án không phải cố định từ đầu về thời gian hoành thành hay những
yêu cầu mà nó sẽ được xác định khi phát triển thực tế. Scrum tăng cường khả
năng giao tiếp và dành nhiều thời gian cho việc phát triển phát triển, giảm thời
gian dành cho quản lý. Khách hàng nhanh chóng thấy được sản phẩm qua đó
đưa ra phản hồi sớm để có kết quả nhanh và hài lòng sản phẩm.
4.3 Cách triển khai Scrum
Có nhiều cách để triển khai, có thể sử dụng 10 bước sau:
+ Bước 1: Thu nhập các đặc điểm của sản phẩm (backlog) trong đơn đặt
hàng. Đây là bước quan trọng nhất. Lập nên các đội làm việc, có thể tách thành
các đội nếu cần thiết và thảo luận với nhau về nghiệp vụ cần làm. Sau đó bổ
nhiệm một người vào vị trí Product owner, người này có khả năng trao đổi, bao
quát công việc tốt, biết sắp xếp ưu tiên đúng thứ tự các nhiệm vụ. Sau đó tự tổ
chức lại đội làm việc, đề xuất ra vị trí Scrum master và thảo luận chi tiết các
yêu cầu, sắp xếp chúng theo thứ tự ưu tiên.
+ Bước 2: Ước lượng đầy các yêu cầu về sản phẩm đầu ra. Có ước lượng ở
mức độ cao, chia sản phẩm thành số lượng các danh mục backlog. Tuy nhiên số
lượng sẽ không chính xác được, về sau chúng sẽ được bổ sung. Tiếp đến là ước
lượng chi tiết từng backlog, ước lượng số lượng các đội làm việc.
+ Bước 3: Lên kế hoạch phát triển các vòng lặp sprint. Sử dụng các cuộc
trao đổi kế hoạch phát triển sprint với tất cả các thành viên. Xác định khoảng
thời gian sẽ phát triển một sprint (thường là 30 ngày), mục tiêu của sprint là gì,
sẽ đạt được gì, phân tích các yêu cầu của sprint một cách rõ ràng.
+ Bước 4: Lên kế hoạch phát triển các nhiệm vụ của sprint. Tất cả mọi
người sẽ xác định ngân sách của sprint đó, chia các đặc điểm thành các tác vụ
nhỏ hơn, ước lượng số thời gian sẽ làm từng task (giờ), hoàn tất các yêu cầu và
nhận dạng task quan trọng.
+ Bước 5: Tạo ra không gian làm việc cộng tác cho tất cả mọi người.
Thường sử dụng bảng trắng để vẽ nên những vấn đề cần thiết cho tất cả mọi
người cùng đánh giá.
+ Bước 6: Các thành viên bắt tay xây dựng từng sprint. Lập trình, kiểm thử
và điều chỉnh thời gian để có hiệu quả tốt nhất. Đôi khi có thể hủy bỏ một
sprint và quay lại với việc lập kế hoạch khác.
+ Bước 7: Mọi người báo cáo kết quả để tiếp tục làm việc. Các báo cáo tập
trung vào các vấn đề: đạt được những gì so với lần trao đổi trước; sẽ hoàn
thành những gì trong lần trao đổi tiếp theo; có những trở ngại gì trong quá trình
làm việc v.v.
+ Bước 8: Tổng hợp kết quả trên biểu đồ. Đây là bức tranh tổng quát về
những việc đã làm được, những việc chưa làm được, thời gian ước lượng còn
lại và có thể điều chỉnh lại.
+ Bước 9: Xem xét để hoàn tất. Khi các thành viên nói công việc đã hoàn
thành có nghĩa là mọi thay đổi sẽ bị từ chối, đẩy lại cho vòng lặp sau.
+ Bước 10: Đánh giá, phản ánh và lặp lại. Có các cuộc họp đánh giá lại
sprint của các thành viên. Sẽ trình bày những gì đạt được, phản hồi của khách
hàng, xét thời hạn của sprint. Nhìn lại biểu đồ ở bước 8 để xác định lại toàn bộ
hệ thống và tiếp nhận những đóng góp, bổ sung để đưa tiếp vào các vòng lặp
sprint tiếp theo.
4.4 Các nguyên tắc sáng tạo áp dụng trong mô hình Scrum
Mô hình Scrum đã được trình bày chi tiết ở trên, tới đây ta tìm hiểu xem
TRIZ đã được áp dụng trong mô hình này như thế nào.
1. Nguyên tắc phân nhỏ
Dự án sẽ được chia nhỏ ra từng sprint phát triển ứng với những khoảng
thời gian xác định,nhóm Scrum đã xác định ở mỗi sprint sẽ đạt được những
tính năng nào của sản phẩm và chuyển cho khách hàng những phần chất lượng
đó.
2. Nguyên tắc kết hợp
Trong mỗi cuộc họp ngắn đầu giờ, các thành viên sẽ thảo luận về những
công việc của mình, những vấn đề đang gặp khó khăn hay những thắc mắc còn
chưa rõ, tất cả đều được đưa ra thảo luận và mọi người trong nhóm cùng tập
trung giải quyết, việc các thành viên thoải mái đưa ra ý kiến, giải pháp rồi chọn
một giải pháp tốt nhất. Đây chính là sự kết hợp của tư duy tập thể thể để làm
cho vấn đề được thông suốt hơn, nhanh hơn và giải quyết tốt hơn. Sau đó là sự
kết hợp làm việc với khách hàng, thường xuyên lắng nghe những ý kiến phản
hồi của khách hàng để để thực hiện nhanh chóng tiến độ và hiệu quả. Ở cuối
mỗi sprint sản phẩm sẽ được ráp vào sprint trước để có được những giai đoạn
hoàn thành của sản phẩm
3. Nguyên tắc phẩm chất cục bộ
Trong mô hình Scrum thúc đẩy những năng lực sáng tạo tiềm ẩn của mỗi
người, những đóng góp sáng kiến của từng cá nhân khi đưa ra thảo luận trong
tập thể đã góp phần tạo nên một sản phẩm nhanh chóng và chất lượng.
4. Nguyên tắc tách khỏi
Có thể nói mô hình Scrum đã tách ra khỏi những mối ràng buộc và cứng
nhắc , tuần tự trong các mô hình quản lý dự án truyền thống để tạo nên một mô
hình phát triển mềm dẻo linh động hơn; trong lúc triển khai thực tế có thể để
dàng xoay chuyển theo chiều hướng có lợi tại mỗi thời điểm cụ thể.
5. Nguyên tắc vạn năng
Trong mô hình Scrum người phát triển (developer) cũng là người đóng vai
trò như một người kiểm soát chất lượng dự án (QC – Quality control), người
kiểm thử (tester) phần mềm, người thiết kế giao diện. Họ nhận công việc và tự
hoàn thành công việc của mình.
6. Nguyên tắc thực hiện sơ bộ
Trong dự án có những công việc được đưa ra và chắc chắn sẽ được phát
triển, việc chuẩn bị nhanh các công việc, thực hiện sơ bộ xử lý với mã nguồn
(thiết kế giao diện, thực hiện xử lý thương mại, hỏi đáp trước cho các tình
huống xử lý xảy ra…) sẽ làm cho công việc được hoàn thành sơm hơn và tốt
hơn.
7 Nguyên lý dự phòng
Mô hình Scrum làm cho mọi thành viên trong dự án đều biết được công
việc của nhau, mỗi khi có thành viên nghỉ cũng sẽ không ảnh hưởng tới tiến độ
của dự án nhiều, mọi việc vẫn có thể phát triển tốt. Ở mô hình cũ mỗ khi thành
viên nghỉ công việc phát triển đều phải có thời gian chuyển giao và tuỳ thuộc
vào sự đóng góp vào dự án mà tốn khá nhiều thời gian để bàn giao công việc đã
làm; điều này cũng gây nên những rủi ro cho dự án trong mô hình cũ.
8 Nguyên tắc năng động
Mô hình Scrum phát triển kịp thời theo nhu cầu năng động của khách hàng,
khách hàng họ có ý tưởng phát triển một sản phẩm và cần phải tiến hành nhanh
cho kịp với tiến độ với ý tưởng đó (trang Facebook cũng đột phá từ các ý tưởng
phát triển lên từ từ thành một sản phẩm như ngày nay, hay ý tưởng quảng cáo
cho một mặt hàng nào đó của khách hàng...), khi đó họ sẽ yêu cầu đội phát triển
phần mềm làm. Không giống như mô hình phát triển truyền thống, đội phát
triển không cần phải tốn lập bản thiết kế chi tiết, phân tích các chức năng sau
đó mới làm. Họ nhận yêu cầu và triển khai nhanh, các nhiệm vụ sẽ được phân
bổ ngay cho các thành viên nhóm, mỗi thành viên tự phân tích yêu cầu và thực
hiện cho tới khi hoàn thành.
9 Nguyên tắc giải “thiếu” hoặc “thừa”
Trong lĩnh vực phát triển dự án, đôi khi có dự án không phải lúc nào cũng
có đầu đủ những thông tin để phát triển, mô hình scrum gom nhặt các ý tưởng
đang có và phát triển chúng rồi từ từ bổ sung vào sau, nâng cấp dần dần làm
cho sản phẩm ngày một hoàn thiện hơn. Chứ nếu cứ phải để cho đầy đủ thông
dữ liệu mới phát triển dự án thì có lẽ sẽ rất khó hoặc rất lâu mới có được một
sản phẩm.
10 Nguyên tắc giải tác động liên tục có ích
Liên tục cập nhật tính năng động của sản phẩm, của yêu cầu khách hàng
sẽ giúp cho sản phẩm hoàn thiện tốt hơn, khách hàng cảm thấy hài lòng với
sản phẩm mà mình mong muốn, người phát triển cảm thấy được tiến bộ trong
cách làm việc sáng tạo của mình.
11 Nguyên tắc giải tác động liên tục có ích
Sản phẩm được chuyển giao nhanh chóng cho khách hàng cũng nhờ vào
nguyên tắc này. Với cách phát triển phần mềm trên mô hình truyền thống, khi
cần hỏi một vấn đề nào đó với khách hàng, phía nhà phát triển phần mềm họ
thường phải viết nội dung mô tả bằng email và sau đó phải tốn một khoảng
thời gian để nhận phản hồi bằng email của khách hàng để tiếp tục làm việc ở
phần đó; khi mà trong dự án có sự góp mặt của bộ phận kiểm định chất lượng
dự án (QC) cũng một phần góp phần vào chận tiến độ phát triển của sản phẩn,
cần phải tốn thêm một kênh giao tiếp qua lại giữa nhà phát triển với bộ phận
QC. Phương pháp của Scrum luôn đảm bảo tiến độ dự án nhanh nhất, mọi
công việc phát triển sản phẩm do đội phát triển đảm nhận và hoàn thành, trạng
thái dự án được cập nhật thường xuyên trong nhóm và trao đổi trực tiếp với
khách hàng.
12 Nguyên tắc quan hệ phản hồi
Việc nhóm phát triển thường xuyên trao đổi với khách hàng, lắng nghe yêu
cầu, đóng góp của khách hàng, những sai sót sớm được phát hiện, nếu đi sai
hướng có thể điều chỉnh lại nhanh chóng và làm cho sản phẩm trở nên chất
lượng hơn, hoàn thành sớm hơn.
13 Nguyên lý loại bỏ và tái sinh từng phần
Khi phát hiện ra vấn đề đang phát triển trong Sprint thì có thể huỷ bỏ sprint
hiện tại quay lại phân tích lại vấn đề hoặc có thể đẩy về Sprint sau để giải
quyết, phát triển tiếp khi có đầy đủ thông tin và dữ liệu…
Việc thay đổi nhanh kế hoạch phát triển dự án làm cho nó luôn được xây
dựng linh hoạt với tình hình thực tế hơn, năng động hơn trong việc phát triển
sản phẩm.
4.5 Một số mặt hạn chế trong mô hình Scrum
Với cách giải quyết cho công việc nhanh chóng, liên tục chuyển giao sản
phẩm phần mềm cho khách hàng Project Owner (PO) với vai trò là người định
hướng cho sản phẩm, có thể dễ gặp phải khó khăn trong việc phân tích được
tổng thể của dự án, bức tranh toàn cục dự án như thế nào để định hướng kiến
trúc cho dự án phù hợp và giúp cho các thành viên nắm được kiến trúc của nó.
Cũng bởi cách phát triển dự án không có bản thiết kế chi tiết nên mỗi thành
viên của dự án cũng sẽ là một người thiết kế hệ thống, do đó nếu làm không tốt
sẽ có thể làm cho dự án rất khó sửa chữa. Việc thường xuyên điều chỉnh lại mã
nguồn (Refactoring) mỗi khi chỉnh sửa theo yêu cầu khách hàng hay phải cập
nhật, thiết kế lại kiến trúc của dự án sao cho phù hợp cũng là một yếu điểm
trong thiết kế phần mềm, nếu người thiết kế mà làm không khéo sẽ làm cho sản
phẩm trở nên rối rắm và khó bảo trì, điều đó sẽ tốn rất nhiều thời gian, công
sức, tiền bạc cho dự án.
Hạn chế của Scrum còn nằm ở ngay trong mặt tích cực của Scrum, khi
Scrum quy định rõ nhóm phát triển phải gặp nhau hằng ngày vào mỗi buổi đầu
ngày trong khoảng thời gian ngắn ngắn ngủi mười lăm phút và từng thành viên
phải trả lời các câu hỏi :”Hôm qua tôi đã làm được những gì rồi?”, “Hôm nay
tôi sẽ làm những gì?”, “Có điều gì khó khăn cho công việc của tôi không?”,
nếu các thành viên trả lời các câu hỏi một cách nghiêm túc, nhóm cộng tác sẽ
nắm rất rõ tình hình công việc đã tiến triển đến đâu, các vấn đề phải được phát
hiện sớm để được giải quyết. Tuy nhiên, nếu trả lời một cách qua quýt, ba câu
hỏi đó sẽ trở nên rất nhàn chán và sáo rỗng và cuộc họp sẽ thể trở nên một cuộc
họp hình thức và dần dần mất hết tác dụng, làm ảnh hưởng tới tiến độ công
việc.
KẾT LUẬN
Scrum được đánh giá cao ở tính linh động và hiệu quả của công việc, khả
năng thành công cao hơn so với các mô hình truyền thống (Waterfall, Spriral)
thay vì phải dành nhiều thời gian của giai đoạn đầu cho việc viết các đặc tả kỹ
thuật cho dự án, tuân thủ kế hoạch và giải pháp trên mô hình cũ thì giờ với mô
hình Scrum người ta tin rằng dựa trên yếu tố chính yếu là con người, việc tiếp
cận thực tại cuộc sống và phát triển sản phẩm để học hỏi cải tiến hay thay đổi
sẽ mang lại các kết quả tốt hơn. Scrum đã được áp dụng phổ biến trong quy
trình phát triển phần mềm ở một số công ty lớn như Microsoft, Yahoo. Hiện
nay ở Việt Nam có các công ty phần mềm đang áp dụng mô hình Scrum như
FPT Software, Axon Active Vietnam, Pyramid-Consulting, Gameloft…
TÀI LIỆU THAM KHẢO
- [1]Chuyên đề phương pháp nghiên cứu khoa học trong tin học của GSTS.
Hoàng Kiếm năm 2005.
- [2]Giải một bài toán trên máy tính như thế nào của GSTS. Hoàng Kiếm.
Tập 1,2,3 năm 2005.
- [3]Sổ tay sáng tạo : Các thủ thuật (Nguyên tắc) cơ bản của GSTS. Phan
Dũng năm 1994
- [4]Làm thế nào để sáng tạo ? Của GSTS. Phan Dũng năm 1992.
- [5]
- [6]
- [7]
- [8]Andrew Pham, Phuong-Van Pham, Scrum in Action, 2011.
- [9]Ken Schwaber, Agile Project Management with Scrum(Microsoft
Propessional), 2004.
Các file đính kèm theo tài liệu này:
- trang__5058.pdf