Scrum - Tổng quan

Agile đã trở thành một trong những từ thông dụng lớn trong ngành phát triển phần mềm. Nhưng chính xác thì phát triển nhanh là gì? Nói một cách đơn giản, phát triển nhanh là một cách khác để thực hiện các nhóm và dự án phát triển phần mềm.

Để hiểu những gì là mới, chúng ta hãy tóm tắt lại các phương pháp truyền thống. Trong phát triển phần mềm thông thường, các yêu cầu sản phẩm được hoàn thiện trước khi tiếp tục phát triển.

Mô hình thác nước

Mô hình phát triển phần mềm được sử dụng phổ biến nhất với đặc điểm này là Mô hình thác nước như được mô tả trong sơ đồ sau. Tuy nhiên, trong hầu hết các trường hợp, các chức năng mới được thêm vào và các yêu cầu trước đó cũng có thể thay đổi. Mô hình Waterfall không được cấu trúc để đáp ứng các yêu cầu thay đổi liên tục như vậy. Hơn nữa, người dùng sẽ không biết rõ về chức năng của sản phẩm cho đến khi sản phẩm có sẵn toàn bộ.

Mô hình gia tăng lặp lại

Trong mô hình gia tăng lặp đi lặp lại, sự phát triển bắt đầu với một số lượng hạn chế các yêu cầu đã hoàn thiện và ưu tiên. Sản phẩm có thể phân phối là phần gia tăng hoạt động của sản phẩm. Một tập hợp các hoạt động từ yêu cầu đến phát triển mã được gọi là lặp lại. Dựa trên chức năng của phần tăng thêm và bất kỳ hoặc tất cả các yêu cầu mới, được sửa đổi, đang chờ xử lý, lô yêu cầu tiếp theo được trao cho lần lặp tiếp theo. Kết quả của quá trình lặp lại tiếp theo là sự gia tăng khả năng làm việc của sản phẩm. Điều này được lặp lại cho đến khi sản phẩm hoàn thành các chức năng cần thiết.

Người dùng thường không tham gia vào công việc phát triển và nó có thể gây ra khoảng cách giao tiếp dẫn đến các chức năng không chính xác. Sự tham gia là tích cực cho nhóm phát triển, nhưng đòi hỏi thời gian của nhóm và có thể gây ra sự chậm trễ. Hơn nữa, bất kỳ thay đổi yêu cầu không chính thức nào trong quá trình lặp lại có thể dẫn đến nhầm lẫn và cũng có thể tạo ra creep phạm vi. Với tiền đề này, phát triển Agile ra đời.

Phát triển nhanh

Phát triển Agile dựa trên phát triển gia tăng lặp đi lặp lại, trong đó các yêu cầu và giải pháp phát triển thông qua hợp tác nhóm. Nó đề xuất một cách tiếp cận lặp lại theo hộp thời gian và khuyến khích phản ứng nhanh chóng và linh hoạt với sự thay đổi. Đây là một khung lý thuyết và không chỉ định bất kỳ thực hành cụ thể nào mà nhóm phát triển phải tuân theo. Scrum là một khung quy trình nhanh cụ thể xác định các thực hành bắt buộc phải tuân theo.

Việc triển khai sớm các phương pháp nhanh bao gồm Quy trình hợp nhất Rational (1994), Scrum (1995), Crystal Clear, Lập trình cực đoan (1996), Phát triển phần mềm thích ứng, Phát triển theo hướng tính năng (1997) và Phương pháp phát triển hệ thống động (DSDM) (1995). Chúng bây giờ được gọi chung làagile methodologies, sau khi Tuyên ngôn Agile được xuất bản vào năm 2001.

Tuyên ngôn Agile

Tuyên ngôn Agile được xuất bản bởi một nhóm các nhà phát triển phần mềm vào năm 2001, nêu bật tầm quan trọng cần được trao cho nhóm phát triển, đáp ứng các yêu cầu thay đổi, sự tham gia của khách hàng.

Tuyên ngôn Agile như sau:

“Chúng tôi đang khám phá ra những cách tốt hơn để phát triển phần mềm bằng cách thực hiện nó và giúp những người khác làm điều đó. Thông qua công việc này, chúng tôi đã nhận ra giá trị:

  • Các cá nhân và tương tác qua các quy trình và công cụ
  • Làm việc phần mềm trên tài liệu toàn diện
  • Sự cộng tác của khách hàng trong quá trình đàm phán hợp đồng
  • Đáp ứng sự thay đổi so với việc tuân theo một kế hoạch

Có nghĩa là, trong khi có giá trị trong các mục ở bên phải, chúng tôi đánh giá các mục ở bên trái nhiều hơn. "

… Tuyên ngôn về Phát triển Phần mềm Agile, Tác giả: Beck, Kent, et al. (2001)

Định nghĩa các Mục trong Tuyên ngôn Agile

Các mục tuyên ngôn bên trái có thể được mô tả như sau:

Mục kê khai Sự miêu tả
Cá nhân và tương tác Cần phải chú trọng:
  • tự tổ chức và động lực của các thành viên trong nhóm
  • tương tác liên tục cho công việc, làm rõ, thông tin giữa các thành viên trong nhóm
Phần mềm làm việc Việc cung cấp phần mềm làm việc trong khoảng thời gian ngắn giúp đạt được sự tin tưởng của khách hàng và sự đảm bảo trong nhóm.
Sự cộng tác của khách hàng Sự tham gia thường xuyên của khách hàng với nhóm phát triển đảm bảo thông tin về các sửa đổi cần thiết.
Đáp ứng với sự thay đổi Tập trung vào phản ứng nhanh với các thay đổi được đề xuất, điều này có thể thực hiện được với thời gian lặp lại ngắn.

Yếu tố quan trọng của Tuyên ngôn Agile là chúng ta phải tin tưởng mọi người và khả năng cộng tác của họ. Vì lý do này, các phương pháp luận nhanh nhẹn cụ thể được phát triển khai thác khả năng của các thành viên trong nhóm bằng cách nhấn mạnh đến tinh thần làm việc nhóm và hợp tác trong suốt vòng đời của dự án.

Các nguyên tắc chính của Agile

Tuyên ngôn Agile dựa trên các nguyên tắc sau:

Nguyên tắc Sự miêu tả
Sự hài lòng và giao hàng Sự hài lòng của khách hàng thông qua phần mềm làm việc sớm và liên tục.
Đón đầu thay đổi Hoan nghênh các yêu cầu thay đổi, ngay cả ở các giai đoạn phát triển sau này.
Giao hàng thường xuyên Cung cấp phần mềm hoạt động thường xuyên (hàng tuần thay vì hàng tháng).
Giao tiếp là chìa khóa Đảm bảo sự liên kết chặt chẽ giữa các nhà phát triển với các doanh nhân hàng ngày.
Môi trường và Niềm tin Xây dựng các dự án xung quanh những cá nhân có động lực. Cung cấp cho họ sự hỗ trợ cần thiết và tin tưởng họ.
Giao tiếp mặt đối mặt Khuyến khích trò chuyện mặt đối mặt để đảm bảo giao tiếp hiệu quả và hiệu quả.
Phần mềm như là thước đo tiến bộ Phần mềm làm việc là thước đo chính của sự tiến bộ.
Phát triển bền vững Thúc đẩy phát triển bền vững với khả năng duy trì một tốc độ không đổi trong suốt quá trình phát triển.
Chú ý đến chi tiết Liên tục chú ý đến kỹ thuật xuất sắc và thiết kế tốt.
Sức mạnh của ít hơn Sự đơn giản là điều cần thiết.
Nhóm tự tổ chức Sự quan tâm thường xuyên của nhóm về việc trở nên hiệu quả trong những hoàn cảnh thay đổi.

phương pháp Agile

Phương pháp phát triển hệ thống động (DSDM)

Nó là một khuôn khổ nhanh cho các dự án phần mềm. Nó được sử dụng để tinh chỉnh các cách tiếp cận truyền thống. Phiên bản mới nhất của DSDM được gọi là DSDM Atern. Tên Atern là viết tắt của Arctic Tern - một loài chim biển có thể di chuyển những khoảng cách rộng lớn, đại diện cho nhiều đặc điểm của phương pháp là những cách làm việc tự nhiên như ưu tiên và cộng tác.

Scrum

Đây là khung nhanh nhẹn phổ biến nhất, đặc biệt tập trung vào cách quản lý các nhiệm vụ trong môi trường phát triển dựa trên nhóm. Scrum sử dụng mô hình phát triển lặp đi lặp lại và tăng dần, với thời gian lặp lại ngắn hơn. Scrum tương đối đơn giản để thực hiện và tập trung vào việc giao hàng nhanh chóng và thường xuyên.

Lập trình cực đoan (XP)

Nó là một loại phát triển phần mềm nhanh nhẹn. Nó ủng hộ việc phát hành thường xuyên trong các chu kỳ phát triển ngắn, nhằm mục đích cải thiện năng suất và giới thiệu các điểm kiểm tra nơi các yêu cầu mới của khách hàng có thể được chấp nhận. Phương pháp này lấy tên từ ý tưởng rằng các yếu tố có lợi của thực tiễn kỹ thuật phần mềm truyền thống được đưa đến mức cực đoan. (Lập trình cực đoan là một chuyên ngành phát triển phần mềm tổ chức mọi người sản xuất phần mềm chất lượng cao hơn một cách hiệu quả hơn.) XP giải quyết các giai đoạn phân tích, phát triển và thử nghiệm bằng các cách tiếp cận mới tạo ra sự khác biệt đáng kể cho chất lượng của sản phẩm cuối cùng.

Phát triển theo hướng thử nghiệm (TDD)

Đây là một quy trình phát triển phần mềm dựa trên sự lặp lại của một chu kỳ phát triển rất ngắn: đầu tiên nhà phát triển viết một trường hợp thử nghiệm tự động xác định một cải tiến mong muốn hoặc một chức năng mới, sau đó nó tạo ra ít mã nhất để vượt qua thử nghiệm đó và cuối cùng đưa mã mới đến các tiêu chuẩn có thể chấp nhận được.

Dựa vào

Thực tiễn sản xuất coi việc chi tiêu các nguồn lực cho bất kỳ mục tiêu nào khác ngoài việc tạo ra giá trị cho khách hàng cuối cùng là lãng phí và do đó là mục tiêu cần loại bỏ. Làm việc từ quan điểm của khách hàng tiêu thụ một sản phẩm hoặc dịch vụ, giá trị thuật ngữ được định nghĩa là bất kỳ hành động hoặc quy trình nào mà khách hàng sẵn sàng trả tiền cho. Lean tập trung vào việc duy trì giá trị với ít công việc hơn.

Kanban

Đó là một hệ thống để cải thiện và duy trì mức sản xuất cao. Kanban là một phương pháp mà thông qua đó Just-In-Time (JIT), chiến lược mà các tổ chức sử dụng để kiểm soát chi phí hàng tồn kho, đạt được. Kanban đã trở thành một công cụ hữu hiệu hỗ trợ điều hành một hệ thống sản xuất nói chung và nó được chứng minh là một cách tuyệt vời để thúc đẩy cải tiến.

Phần kết luận

Trong 10 năm qua, ngày càng có nhiều câu chuyện thành công, nơi các công ty đã cải thiện đáng kể sự thành công và hiệu suất của các nhóm và dự án phát triển CNTT của họ bằng các phương pháp hoạt động nhanh. Điều này đã khiến cho nhanh chóng được áp dụng rộng rãi trong nhiều ngành khác nhau, bao gồm cả truyền thông và công nghệ, các doanh nghiệp lớn và thậm chí cả chính phủ.

Agile Framework giúp các nhóm hưởng lợi từ:

  • Thời gian giao hàng / tiếp thị nhanh hơn
  • Giảm thiểu sự không chắc chắn và rủi ro
  • Tăng Lợi tức Đầu tư (ROI) bằng cách tập trung vào Giá trị Khách hàng

Trong số các phương pháp luận nhanh nhẹn khác nhau này, Scrum đã tỏ ra cực kỳ thành công trên toàn thế giới trong 20 năm qua.