Implementing Agile – Part I
Posted May 23rd, 2008 by rajendra
So you came to know about this Agile thing, you have collected enough information from the sources available and now you want to implement it in your organization also. First of all I want to welcome you to the world of software development methodologies, which is known as Agile. You must know here that implementing Agile is not an immediate process. It is not like passing a circular that now we are going to adopt Agile methodologies in the future projects and the next day you proudly announce that now we are an Agile company. It is a process which takes time, sometimes 1-2 years to implement.
Another thing you must remember while implementing any Agile process is, please do not ever try to ask all teams at once to follow agile practices. You must understand that it is a process which involves peoples and peoples do not change overnight. They need time to understand working of the process, its benefits and advantages. It may take time when they will be used to of it. When those peoples will start thinking in agile way then in the true sense they will be Agile. And the implementation process itself will be learning experience for you. You may face lot of obstacles, roadblocks, non cooperation from users, opposition or interference from higher management, as described below.
There are many practices under Agile umbrella – Extreme Programming(XP), Dynamic System Development Method(DSDM), Feature Driven Development(FDD), Scrum, Crystal, Adaptive Software Development, Lean Software Development. You can choose anyone, which you think is most suitable to you, after going through each in brief. For being Agile it is not mandatory to select one of these methodologies. Actually you can be Agile by using your own defined processes which fulfill the requirements of being Agile. Being Agile means having a process in place, which will allow you to follow iterative development with space for modification and change management. Each iteration should deliver a potentially shippable product.
Now you may think what defines a potentially shippable product. This is up to you. You can agree within your organization about it and follow the same, there is no restriction about it in the Agile approach. It may include testing the product, documentation with as much detail as required, designing of the front end and backend… anything.
Agile is about team work and self motivation. If you want to implement Agile then first you should educate the higher management about it. You have to teach them about its working and the changes it brings compared to the classic development approach. This is most difficult task, as the persons situated at higher positions are in business since many years and have following and adopting the classic approach with sufficient success. So they have certain level of confidence in that and would try their best to oppose the implementation of any new methodology, more so, if they were asked to lose their control over the team(employees) and there is no scope of work document to start with.
After management buys the idea of being Agile, then the next blockage will be finding self motivated team members who are willing to take responsibility and responsible enough to complete the job within specified time. In Indian conditions this criteria poses difficulty in building the teams, but you have to tell them the advantage of adopting this approach. But then the team member also may have their reservation about the classic approach. And if they have successfully completed few projects then they will be more reluctant to change. You have to work as a salesperson of Agile and convince them to adopt this. How you are going to do is completely up to you.
More in the second part of this….
Rajendra Tiwari
Certified Scrum Master
- rajendra's blog
- Login to post comments