Phân tích quy trình sản xuất có quan trọng đối với đội ngũ Phát triển phần mềm?

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.

Phân tích quy trình sản xuất là gì?

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:

Phân tích quy trình sản xuất - 1

 

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:

Phân tích quy trình sản xuất - 2

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:

Vòng lặp 1:

  • Thiết lập đường ống CI/CD để triển khai phần mềm mã mới nhất trong tất cả các môi trường hiện hữu (tự động, hoặc đối với môi trường cao hơn thì sử dụng trình kích hoạt thủ công)
  • Chuyển đổi khả năng tiếp cận và kiểm tra ứng dụng trên thiết bị di động đến các Weekly Sprint để tìm những khuyết điểm trong các chu kỳ phát triển.

Phân tích quy trình sản xuất - 3

Vòng lặp 2:

  • Thêm các trường hợp kiểm tra tích hợp hệ thống tự động để kiểm tra quy trình đầu cuối trong môi trường tích hợp.

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.

Phân tích quy trình sản xuất - 4

Vòng lặp 3:

  • Thêm các đường ống CI/CD mới để triển khai các phiên bản lớn và nhỏ của sản phẩm trong môi trường tiền sản xuất.
  • Chuyển đổi kiểm tra bảo mật sang chu kỳ phát triển và phát hành phần mềm, tự động hóa quy trình này và báo cáo cho đội ngũ thuộc bảo mật và tuân thủ.

Phân tích quy trình sản xuất - 5

Vòng lặp 4:

  • Tích hợp các bài kiểm tra hiệu năng phần mềm tự động trong đường ống CI/CD để thực hiện tất cả các sản phẩm lớn và nhỏ.

Phân tích quy trình sản xuất - 6

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