What is Agile? History and Meaning
The Agile Manifesto
Historically, the "Agile Manifesto
" was the foundation of the widely used agile framework and ways of working in use by many organizations in today's world. It was written in 2001 by a group of 17 software engineers and was originally aimed at the software development process. The manifesto consists of the 4 values and 12 principles which are based on the incremental development frameworks that existed at the time.
The 4 Values of Agile
- "Individuals and interactions" over "Process and tools"
- "Working product" over "Comprehensive documentation"
- "Customer collaboration" over "Contract negotiation"
- "Responding to change" over "Following a plan"
In agile, more value is given to the items on the left than the items on the right.
The 12 Principles of Agile
- Customer satisfaction by the continuous delivery of product.
- Dividing large work into smaller and achievable tasks for fast completion and quicker incremental changes.
- Adhering to the decided timeframe of the delivery of the project.
- Ensuring all the stakeholders are actively participating to ensure correct completion of project.
- Create a collaborative environment to motivate employees to get work done.
- Preferring face to face communication over other methods.
- The primary measure of progress is the working product.
- Constant speed of development.
- Simplicity in the tasks.
- Promoting ownership and self-organization in a team.
- Maintaining the quality of the product by paying attention to the critical components.
- Constantly reflecting on the performance for continuous improvement.
These 4 values and 12 principles became the bedrock of agile ways of working in the modern age. They need to be considered carefully in order to implement agile successfully in any organization.
Why Agile? Background
Many companies are moving towards agile practices. The importance of agile in a the business environment has increased tremendously. We might even say for some organizations it has become a necessity because of today's demanding customers and todays fast paced, quickly changing world. Companies have to be able to adapt quickly to all kinds of changing market conditions. The ways of working that were used traditionally don't offer the flexibility which is required to adapt to today's business needs. Let's look into that in a little more detail.
The Traditional Way of Working
Until the end of the 20th century, IT companies were deploying a traditional working model, which is commonly referred to as the "Waterfall Approach". This approach consists of many sequential activities (one after the other) which need to be performed to complete a (software development). It starts with finding out and understanding the customer / product requirements and after the analysis, design, coding and testing, the final product is finally ready for deployment. The entire process could easily take several months or even years. it's important to understand that in this approach if the business needs are to be updated, this requires to go through a heavy process again to change even relatively small things.
Iterative Way of Working
In the 1990s, iterative methods, sometimes referred to as "unified software development process" were being developed. They somewhat improved the process, but they were still based on the traditional thinking and assumptions and didn't provide a true "light" framework to accommodate a collaborative, very flexible approach which was so essential to cope with constantly changing customer and business needs.
The Agile Way of Working
Agile has become that collaborative, iterative and lean mindset and project management framework that is now applied not only in IT, but also in business as a whole. It is an iterative method used by businesses where things are grouped in small batches so that less resources are used. Improvements and change requests in the product are added in the next iterations. One of the best parts of agile projects is that it allows constant feedback from users after each iteration. This allows the organization to deliver the best product possible according to the user requirements.
Let's look at a simplified example. Suppose we need to deliver some software or business solution to a customer. We start by asking what are the most important features that will be needed. In the first iteration we will work only on the say 2-5 features which are critical for the software and after the first iteration the software will be ready with those features. Then you will take user feedback on these features. In the next iteration you will try to implement the most important user recommendations and add more new features to the software. Etcetera. Note that this process is really more collaborative (working together) then like a customer-client relation.
This iterative, collaborative process helps us to update the business needs (requirements) in every iteration in less time.
Current Fields of Agile and Agility
Although as discussed "agile" derived from the software world, later on it's scope was widened to many other fields and levels, including Agile Project Management
, Operational Agility
, Organizational Agility
, Strategic Agility
and even Portfolio Agility
Darrell K. Rigby, Jeff Sutherland and Hirotaka Takeuchi, "Embracing Agile", Harvard Business Review, May 2016.
"4 Values and 12 Principles of Agile Way of Working", Kissflow, July 2020