Do you know the history of Agile?
Agile is about teamwork, transparency, and technical excellence. No matter what your experience with Agile practices and techniques, the foundation for Agile methodologies is rooted in best practices positioned to enable collaborative environments where diverse teams can continuously learn, improve, grow and produce.
According to Gartner, agile development is seen as a way for CIOs adjust to a new way of doing business, and Gartner believes IT leaders and executives need to adopt this approach as quickly as possible. In fact, Gartner's research finds there are 10 guiding principles that should motivate enterprises to go Agile in 2016.
Agile development methodologies are a set of approaches to software development that share a common philosophy but are sharply distinguished in the details of their implementations. Agile development methodologies tend to be adapted to different sorts of problems. Sophisticated organizations with a lot of experience may well use more than one agile development approach, but an organization that is getting started should select one approach and master it before attempting other approaches.
So, do you know the history of Agile?
February 2016 marks 15 years since the penning of the Agile Manifesto - also called the Manifesto for Agile Software Development. It is a formal proclamation of four key values, which later inspired 12 principles to guide a people-centric approach to software development.
Written in 2001 by a group that included thought leaders in the software industry, the Agile Manifesto established a common set of overarching values and principles for all of the individual agile methodologies at the time. The manifesto details four core values for enabling high-performing teams.
- Individuals & Interactions over Processes & Tools: Processes and tools are important and are naturally a part of any project. But they will never usurp the value of the people on the teams. Each individual on the team has their own skills and characteristics that they bring to the team. However, regardless of who has written what, the team works together and owns the software. It's not attributable to any one individual. The team succeeds or fails together.
- Working Software Over Comprehensive Documentation: We've all been there; a 25-page specification document that no one will ever read in its entirety and few will look at 5 minutes after it's delivered. No one anywhere is suggesting that documentation is not important. But what Agile would like is for the documentation that is produced to be tied to specific customer value. Whenever we evaluate any work in an Agile project, we always want to consider the value to the customer. Documentation is no exception.
- Customer Collaboration over Contract Negotiation: The closer you are to the customer, the better. It is very difficult to completely build a view of something now that no one has seen let alone the customer. In fact, the customer may not even know what they want. When is it better to find out that your requirements may not be what you really want? During the project when you can do something about it? Or at the end of the project when it might very well be too late to do anything about it in a cost efficient manner? That is why collaboration is so much more preferable than contract negotiation.
- Responding to Change over Following a Plan: Typically, project planning is done at the beginning of the project when we know the least about the project. It stands to reason that as we gain knowledge, the plan is going to change, or should change, to meet customer need. Just as the team gains knowledge, the client does as well. Staying close to the client and collaborating frequently, ensures a better product.
The Agile Manifesto was penned in Snowbird Utah. Many people started their Agile education when the Manifesto of Agile Software Development was written but, in fact, the groundwork started many years prior to that event. Incremental software development can be traced back to the 1960's however the move to lightweight development methods really evolved in the 1990's.
An integral component of the agile methodologies is the concept of continuous delivery. Agile methodologies are predicated on continuous engagement with business managers and users, and lead to the delivery of a continuous stream of new and modified software into the operational environment. This demands significant changes in working practices for both business governance and relationship management and the infrastructure and operations teams.
The full benefits of Agile cannot be achieved without engaging with business leaders, management and the user community. If the rest of the business does not have an immediate appetite for working in a new way, careful planning and communication will be needed to bring different communities of managers and users on board.