SDLC là gì? 3 nhóm mô hình chính và vị trí của Agile Scrum

⏱︎

Read time:

2–3 minutes

Software Development Lifecycle (SDLC) mô tả cách phần mềm được hình thành từ ý tưởng, phân tích, thiết kế, phát triển, kiểm thử đến triển khai và bảo trì. Một SDLC model là một mô hình thể hiện các giai đoạn và hoạt động liên hệ với nhau như thế nào về logic và thời gian.

Ba nhóm ví dụ chính: sequential, iterative và incremental models. Các đặc điểm này có thể kết hợp trong một phương pháp phát triển thực tế.

1. Sequential Models

Với mô hình tuần tự, các giai đoạn chủ yếu diễn ra theo một chuỗi đã định. Đầu ra của giai đoạn trước trở thành đầu vào cho giai đoạn sau.

  • Waterfall: requirement → design → implementation → testing → deployment.
    • Đây là mô hình kinh điển. Làm tuần tự. Code trước test sau. Cuối cùng release. Tuy nhiên nó có nhiều hạn chế và rủi ro.
  • V-model: liên kết từng hoạt động phát triển với một test level tương ứng.

Ưu điểm là cấu trúc rõ và dễ quản lý khi requirement ổn định. Hạn chế là dự án dài hơi, vài tháng đến vài năm, đang gần cuối mà khách hàng muốn thay đổi lớn là “toang” cả team luôn 😂

2. Iterative Models

Mô hình lặp phát triển sản phẩm qua nhiều vòng. Mỗi vòng giúp team học thêm từ feedback rồi điều chỉnh requirement, thiết kế hoặc implementation.

Spiral model và prototyping. Trọng tâm của “iterative” là lặp lại và cải tiến cách hiểu hoặc giải pháp.

3. Incremental Models

Mô hình tăng trưởng chia sản phẩm thành các phần có giá trị và giao dần qua nhiều increment. Mỗi increment bổ sung capability mới vào phần mềm đang có.

Unified Process là một ví dụ. Trọng tâm của “incremental” là sản phẩm lớn dần qua từng phần được bổ sung.

Iterative và Incremental khác nhau thế nào?

Khía cạnhIterativeIncremental
Mục tiêu chínhLặp lại để học và cải tiếnBổ sung từng phần của sản phẩm
Hình dungVẽ lại một bức tranh qua nhiều vòngGhép thêm từng mảnh vào bức tranh
Kết quả mỗi chu kỳPhiên bản tốt hơn của giải phápSản phẩm có thêm chức năng
Có thể kết hợp?CóCó

Agile Scrum nằm ở đâu?

Agile là một tư duy và tập hợp các nguyên tắc phát triển; Scrum là framework giúp team phát triển sản phẩm theo các Sprint. ISTQB xếp Scrum vào nhóm phương pháp và Agile practices mô tả chi tiết hơn hoạt động phát triển, chứ không gọi Scrum là một nhóm SDLC model thứ tư.

Ngoài Scrum ra, Agile còn có Kanban - là một cách làm khá phổ biến của nhiều team, không theo sprint

Trong thực tế, Scrum thường mang cả hai đặc điểm:

  • Iterative: team lặp lại các hoạt động planning, development, testing, review và retrospective trong từng Sprint; feedback được dùng để cải tiến.
  • Incremental: mỗi Sprint hướng tới một Product Increment có giá trị và có thể sử dụng.

Vì vậy, cách nói chính xác và dễ hiểu là: Scrum thường áp dụng cách phát triển iterative và incremental trong bối cảnh Agile. ✌️