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

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.

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