Hôm qua đi hội thảo về Lean Startup nhưng đại khái là cảm thấy chưa thỏa mãn với cách giải thích của các speaker nên mình ghi lại 1 vài suy nghĩ của mình về Lean, bao gồm các điểm chính sau

#1: Tóm tắt

Mình thấy các bạn ủng hộ Lean/Scrum có đề cập đến 1 phương pháp phát triển phần mềm cổ điển là Waterfall.

Waterfall đại khái là mình thực hiện các giai đoạn trong dự án 1 cách tuần tự, thu thập yêu cầu của người sử dụng xong rồi mới đến thiết kế xong rồi mới đến xây dựng hệ thống xong rồi mới đến testing xong rồi mới đưa cho người sử dụng và lấy feedback. Keyword ở đây là ***"xong rồi mới đến"***, điều này sẽ dẫn đến là nếu có lỗi ở giai đoạn cuối cùng thì lúc đó sẽ không kịp sửa lại ở phần thiết kế nữa, hoặc nếu sửa được thì cũng sẽ mất rất nhiều thời gian.

Do đó, sau này các bạn làm phần mềm mới đưa ra phương pháp khác là Iterative. Nói đơn giản thì là thực hiện từng phần của dự án, có 10 tính năng thì cứ thu thập yêu cầu, thiết kế, xây dựng 1, 2 tính năng cho ổn ổn rồi làm tiếp 1, 2 tính năng nữa cho đến hết; thay vì thu thập yêu cầu 1 lúc cho 10 tính năng, rồi thiết kế cho cả 10 tính năng như trong Waterfall. Làm kiểu này thì

  • nếu phát hiện lỗi sẽ quay lại khắc phục nhanh hơn

  • đồng thời khi có 1, 2 tính năng đem demo cho khách hàng thì sẽ tạo sự tin tưởng vào dự án nhiều hơn

  • ngoài ra giúp khách hàng nhận ra họ còn cần gì trong các tính năng còn lại dễ hơn

Cuối cùng, dẫn đến Scrum (là 1 nhánh nhỏ của Agile) là dựa vào nền tảng iterative nhưng chú trọng vào các yếu tố con người nhiều hơn nữa. Các yếu tố con người có thể ví dụ như :

  • Giảm đi vai trò của Project Manager (thay bằng Scrum Master)

  • Tăng sự tự chủ trong việc đánh giá thời gian công việc cũng như đưa ra các khó khăn vướng mắc gặp phải của từng team member

#2: Nhận xét:

Thật ra, theo mình thấy thì sự thay đổi từ Waterfall sang Agile (trong đó có Scrum) là phù hợp với sự thay đổi nói chung trong tư duy quản trị tại các công ty không riêng gì về IT

Đối với các vấn đề không phải IT, thì thường khó mà biết được hết toàn bộ vấn đề là như thế nào, mà luôn đòi hỏi người quản lí cần chia các công việc ra, sắp xếp mức độ ưu tiên, chọn cái nào quan trọng để làm trước

Ngoài ra, càng ngày thì các công ty càng khuyến khích sự trao đổi về công việc giữa nhân viên với nhau cũng như với sếp, đồng thời năng động đưa ra các giải pháp cho vấn đề. Proactive (sự năng động) luôn là 1 yếu tố quan trọng khi tuyển dụng

Cuối cùng, "lean" hay tinh gọn cũng là 1 xu hướng chung. Ví dụ như cắt giảm chi phí, tập trung kinh doanh các lĩnh vực thế mạnh thay vì đầu tư dàn trải, áp dụng các hệ thống workflow để xử lí công việc tối ưu hơn cũng có thể coi là ứng dụng suy nghĩ lean.

#3: Cần lưu ý:

Do tư tưởng của lean là tập trung vào con người, do đó nếu yếu tố con người còn 1 số bất cập thì sẽ dẫn đến việc áp dụng lean gặp khó khăn. Các khó khăn này đều có thể xảy ra bất kể áp dụng phương pháp nào, agile hay waterfall. Ví dụ:

  • Team member thiếu sự chủ dộng trong công việc, đưa ra đánh giá về thời gian hoàn thành công việc không chính xác, gặp khó khăn trở ngại thì không nêu lên kịp thời để cả team cùng nhau giải quyết (do không muốn bị đánh giá là kém)

  • Team member có nhiều ý kiến trái chiều về cách xử lí vấn đề, team lead không dứt khoát dẫn đến tốn nhiều thời gian thống nhất công việc

  • Không có giải pháp nào là one size fits all. Cần chọn hướng tiếp cận phù hợp với mình, thay vì chọn hướng tiếp cận mà-người-ta-bảo-là-hiện-đại-nhất

Ví dụ khi 1 bạn có đưa ra câu hỏi là làm thế nào để quản lí công việc giữa các thành viên trong nhóm, và nhiều bạn khác recommend các giải pháp như Redmine, ActiveCollab, Trello, Sharepoint v.v... thì câu trả lời của mình là : "cần đưa thêm thông tin, ví dụ team có bao nhiêu người, các thành viên có ngồi gần nhau hay không, trình độ cũng như sự tự chủ động của các thành viên như thế nào". Vì ví dụ như team có dưới 10 người, đồng thời ngồi gần nhau, thì quản lí công việc nội bộ nhiều khi chỉ cần 1 tấm bảng trắng đặt tại nơi đông người qua lại rồi ghi công việc ai làm gì lên đó, vậy mà lại hiệu quả

Ngoài ra có thể kết hợp nhiều methodology khác nhau, không nhất thiết cứ phải chọn cái này là không ứng dụng những cái hay của cái kia.