30/09/2018, 17:04

Agile software development

Mọi người cho em hỏi về ưu nhược điểm của Agile. Ai đi trước thì cho em xin kinh nghiệm về vấn đề này với.

Tâm Ninja viết 19:10 ngày 30/09/2018

Không có mô hình Agile nhé. Agile là triết lí phát triển mà trong đó có nhiều quy trình áp dụng theo như XP, Lean, SCrum, Pair programming, TDD, BDD… XP, TDD, Pair Programing và Scrum mình có thể giúp được còn lại thì chỉ biết sơ không dám chém gió nhiều.
=> Vậy cụ thể là bạn muốn biết về cái gì?

Thành Nguyễn viết 19:20 ngày 30/09/2018

em đang là sinh viên, định hướng theo con đường lập trình phần mềm, đọc mấy bài báo trên mạng thấy có nhắc đến agile nên em mang lên đây hỏi.
em chỉ muốn biết nó khác biệt như thế nào so với mấy phương pháp phát triển phần mềm truyền thống khác
cám ơn anh @TamNinja

Tâm Ninja viết 19:11 ngày 30/09/2018

OK em!
Về mặt tổng quan thì chúng ta sẽ theo mô hình phát triển truyền thống. Ví dụ như WaterFall hoặc các mô hình kiểu cũ thì triết lí sẽ là định nghĩa mọi thứ từ đầu rồi cứ thế cứ thế phát triển cho đến hết.
Ví dụ về mô hình chữ V trong kiểm thử phần mêm
Theo như ví dụ trên ta có thể thấy sau khi thực hiện xong một bước thì phải rất lâu sau mới có thể test được cũng như nếu như có sự thay đổi ở các bước sau thì lại phải quay lại từ đầu để thực hiện. Rất GÒ BÓ. Vậy nên người ta sinh ra triết lí về phát triển LINH HOẠT hơn là Agile. Theo đó thì các chu trình theo triết lí này sẽ có tuân theo 12 nguyên tắc sau:

The Agile Manifesto is based on 12 principles:

Customer satisfaction by rapid delivery of useful software
Welcome changing requirements, even late in development
Working software is delivered frequently (weeks rather than months)
Close, daily cooperation between business people and developers
Projects are built around motivated individuals, who should be trusted
Face-to-face conversation is the best form of communication (co-location)
Working software is the principal measure of progress
Sustainable development, able to maintain a constant pace
Continuous attention to technical excellence and good design
Simplicity—the art of maximizing the amount of work not done—is essential
Self-organizing teams
Regular adaptation to changing circumstance
Nguồn Wiki - Cài này dài vãi không nhớ được.

Còn lại thì mỗi một quy trình có những đặc tính riêng phù hợp với từng loại dự án khác nhau về chi tiết thì anh hiểu mà chả biết giải thích thế nào. Thôi để bác nào giải thích được rõ hơn thì tốt.

Tom Nguyen viết 19:10 ngày 30/09/2018

XP, TDD, Pair Programing và Scrum mình có thể giúp được

Nhờ @TamNinja so sánh dùm thằng XP với Scrum nhỉ? chưa biết thằng XP .
Pair Programing tưởng là 1 cách thức để triển khai Scrum nhỉ? Thực sự là mình cũng không biết gì về nó đâu

Thành Nguyễn viết 19:10 ngày 30/09/2018

cám ơn anh @TamNinja

Tâm Ninja viết 19:14 ngày 30/09/2018

Pair Programing là một cách thức để triển khai Agile. Mình liệt kê nhầm đấy.
Mình chỉ thuần túy làm và giải thích cách làm thôi. So sánh thì vẫn chưa làm đủ lâu để so sánh. Nếu mà bác hứng thú thì có thể follow http://www.facebook.com/groups/394651407217065/ nhóm của Hà Nội Scrum nhé. Sắp đến Scrum day 2015 rồi. Lúc đó bác có thể tham khảo được của các chuyên gia về Agile thì sẽ chuẩn hơn.
Nếu chỉ so sánh cơ bản thì có một số đặc điểm sau mình nghĩ là nó sẽ khác nhau:

  • Scrum và XP đều nổi bật bởi các iteration là các công đoạn từ plan cho đến test từng phần nhỏ của công việc lặp đi lặp lại cho đến khi hoàn thành sản phẩm. Tuy nhiên một sprint (Cách gọi iteration của scrum) thì kéo dài gấp đôi của XP.
  • Trong một iteration của Scrum thì không chấp nhận sự thay đổi yêu cầu. Khi thực hiện meeting đầu mỗi srpint thống nhất làm gì thì đến cuối sẽ ra một product backlog được thống nhất trước. Trong khi đó thì XP cho phép. Biện giải cho vấn đề này là trong scrum đề cao sự tự quản lí. Mà tự quản lí thì việc có thay đổi sẽ dẫn đến phải họp hành, thông báo, comunicate khá lằng nhằng. (Cái biện giải này là do mình tự thấy kinh nghiệm mà ra thôi)
  • Trong XP hay Scrum đều có định mức các task. Tuy nhiên với scrum thì không nhất thiết bạn luôn phải thực hiện các task được ưu tiên cao trước. Bạn thực hiện các task phù hợp với bạn trước.
  • Do trong scrum là tự quản lí bản thân nên không bắt buộc bạn phải thực hành các kĩ thuật lập trình như automated testing, pair programming, simple design, refactoring… bla bla…
    Nói tóm lại thì cả hai quy trình này đều khá giống nhau về mặt quy trình nhưng có sự khác nhau về cách thức quản lí team. Chính vì vậy mà rất khó để so sánh, mà những so sánh của mình cũng chỉ là phiến diện thôi. Hi vọng có ích.
Tom Nguyen viết 19:20 ngày 30/09/2018

Cảm ơn @TamNinja rất nhiều. Hôm trước thấy có cái hội thảo XP mà không hiểu là gì. Như vậy có thể hiểu XP là mô hình “linh hoạt” hơn cả Scrum cho các bác thích thay đổi requirement xoành xoạch

Tâm Ninja viết 19:09 ngày 30/09/2018

Cũng có thể vậy, nhưng nó khô cứng và gò bó hơn, tốn nhiều effort quản lí hơn.
Thằng Scrum mình thấy nó phù hợp với start-up còn thằng XP phù hợp với làm product.

Tom Nguyen viết 19:10 ngày 30/09/2018

tốn nhiều effort quản lí hơn

Mình cũng nghĩ vậy. còn việc nó khô cứng hơn thì tại sao vậy? Vì 1 duration của nó ngắng hơn scrum và khách hàng có thể thay đổi requirement luôn trong duration nên output sẽ sớm đến với khách hàng hơn cả scrum. Như vậy đứng ở phương diện khách hàng thì nó phải linh hoạt hơn.

Tâm Ninja viết 19:08 ngày 30/09/2018

Mấy cái detail quá thì mình chịu thôi. Mình giờ mới chỉ được phụ trách một nhóm có bốn người ở công ty chủ yếu là waterfall. Còn đánh quả lẻ thì team cũng 4 người mới có 2 dự án scrum và 1 xp thôi… Mấy cái kia vẫn chưa có được va vấp nhiều.

Làm giàu, làm giàu, làm giàu..... viết 19:16 ngày 30/09/2018

đợi học môn công nghệ phần mềm sẽ có nhiều mô hình như thác nước, tăng dần…khi đó sẽ hiểu hơn

Bài liên quan
0