Software Development Life Cycle(SDLC)
Chuỗi các pha một phần mềm đi qua từ lúc có ý tưởng tới lúc ngừng dùng: lập kế hoạch, phân tích, thiết kế, lập trình, kiểm thử, triển khai, vận hành. BA có việc ở gần như mọi pha.
Định nghĩa
Mọi phần mềm đều đi qua một chuỗi việc giống nhau: có người nêu nhu cầu, có người làm rõ nhu cầu, có người thiết kế, có người code, có người test, rồi nó lên chạy thật và sống tiếp vài năm. Gọi tên chuỗi đó là SDLC. Cái khác nhau giữa các công ty là kích thước mỗi pha và số lần lặp lại, chứ không phải bản thân các pha.
SDLC mô tả các pha phải đi qua. Waterfall hay Scrum chỉ là cách sắp xếp thứ tự và độ dài của những pha đó.
Các pha và việc của BA
| Pha | Ai chủ trì | BA làm gì | Đầu ra thường gặp |
|---|---|---|---|
| Lập kế hoạch | PM, sponsor | Làm rõ vấn đề, ước lượng lợi ích, dựng business case | Business case, phạm vi sơ bộ |
| Phân tích yêu cầu | BA | Phỏng vấn, workshop, quan sát, viết yêu cầu | BRD, FRD, user story, sơ đồ |
| Thiết kế | Tech lead, designer | Rà thiết kế có phủ hết nghiệp vụ chưa, chốt wireframe với khách | Wireframe, thiết kế kỹ thuật |
| Lập trình | Dev | Trả lời câu hỏi, làm rõ ngoại lệ, quản lý thay đổi | Ticket đã refine, CR |
| Kiểm thử | QC | Rà test case theo yêu cầu, hỗ trợ UAT, phân xử tranh cãi bug hay CR | Kịch bản UAT, biên bản nghiệm thu |
| Triển khai | DevOps, PM | Lập kế hoạch cắt chuyển, viết tài liệu hướng dẫn, đào tạo người dùng | Cutover plan, tài liệu người dùng |
| Vận hành, bảo trì | Đội hỗ trợ | Đo hiệu quả thật, gom yêu cầu mới, phân loại ticket | Báo cáo sau go-live, backlog mới |
Pha bị coi nhẹ nhất là pha cuối. Hợp đồng thường kết thúc ở mốc nghiệm thu, đội chuyển sang dự án khác, và không ai quay lại xem thứ vừa làm có ai dùng hay không.
Mấy mô hình chạy các pha đó
- Waterfall: đi một lượt, mỗi pha có cửa ký duyệt trước khi sang pha sau.
- V-model: giống waterfall nhưng gắn mỗi pha bên trái với một cấp kiểm thử bên phải. Yêu cầu nghiệp vụ đối xứng với UAT, thiết kế hệ thống đối xứng với SIT.
- Iterative, incremental: chia thành nhiều vòng, mỗi vòng đủ các pha và cho ra một phần chạy được.
- Agile, Scrum: vòng lặp rất ngắn, hai tuần, các pha nén lại và chồng lên nhau trong cùng một sprint.
- Spiral: mỗi vòng có thêm bước đánh giá rủi ro, hợp với dự án tốn kém và nhiều thứ chưa biết.
Ở phỏng vấn, người ta hay hỏi bạn thích mô hình nào. Câu trả lời có trọng lượng hơn là hỏi ngược lại: yêu cầu ổn định tới đâu, chi phí sửa sai cao thế nào, khách có người ngồi cùng đội hằng ngày không.
Ví dụ thực tế
Dự án app đặt lịch khám cho một hệ thống phòng khám 6 cơ sở, 5 tháng, đội 7 người, chạy sprint hai tuần nhưng vẫn có ba cửa ký duyệt vì bên khách hàng cần chứng từ nghiệm thu theo giai đoạn.
Cách các pha thật sự diễn ra:
- Tuần 1–2: BA làm việc với ban giám đốc và ba lễ tân, ra một tài liệu 12 trang gồm phạm vi, luồng chính và bảng chỉ tiêu kỳ vọng. Ký duyệt lần một.
- Tuần 3–14: chạy 6 sprint. Trong mỗi sprint đều có đủ phân tích, thiết kế, code, test. BA viết story trước một sprint, ngồi cùng QC rà test case trong sprint.
- Tuần 15–16: UAT với 12 người dùng thật ở hai cơ sở, 34 lỗi ghi nhận, trong đó 9 cái sau khi phân xử được ghi là CR chứ không phải bug.
- Tuần 17: cắt chuyển vào tối thứ bảy, chạy song song với sổ giấy trong một tuần đầu.
- Tuần 18–21: hypercare. BA trực tổng đài nội bộ hai giờ mỗi sáng, gom được 47 phản hồi, chuyển 11 cái thành backlog đợt hai.
Con số đáng nhớ ở dự án đó là 9 CR bị nhầm thành bug. Toàn bộ chín cái đều rơi vào những chỗ tài liệu tuần 1–2 viết chung chung, kiểu "hệ thống hỗ trợ huỷ lịch". Huỷ trước bao lâu thì được, ai được huỷ thay bệnh nhân, huỷ rồi khung giờ có mở lại ngay hay không — không có câu nào trả lời.
Mẹo khi đi làm
Khi vào một dự án mới, câu hỏi đầu tiên nên hỏi là dự án này đang ở pha nào và pha trước đã chốt cái gì bằng văn bản. Nhiều bạn BA mới nhận việc giữa pha lập trình, tưởng mình chỉ cần viết tiếp story, rồi ba tuần sau phát hiện phạm vi đã được ký ở một tài liệu mình chưa từng đọc. Xin bằng được tài liệu đó trong ngày đầu tiên.
