Một trong những số liệu quan trọng mà các nhà lãnh đạo trong lĩnh vực CNTT quan tâm nhất là tổng thời gian một vòng đời phát hành phần mềm diễn ra, từ giai đoạn sơ khai đến khi hoàn chỉnh. Tùy vào sự nhanh nhẹn của đội ngũ, những ràng buộc mà doanh nghiệp đưa ra và sự phụ thuộc giữa hai bên, quá trình này có thể dao động từ vài ngày đến vài tháng.
Mặc dù chỉ số thời gian diễn ra quá trình này chiếm vai trò khá quan trọng nhưng những nhà lãnh đạo vẫn phải hiểu rõ từng bước của Vòng đời phát triển phần mềm (SDLC) – bao gồm cả “nút thắt cổ chai”. Nút thắt cổ chai (bottleneck) là một điểm xuất hiện dọc theo quy trình nghiệp vụ, trong đó số lượng yêu cầu công việc cao hơn mức có thể xử lý ở thông lượng tối đa, khiến luồng công việc bị gián đoạn, chậm trễ hoặc tắc nghẽn. Việc phân tích này cũng là một kỹ thuật để đánh giá cũng như chẩn đoán những điểm nghẽn bất kỳ trong quy trình phát hành.
Việc phân tích quá trình phát hành phần mềm này cũng là một cách nói đơn giản của ánh xạ dòng giá trị (VSM – value-stream mapping), chủ yếu được sử dụng trong việc sản xuất. Ánh xạ dòng giá trị là một quá trình được sử dụng bởi các công ty để tìm ra cách thức và nơi họ cung cấp giá trị. Mục đích của ánh xạ dòng giá trị là phát triển sự hiểu biết rõ ràng về các bước, thời gian và tài nguyên cần có để hỗ trợ khả năng kinh doanh mang lại giá trị.
Hãy liên tưởng việc sáng tạo phần mềm như một dây chuyển lắp ráp trong nhà máy, với các yêu cầu kinh doanh là nguyên liệu thô và chủ doanh nghiệp là nhà cung cấp chính. Tương tự như vậy, quá trình sản xuất được thực hiện bởi các nhà phát triển và người kiểm thử phần mềm, với sản phẩm được lắp ráp, đóng gói triển khai liên tục bởi các đường ống CI/CD. Đây cũng là một cách để các nhà lãnh đạo xác định được tất cả các bước trong quy trình SDLC, bao gồm cả thời gian chờ đợi và thời lượng (thời gian chu kỳ) của từng bước một.
Để hiểu thêm chi tiết về VSM, hãy xem bản đồ luồng giá trị đơn giản của quy trình phân phối bánh pizza dưới đây:
Khi có bản đồ luồng giá trị, chúng ta có thể dễ dàng thấy được những khoảng thời gian chờ đợi trong quá trình đã được tối ưu hóa để giảm 30% thời gian thực hiện quy trình tổng thể. Mặc dù vòng đời phát triển phần mềm có nhiều bước và phức tạp hơn ví dụ trên, nhưng các nguyên tắc chung vẫn giữ nguyên.
Bây giờ hãy cùng xem quy trình phát hành phần mềm của một nhóm sử dụng phương pháp kết hợp giữa mô hình thác nước và các quy trình linh hoạt:
Như những gì chúng ta thấy, đội ngũ này đã sử dụng các Weekly Sprint để phát triển và thử nghiệm chức năng (hộp màu xanh lá cây) và mô hình thác nước cho phần còn lại của quá trình phân phối (hộp màu xám). Trong quy trình linh hoạt, ngoài thông lượng cao, họ cũng phát hiện một số khiếm khuyết trong các chu kỳ thử nghiệm, chẳng hạn như tích hợp, khả năng tiếp cận, ứng dụng trên thiết bị di dộng, bảo mật và hiệu năng. Càng phát hiện những khiếm khuyết một cách chậm chạp, việc sửa chữa sẽ càng trở nên tốn kém hơn. Vì vậy, hãy cố gắng lặp lại việc cải thiện quy trình và đo lường những tác động như sau:
Lưu ý: Giả sử môi trường tích hợp đã sẵn sàng và các đường ống CI/CD có thể triển khai phần mềm mã mới nhất trước khi thực hiện các bài kiểm tra tích hợp.
Quy trình tổng thể đã đưa ra hiệu quả cao hơn đến 17% và rút ngắn hơn 50 ngày làm việc. So với hiện tại, họ có thể phát hành 2 phần mềm trong 98 ngày thay vì chỉ có 1. Dù có nhiều bước hơn trong Weekly Sprints nhưng tất cả đều được tự động hóa. Lưu ý rằng thông lượng sẽ bị ảnh hưởng vì phải sửa các lỗi được tìm thấy thông qua các bước kiểm tra. Tuy nhiên, một sản phẩm chất lượng cao được phát hành chỉ trong một khoảng thời gian ngắn mới thực sự có giá trị đối với cả doanh nghiệp và người dùng.
Phân tích quy trình phát triển hỗ trợ các nhà lãnh đạo CNTT trong việc phân phối phần mềm tốt và nhanh hơn. Hiệu quả nhất vẫn là tối ưu hóa quy trình bằng cách sử dụng các vòng lặp, rút ngắn thời gian và kiểm tra, đánh giá các tác động liên quan đến quy trình sản xuất.
Biên dịch bởi Tuyết Hiền – Iworld.com.vn