Agile – The agile means able to move quickly and rapidly. Precisely the ability to both create and respond to change in order to fulfill the fast paced dynamic business environment refers to agility.
Agile software development refers to a set of protocols for building software under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams. It advocates adaptive planning, early delivery, evolutionary development and continuous improvement, and it also encourages rapid and flexible response to change.
The big question is when to use Agile. The world is moving towards Agile and one of the study shows that majority of companies would be very much Agile by 2020 and if not, it would be very difficult for them to survive. Although Agile adds value to process stream in most case while there are certain situations where it may not be apt.
While moving towards agile, one should evaluate following answers to below questions
- Requirement Definition – Changing or Constant
- Experience and Skills of a Team – Highly skilled or Newbies
- Change – Frequent changes or Less
- Resources – Dedicated or floating
- Timelines – Fixed or Flexible
- Documentation – Less or more
- Customer Involvement – Continuous or Intermittent
- Physical Location of resources – Co-located or Distributed
The mission critical applications or products probably still better be on waterfall or traditional model. Probably the 8 points mentioned above should be given a thought before taking a decision of choosing the right set of processes