Shift Left Là gì trong làm sản phẩm phần mềm?

Đây là một thuật ngữ khá mới trong vô vãn thuật ngữ, triết lý về quản trị nói chung, về xây dựng phần mềm nói riêng. Trong quản trị chắc hẳn các bạn có nghe qua về Waterfall (thác đổ) và Agile khá là nhiều. Shift Left là một practice mà có thể áp dụng cả Waterfall và Agile.

Ý niệm về Shift Left đó là tìm kiếm và ngăn chặn lỗi sớm nhất có thể trong quy trình phát triển sản phẩm. Thông thường trong quá phương pháp luận về Waterfall hay Agile nếu các bạn đề ý các hoạt động kiểm thử (test) sẽ thường nằm ở giai đoạn sau. Nếu nhìn theo biểu đồ hình ngang thì đó là Shift-Right, là mô hình hiện tại áp dụng ở rất nhiều doanh nghiệp, dự án phát triển phần mềm. Việc thực hiện điều này là không sai với các sản phẩm mà doanh nghiệp đã có kinh nghiệm hay rõ ràng về yêu cầu tính năng, kiến trúc thiết kế. Nhưng với đa phần các sản phẩm phần mềm là mới mẻ, là còn đang nghiệp, thậm chí công nghệ hiện tại chưa đáp ứng, việc để các chốt chặn kiểm thử càng muộn thì sẽ càng rủi ro về mặt chất lượng và chi phí.

Hãy xem một nghiên cứu của National Institute of Standards and Technology về chi phí khi sửa cùng lỗi trong các giai đoạn phát triển phần mềm. Ở giai đoạn đầu Coding chỉ mất 80$ / defect, nhưng nếu cùng lỗi đó trên môi trường production có thể cost bạn tới 7,600$ / defect.

Nghiên cứu của IBM System Institute về mối liên hệ giữa chi phí fix lỗi và lỗi ở các giai đoạn khác nhau cũng cho thấy lỗi bị phát hiện càng muộn thì chi phí sửa lỗi sẽ càng cao, đặc biệt gấp 100 lần khi vào giai đoạn vận hành bảo trì (maintenance).

Shift Left ra đời với ý niệm muốn tìm lỗi và sửa lỗi sớm nhất có thể.

Chuyển sang Shift Left

Hiện trạng là thậm chí các đơn vị áp dụng Agile vào quy trình phát triển phần mềm, việc testing thường chỉ diễn ra ở phần sau của luồng công việc. Trong Shift Left model, việc kiểm thử được thực thi ở phầnn trước của dự án trong ngữ cảnh project life cycle. Software Developer và Tester cần suy nghĩ về chất lượng sản phẩm từ lúc mới bắt đầu, thay vì chờ đợi cho bug / defect xảy ra, Shifting Left cho phép project team thực hiện test, cung cấp các feedback, và chỉnh sửa hàng ngày (DAILY).

Nghiên cứu về tần suất lỗi theo giai đoạn phát triển sản phẩm

 

Những lợi ích khi sử dụng Shift Left

  1. Test Automation – Reduce human effort, human effort, speed up.
  2. Quick and Frequent Delivery – Deliver early with greater quality.
  3. Satisfaction Downstream Organization – Reduce deployment and day one issues.
  4. Shift Left and Devops – Require: Continuous Testing and Continuous Development.

How to start with Shift Left:

  1. Management Support – Đối với nhiều thay đổi mang tính bứt phá truyền thống sẽ thật khó khăn nếu ko có các sếp hỗ trợ thực hiện trong lúc ban đầu. Top down method luôn là yếu tố đầu tiên khiến các dự án thay đổi thành công. Tuy nhiên, bạn nếu đóng vai trò trung tâm cần thiết lập mức độ mong đợi của các bên và cho mọi người thấy rõ lợi ích cũng như vai trò của từng người trong hệ thống / dự án này.
  2. Test Strategies – Định nghĩa testing strategies lúc mới bắt đầu. Kiểm thử này bao gồm cả Unit Test và SIT (System Integration Testing).
  3. Requirements and Design Verification – Như các bạn đã biết 56% lỗi có thể tìm thấy trong quá trình thu thập và xây dựng yêu cầu, việc kiểm tra chốt chặn ở đây rất có ý nghĩa về chất lượng và giảm thiểu chi phí trong tương lai khi phát sinh lỗi.
  4. Risk Analysis – Risk là một quá trình làm đòi hỏi kinh nghiệm và sự sáng tạo. Kinh nghiệm của iGà làm Risk đó là hãy liệt kê tất cả các risk của dự án từ nhiều level, risk list hay risk register cứ làm cho tới khi thấy ngớ ngẩn (không còn risk nào có thể nhìn thấy thêm nữa). Tùy vào quy mô và thời gian dự án, có thể nhiều hay ít, thông thường từ 50-200 risks, ở giai đoạn ban đầu càng nhiều risk. Theo thời gian risk có thể trở thành issue hoặc biến mất.

 

Kết luận

Shift Left là chuyển quá trình testing của dự án thực hiện càng sớm càng tốt. Kiểm thử tự động và hỗ trợ của hạ tầng DevOps là yếu tố quan trọng để gặt hái thành công và dễ dàng triển khai trong thực tiễn. Về yếu tố con người để thực hiện thành công cũng cần sự phối hợp tốt giữa Solution Desginer, Software engineer và Software tester.

Shift Left ko phải là quy trình thay đổi, Shift Left đơn giản là thay đổi tư duy làm việc và văn hóa tương tác đội nhóm trong tổ chức.

Mong nhận được nhiều chia sẻ kinh nghiệm của cả nhà trong áp dụng shift left vào xây dựng phát triển phần mềm hay triển khai dự án.

 

Share to be shared,

iGà

[email protected]

 

 

 

Topics #agile #ibm #project management #testing #verifying #waterfall