Dùng phương pháp Agile

Một người quản lí viết cho tôi: “Tôi làm việc trong một tổ chức công nghệ thông tin (CNTT) cho cơ quan chính phủ, chúng tôi đã thử dùng phương pháp phát triển Agile nhưng phần lớn các dự án đều thất bại và chúng tôi không biết tại sao. Xin thầy lời khuyên.”

 

Đáp: Khó cho được lời khuyên mà không có chi tiết xác định về tại sao nhiều dự án thế thất bại. Theo ý kiến tôi, Agile là phương pháp tốt cho các dự án nhỏ trong tổ chức được tổ chức tốt. Nếu tổ chức của bạn không được tổ chức tốt và nhiều quan liêu thì nó có thể không có tác dụng. Nếu dự án của bạn là lớn, vì nhiều dự án chính phủ thường lớn, thì nó có thể cũng không có tác dụng. Yếu tố then chốt trong phương pháp Agile là chia nhỏ các yêu cầu thành những nhiệm vụ nhỏ hơn và xây dựng tăng dần các sản phẩm và chuyển giao cho khách hàng từng nhiệm vụ mỗi lúc. Do bước tăng nhỏ của, nó dễ theo dõi và thay đổi sản phẩm hơn khi những thay đổi xảy ra và phản hồi của khách hàng là dễ được tích hợp vào pha tiếp. Nhưng tổ Agile chỉ có thể làm điều đó với ít sự quan liêu. Với một số người quản lí của chính phủ điều này là khó vì họ sợ rằng họ có thể mất kiểm soát cho nên họ thường can thiệp và tạo ra vấn đề hơn là giúp đỡ.

Yếu tố quan trọng nhất của phương pháp Agilelà tổ tự tổ chức có các thành viên phát triển phần mềm dựa trên ưu tiên và chấp nhận thay đổi khi chúng xuất hiện. Nếu tổ KHÔNG được đào tạo tốt trong phương pháp Agile, nó sẽ không có tác dụng. Nếu các thành viên tổ không có hiểu rõ ràng về qui trình và kĩ năng Agile để chuyển giao sản phẩm chất lượng, nó sẽ không có tác dụng. Nếu các thành viên tổ không có đủ kinh nghiệm, hay có kỉ luật để tuân theo hoạt động thường ngày, nó sẽ không có tác dụng một cách hiệu quả. Không có đào tạo và kinh nghiệm, thành viên tổ có thể không có khả năng làm việc cùng nhau, theo dõi tiến bộ, đặt ưu tiên, và làm cho sản phẩm được chuyển giao trong “Sprint” của họ (vài tuần).

Cách tốt nhất để dùng Agile là có đào tạo tốt cho cả người quản lí và người phát triển, rồi áp dụng nó cho vài dự án nhỏ hơn để cho tổ có thể có nhiều kinh nghiệm hơn trước khi áp dụng phương pháp này vào mọi dự án. Phải mất thời gian để phát triển các kĩ năng Agile tốt; phải mất thời gian để thực sự hiểu qui trình Agile; và phải mất thời gian để xây dựng tổ tự tổ chức có kỉ luật.

 

—English verrsion—

 

Using Agile method

A manager wrote to me: “I work in an Information Technology (IT) organization for a government agency, we have tried to use Agile development method but most projects failed and we do not know why. Please advice.”

 

Answer: It is difficult to give advice without any specific details about why so many projects failed. In my opinion, Agile is a good method for small projects in a well organized organization. If your organization is not well organized and full of bureaucracy then it may not work. If your project is large, as many government projects often are, then it may not work either. The key factor in Agile method is the breakdown of requirements into smaller tasks and incrementally builds the products and delivers to customers one task at a time. Due to its small incremental step, it is easier to track and modify the product when changes happen and customer’s feedbacks are easily incorporated in the next release. But Agile teams can only do that with the least amount of bureaucracy. For some government managers this is difficult as they are afraid that they may lose control so they often interfere and create problems rather than help.

The most important factor of Agile method is the Self-organizing team whose members develop software based on priorities and accepts changes as they happen. If the team is NOT well trained in Agile method, it will not work. If team members do not have a clear understand Agile process and skills to deliver quality products, it will not work. If team members are not experienced enough, or have the discipline to follow a daily routine of activities, it will not work effectively. Without training and experience, team members may not be able to work well together, to track progress, to set priorities, and to get the products delivered within their “Sprint” (few weeks).

The best way to use Agile is having good trainings for both managers and developers, then apply it in few smaller projects so the team can get more experiences before apply the method on all projects. It takes time to develop good Agile skills; it takes time for managers to really understand the Agile process; and it takes time to build a disciplined self-organizing team.