ứng dụng triz vào mô hình scrum trong phát triển dự án công nghệ thông ti

  • Số trang: 17 |
  • Loại file: PDF |
  • Lượt xem: 14 |
  • Lượt tải: 0
nganguyen

Đã đăng 34173 tài liệu

Mô tả:

ĐẠ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] http://hanoiscrum.net/hnscrum/ - [6]http://www.scrummethodology.org/ - [7] http://scrummethodology.com/ - [8]Andrew Pham, Phuong-Van Pham, Scrum in Action, 2011. - [9]Ken Schwaber, Agile Project Management with Scrum(Microsoft Propessional), 2004.
- Xem thêm -