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.
- Blogs of Prof. John Vu, Carnegie Mellon University