Một người phát triển phần mềm viết cho tôi: “Người chủ công ti ra lệnh từ giờ trở đi mọi dự án đều phải dùng phương pháp Agile. Là người phát triển chúng tôi không biết tiến hành thế nào? Xin hỏi ý kiến tư vấn của thầy.”

Đáp: Đổi sang phương pháp Agile cần nhiều chuẩn bị. Là người phát triển, bạn cần biết tại sao công ti của bạn chuyển sang Agile. Bạn cần hiểu vấn đề gì công ti muốn sửa. Nếu không có vấn đề thì tại sao thay đổi? Bạn phải hỏi: “Có vấn đề với phương pháp chúng ta dùng hôm nay không? Chúng là gì? Chúng tồi như thế nào? Hay có cái gì đó mà Agile sẽ cho phép công ti làm tốt hơn phương pháp hiện thời? Loại cải tiến nào được mong đợi? Nó có ý nghĩa thế nào? Bất kể lí do nào, người phát triển đều phải có hiểu biết rõ ràng tại sao chúng ta chấp nhận cách làm việc mới. Không có điều này, thay đổi có thể không có tác dụng tốt, và một số người sẽ không sung sướng gì với kết quả.

Agile được xây dựng quanh khái niệm về “tổ tự quản”. Nó có nghĩa là tổ phát triển sẽ không được bảo cho phải làm gì và khi nào thì việc sẽ được làm. Về căn bản, họ được trao cho mục đích thế rồi họ sẽ làm việc giữa họ với nhau để xác định cách đạt tới những mục đích này. Điều này sẽ yêu cầu nhiều đào tạo, làm việc tổ, và kĩ năng đặc biệt. Chuyển sang Agile nghĩa là công ti phải đầu tư vào đào tạo Agile cho mọi người phát triển, người quản lí và khách hàng. Câu hỏi của tôi là: “Người chủ công ti có biết điều này không? Người chủ có đồng ý hỗ trợ nó không?”

Không có đào tạo đúng, tôi nghĩ khái niệm “tổ tự quản” sẽ đại diện cho thách thức nghiêm trọng với những người quản lí. Về căn bản, điều này là dịch chuyển rất khó khăn cho người quản lí thực hiện, nhiều người sẽ thấy rằng việc của họ đang đi ra xa và họ muốn chống lại thay đổi này. Đó có thể là chướng ngại có ý nghĩa với việc chấp thuận Agile.

Không có đào tạo đúng, tôi nghĩ “lập kế hoạch tăng dần” cũng sẽ là vấn đề. Cách tiếp cận Agile giả định rằng tổ không biết tất cả các yêu cầu cho nên họ chỉ lập kế hoạch ở mức cao lúc bắt đầu rồi bổ sung thêm chi tiết cho từng việc đưa ra. Nếu người quản lí mong đợi bản kế hoạch dự án có lịch biểu, thời gian, nỗ lực được thực hiện từ đầu nhưng chỉ nhận được ước lượng mơ hồ và kế hoạch mức cao, họ sẽ không cảm thấy thoải mái. Không có đào tạo đúng, tôi nghĩ “sự tham gia của khách hàng” cũng sẽ là vấn đề chính. Cách tiếp cận Agile yêu cầu khách hàng tham gia cùng tổ phát triển trong toàn dự án. Thực tại, khách hàng và người dùng phải là một phần của tổ phát triển trong lập kế hoạch, tổ chức và đưa ra. Câu hỏi của tôi là: “Khách hàng tham gia tích cực thế nào trong dự án hiện thời bây giờ? Họ sẵn sàng tham gia thế nào nếu công ti chuyển sang Agile? Phần lớn khách hàng đều bận rộn và hiếm khi tham gia vào dự án. Nếu công ti yêu cầu tương tác nhiều thì điều gì sẽ xảy ra? Bạn có cho rằng khách hàng có thể cam kết thời gia và nỗ lực mà Agile mong đợi ở họ không?

Tôi không biết lí do thực của công ti của bạn để chuyển sang Agile cho nên tôi không thể bình luận thêm được. Tôi không biết người chủ của bạn biết rõ đến đâu về cách tiếp cận Agile? Tôi hi vọng rằng ông ấy không ra quyết định dựa trên một số bài báo mà ông ấy đọc được trong thời gian rỗi của ông ấy. Bất kì thay đổi nào trong chiều hướng, phương pháp, cách tiếp cận đều cần nhiều chuẩn bị và kế hoạch và không bao giờ nên được thực hiện một cách vội vàng. Đó là đơn thuốc cho thảm hoạ.

—-English version—-

Changing to Agile

A software developer wrote to me: “The company owner orders from now on every project should use Agile method. As developers we do not know how to proceed? Please help.”

Answer: Changing to Agile method needs a lot of preparations. As developers, you need to know why your company is moving to Agile. You need to understand what problem that the company wants to fix. If there is no problem then why change? You must ask: “Are there problems with the methods we use today? What are they? How bad are they? Or is there something that Agile would allow company to do better than current method? What kind of improvement is expected? How significant is it? Regardless of the reason, developers must have a clear understanding why we are adopting a new way of working. Without this, the change may not work well, and some people will be unhappy with the result.

Agile is built around the concept of a “self-directed team”. It means development team will not be told what to do and when it will be done. Basically, they are given goals then they will work among themselves to determine how to reach those goals. This will require a lot of trainings, teamworks, and special skills. Transition to Agile means the company must invest in Agile training for every developer, manager and customer. My question is: “Does the company owner know this? Does the owner agree to support it?”

Without properly training, I think the “Self directed team” concept will represent a serious challenge to the managers. Basically, this is a very difficult transition for managers to make, many will see that their jobs are going away and they would resist the change. It could be a significant obstacles to the adoption of Agile.

Without properly training, I think the “Incremental planning” will also be a problem. The Agile approach assumes that the team does not know all of requirements so they only plan a high level in the beginning then add detail for each release. If manager expects a project plan with schedule, time, efforts be done upfront but only receive a vague estimates and high level plan, they would not feel comfortable. Without properly training, I think “Customer participation” will also be a major problem. The Agile approach requires customer to participate with the development team throughout the project. Actually, customers and users should be part of the development team during planning, organizing and releasing. My question is: “How active are customers participating in current projects now? How ready would they participate if the company moves to Agile? Most customers are busy and rarely participate in the project. If the company requires significant interaction then what will happen? Do you think customer could commit the time and effort that the Agile expect of them?

I do not know the real reason of your company to move to Agile so I cannot comment more. I do not know how well your owner knows about Agile approach? I hope that he does not make decision based on some newspaper articles that he read during his spare time. Any change in direction, method, approach need a lot of preparation and plan and should never be done in a hurry. That is recipe for disaster.