-
Winds of Change
Much is heard about Agile, Agile project management or the “Agile methodology” as something from the 21st century, but actually, the origin and Agile values began to take shape a little earlier. The 90s were a very interesting decade, MTV had its best moment, the Grunge music invaded the radio and the Internet came to the life of the masses. Along with the Internet boom, the way of making software changed completely, companies began to learn how to create software on a large scale and for interconnected users all over the world, which brought new demands. In the search for success, many of these companies began to import “good practices” from other industries expecting good results, which in the end were mixed in many cases (see Waterfall Model).
Many electromechanical systems were already beginning to be replaced by electronic systems, and sometime later the software began to have more and more relevance, but the development and interaction of these elements were trapped in predictive models that tried to know all elements involved in a system of beforehand, which were (and still are) very difficult to establish at the beginning of software projects with high levels of uncertainty, which has since caused very long development periods with hard-to-predict end dates. This situation led to the frustration of many leaders, who despite the situation were creating and adapting their own techniques, methods, and frameworks to the traditional models of development, which eventually gave rise to the first winks of Agile thinking.
Agile is born
After several previous meetings, in February of 2001, a group of professionals had a new and now famous meeting whose main contribution was The Agile Manifesto. This manifesto was written and signed by seventeen software development leaders (now known as the Agile Community). Their document gave a name to how this group was developing software and provided a list of Agile value statements:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
And this group added:That is, while there is value in the items on the right, we value the items on the left more.
You can know more about history and the original manifesto at agilemanifesto.org
In particular, these opinion leaders looked for ways to quickly build functional software and put it in the hands of end users. This quick delivery approach provided a couple of important benefits. First, it allowed users to get some of the business benefits of the new software faster. Second, it allowed the software team to obtain quick feedback on the scope and direction of software projects on a regular basis. In other words, the Agile approach was born.
Behind the Agile Value Statements
You already know the list of value statements, but let’s see what are the reasons behind them:
Value people and interactions over processes and tools. Those of us who have a path in the development world know that a team with great people works well even using mediocre tools also these teams always overcome other dysfunctional teams with mediocre people who have excellent tools and processes. If people are treated as disposable pieces there will be no process, tool or methodology capable of saving their projects from failing. Good development processes recognize the strengths (and weaknesses) of individuals and take advantage of it instead of trying to make everyone homogeneous.
Value software that works over the comprehensive documentation. Because it leads us to have incrementally improved versions of the product at the end of each iteration. This allows us to collect early and often, some feedback about the product, and the process allows us to know if we should correct the course of action, make adjustments or move forward with the same vision. As the developed software grows with each iteration, it can be shown to the probable or real users. All this facilitates the relationship with customers and improves the chances of success.
Value the collaboration with the customers over contracts negotiation. Because in order to create Agile teams we must seek that all parties involved in the project work to achieve the same set of goals. Contract negotiation sometimes conflicts with the development team and the customer from the beginning. I think the multiplayer online battle arena games are a great example, personally, I like games like Heroes of the Storm o League of Legends. These are cooperative games where teams with five members are formed, the objective is that the team must destroy the base of the enemy by working together. All players win, or all players lose. These matches are surprisingly fun, and what we would like, for software development teams and customers, is to come together with this same attitude of collaboration and shared goals. Yes, contracts are often necessary, but the terms and details of a contract can exert a great negative influence on the different parties involved, and turn a collaborative environment into an inner competitive one.
Value responding to change over following a plan. Because the main objective is to provide the greatest possible amount of value to the project’s customers and users. In large and/or complex projects, you will find that it is very difficult even for users and/or customers, to know every detail of each feature they want. It is inevitable that users come with new ideas, or that they decide that some critical features initially are no longer so. For an Agile team, a plan is a vision of the future, but many points of view are possible and environmental factors can change over the time. As a team gains knowledge and experience about a project, the plan should be updated accordingly.
With the four Agile Values Statements from the Agile Manifesto in mind, I think you can begin to understand what it means to have an Agile approach to estimating and planning.
Sorry about my English I’m not a natural speaker (don’t be grumpy, help me to improve 🙂 ).
Related links:
To agility and beyond: The history—and legacy—of agile development
What Scrum Master Certification to Choose?
These are some books to know more:
Emmanuel Herrera
IT professional with several years of experience in management and systems development with different goals within public and private sectors.
Emmanuel worked through development and management layers, transitioning from developer and team development leader to Project Manager, Project Coordinator, and eventually to Scrum Master, Product Owner, and Agile Coach.
Some certifications include: PSM, PSPO, SSM.