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.
17 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 2424 | Lượt tải: 3
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ậ