Discover the key facts and figures on the Agile development and how it fosters the world of constant change
We don’t need an accurate document, we need a shared understanding
Jeff Patton, consultant, teacher, and Agile coach
One of the biggest issues in management in the last few decades has been answering a very difficult question: is it possible to have precise and disciplined execution and at the same time the constant innovation? A bit more than 10 years ago, a highly unlikely group of people, (that you would never imagine solving management issues) created a mindset that offered a new prospective to the work flow and organization. They were the software developers, also known as computer geeks.
Join us as we take a quick look at the origins of Agile.
The main problem that software development suffered in the 90ties was the profit loss due to the constant delays, over budgeting and quality issues. Even though the developers tried to work harder, meeting the deadlines and fixing bugs still remained an unsolved mystery, while their work flow has often been accused of being bureaucratic and slow. But a small group of developers met in the winter of 2001 at the Snowbird, Utah, to discuss lightweight development methods that would enable teams and organizations to promptly react and adapt to changing requirements and technologies. They realized that the key to successful development strategy lies in embracing change, and more importantly fostering it.
And so the famous (or infamous) Agile manifesto was born, and we bring it here below:
Manifesto for Agile Software Development
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Basically, the term Agile refers to a numbers of lightweight software development methods such as Scrum, Extreme Programming, DSDM, FDD, Crystal, and Adaptive Software Development. We can sum it up in a work approach that emphasizes up-front planning and precise requirements, teams empowering, collaboration, early testing, and, most importantly, the frequent delivery of working software in short, rapid iterations.
By focusing on the repetition of abbreviated work cycles agile is often described as iterative. In waterfall model (in which progress is seen as flowing steadily downwards, like a waterfall, through the phases of Conception, Initiation, Analysis, Design, Construction, Testing and Maintenance), the team has one chance to get each aspect of a project right; on the other hand, in agile every aspect of development — requirements, design, etc. — is continually reviewed, giving the possibility to change direction at any time.
Inside the Agile methodology
The crucial part of agile approach is its itinerary and incremental nature that allows early recognition of issues and benefits, fostering at the same time continuous project development and improvement. Let’s take a look at some of the key principles of agile:
- Work & product quality – regular testing throughout the project lifecycle allows inspection and necessary adjustments very early in order to adopt changes and avoid bugs
- Transparency – team collaboration during the product development and visibility for clients, who can interact at any moment helps arrive to the desired results in a more efficient way
- Agility/flexibility – accept and encourage change from the early stages up to the project delivery
- Extreme Teamwork – going beyond cooperation, and embracing collaboration mode, where team members can build off each other’s strengths and knowledge to create exceptional work, beyond their individual abilities
We guess that you’ve already recognized some parts of your work approach in these points. The beauty of agile lies in the fact that you’re free to choose some aspects of it that suit best for your team needs. The cooperation and collaboration make team work a much more enjoyable, and reducing long status reports and management committees will render the work flow more fluid, empowering the team to make important decision.
But let’s be honest: if the team is lazy or it’s not skilled the agile method will not help. But if your team has the right technical skills, agile techniques might just be the right approach to let emerge the team’s best qualities, to improve motivation and performances. To conclude, the key factor for a successful project may not be the Agile method itself, but the concept of agility: adopting a mindset that allows your team to react and adapt quickly, to plan and take decisions together towards a functioning and quality product.
Agile isn’t a methodology. Agile is a framework or frame of mind. Feel free to explore.