What is Agile?
Agile framework is defined by different sources differently. There is no one right or wrong. Below are few thoughts on Agile to understand it.
As defined by Wikipedia:
“Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle”
As per Highsmith 2002
“Agility is the ability to both create and respond to change in order to profit in a turbulent business environment. Agility is the ability to balance flexibility and stability”
In 2001, a group of 17 “lightweight” methodologists met in Snowbird, Utah, to discuss their approaches to delivering software. After much discussion and the ways in which they were creating software, the Agile Manifesto was written.
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.
In addition to above Agile Manifesto, there are 12 principles. The Agile Manifesto was written along with a set of 12 principles to guide teams. Below are the 12 principles.
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- This principle underscores the focus of delivering value to the customer. At the end of the day, it is this philosophy of customer satisfaction that drives agile teams.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- By allowing for change, we can be certain that we’re building products that help bring value to our customers.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- This principle specifies the time-box as a way of delivering continuously to the customer.
- Business people and developers must work together daily throughout the project.
- Business people, or stakeholders, represent the business needs for a product. Therefore, when business people collaborate with developers, they ensure that their business interests will be better met
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- In agile projects, teams are said to be self-managing within the time-box; that is, while building product during the iteration, they should be able to have all the necessary resources
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- This statement refers to replacing some documentation with words. Instead of writing detailed design specifications, for example, the team members will work together to discuss and explore ideas
- Working software is the primary measure of progress.
- There is no better way to understand the status of our project than by inspecting the current state of our system. By having a look at the product as it’s being built.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Working at a sustainable pace is important to the quality of life for everyone involved in the project. Not only the quality of life, but the quality of the product
- Continuous attention to technical excellence and good design enhances agility.
- Professionalism in anyone’s craft is paramount. Technical professionals who write software based on good, simple design are able to respond to change quickly and effectively.
- Simplicity—the art of maximizing the amount of work not done—is essential.
- Simplicity is the anti-gold-plating mechanism of agile. Agile teams only build what the customer wants, and no more.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- The collective wisdom of a team magnificently outweighs the wisdom of one individual.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
- This principle discusses the need for process tuning. Agile teams retrospect in order to determine which processes are working well and which are not.
Preparing for PMI ACP® Certification? Pass in 1st attempt through Whizlabs PMI – ACP Training Course! Start with Free Trial!