14 Apr, 2021
Thực hiện Agile
Vì công nghệ đang thay đổi nhanh chóng, doanh nghiệp cũng phải thay đổi nhanh chóng. Trong môi trường kinh doanh nhịp độ nhanh này, người quản lí thường xuyên bị áp lực phải thích ứng với hoàn cảnh thị trường thay đổi. Khi nhu cầu thay đổi trở thành một phần của cách các công ti làm kinh doanh, phát triển phần mềm cũng phải được điều chỉnh để đáp ứng nhu cầu này. Đó là lí do tại sao phát triển Agile đang ngày một phổ biến hơn với công ti phần mềm.
Các qui trình Agile được thiết kế để chuyển giao nhanh chóng phần mềm cho khách hàng tương ứng theo các nhu cầu được ưu tiên hoá. Bằng việc dùng Agile, các công ti có thể thích ứng với thay đổi ưu tiên của doanh nghiệp bằng việc chuyển giao phần mềm sau vài tuần để đáp ứng nhu cầu của khách hàng. Do đó điều khách hàng cần, họ có thể trong một thời gian ngắn, và nếu người dùng đổi ý, nó có thể được điều chỉnh nhanh chóng để đáp ứng cho nhu cầu của họ nữa. Bất kì phản hồi nào của khách hàng cũng có thể được trao cho tổ để cải tiến và cộng tác này làm cho phần mềm tốt hơn qua thời gian.
Tuy nhiên để thành công, tổ dự án Agile phải được đào tạo tốt và có kinh nghiệm. Làm việc tổ là bản chất trong kiểu phương pháp này vì mọi người đều phải làm việc tương ứng và sẵn lòng hỗ trợ lẫn nhau để làm cho các hoạt động diễn ra trôi chảy. Khái niệm về “tự quản” yêu cầu tổ có trách nhiệm duy trì mức độ chất lượng cao cho công việc của họ. Đây là lí do tại sao người phát triển có kinh nghiệm được cần tới. Vì vấn đề xuất hiện, các thành viên tổ phải nhận diện và loại bỏ bất kì chướng ngại nào bằng việc suy nghĩ về công việc của họ theo cách suy ngẫm đều đặn vào lúc cuối của từng lần lặp.
Mặc dầu tôi thích cách tiếp cận Agile và đã thành công khi dùng nó trong nhiều dự án nhưng tôi cũng muốn thận trọng rằng Agile KHÔNG phải là “một cách tiếp cận khớp cho tất cả” như nhiều nhà tư vấn đã chủ trương. Agile làm việc tốt trong các dự án nhỏ (ít hơn 10 người). Với dự án cỡ trung (10-30 người) sẽ khó khăn hơn, mặc dầu điều đó không có nghĩa là nó là không thể được. Tuy nhiên với dự án lớn (trên 50 người) tôi không muốn dùng Agile. Tôi nghĩ Agile cũng không có tác dụng cho tổ phân bố theo vùng địa lí, nơi các thành viên tổ ở các vị trí khác nhau hay thậm chí ở các nước khác nhau. (Mặc dầu một số nhà tư vấn nói rằng nó vẫn có tác dụng.)
Để làm cho Agile thành công hơn, điều quan trọng là nhấn mạnh rằng Agile không chỉ là một phương pháp cho người phát triển mà cả người quản lí và khách hàng cũng phải được tham gia vào nữa. Do đó nó yêu cầu đào tạo và quyết tâm lớn từ mọi bên được tham gia để làm cho nó thành công. Nếu người quản lí hay khách hàng không sẵn lòng dành thời gian với tổ phát triển thì Agile sẽ KHÔNG có tác dụng, bất kể tổ Agile giỏi đến đâu.
—-English version—-
Implementing Agile
Since technology is changing fast, business also has to change fast too. In this fast-paced business environment, managers are constantly pressured to adapt to changing market conditions. As the need to change become part of the way companies do business, software development must also be adjusted to meet the demand. That is why Agile development is getting more popular with software companies.
Agile processes are designed to quickly deliver software to customers according to prioritized needs. By using Agile, companies can adapt to changing business priorities by deliver software every few weeks to meet users’ demands. Therefore what customers need, they can have in a short time, and if users change their minds, it can be adjusted quickly to meet their needs too. Any customer’s feedbacks can be given to the team to improve and this collaboration makes the software better over time.
However to succeed, Agile project teams must be well trained and experienced. Teamwork is essential in this type of method as everybody must be working accordingly and willing to support each other to get the activities moving smoothly. The concept of “self-organized” requires the team to be responsible for determining who works on what on a daily basis. The team is also responsible for maintaining a high level of quality for their works. This is why experienced developers are needed. Since problems do occur, team members must identify and remove any obstacles by reflect on their work in regular retrospectives at the end of each iteration.
Although I like Agile approach and have been successfully using it in many projects but I also want to caution that Agile is NOT a “one approach that fits all” as several consultants have advocated. Agile works well in small projects (less than 10 people). For medium size projects (10-30 people) would be more difficult, although it does not means it is impossible. However for large projects (Over 50 people) I would not want to use Agile. I also do not think Agile also works in geographically distributed team, where team members are located in different places or even countries. (Although some consultants claimed that it does work).
To make Agile more successful, it is important to emphasize that Agile is not just a method for developers but managers and customers must also be involved too. Therefore it requires trainings and strong commitment from all parties involved to make it succeed. If managers or customers are not willing to spend time with development team then Agile will NOT work, regardless of how good the Agile team is.