As Peter Drucker, a theoretician and the father of modern business management once said, “most of our assumptions about business, technology and organization are at least 50 years old. They have outlived their time. As a result, we are preaching, teaching and practicing policies that are increasingly at odds with reality and therefore counterproductive.” People who keep up-to-date with our blog understand that we often focus on the rapid changes in management techniques, and the trends that flow from those changes. This post will deal with the agile methodology, which is one of the responses to the dynamism of contemporary management theories.
>> Recommended reading: Data Analysis: Take advantage of the data all around you
The emergence of the agile methodology
Since its inception, the software development industry adhered a basic, traditional methodology. In it, these phases are followed sequentially: the survey and analysis of requirements and needs, architecture design, implementation, testing, production and maintenance. Although technically correct, this methodology is seen as being unnecessarily rigid. By formalizing the process to such an extent, it prevents a product’s development from proceeding at speeds needs by the developer’s customers.
Many companies also once used the Waterfall (or “cascade”) method, and some still do. It is one of the most traditional project management techniques. In this approach, which emerged in the 1970s, progress flows in one direction, sequentially. But the model can generate a lot of management problems since the work on each step only begins when the previous one has been concluded.
As the software industry grew and matured, problems with possible divergences between customer requirements and product deliveries began to emerge, and the need to find new solutions started to become more evident. It was at that point that the agile methodology was developed. This method had, as its name implies, the goal of streamlining the process of development, especially with regards to the use of the software/product by the end-client.
In response, a group of programmers published the Agile Manifesto in 2001, which advocated a methodology that aims to satisfy customers by delivering needed software versions more rapidly and frequently.
In this method, versions of software could be published, or delivered to the client even when they were not quite complete. Further development could alter the software according to the client’s needs and the demands of other interested parties. Otherwise, the delivery of a final product could take so long to complete that it could become obsolete before it was even ready.
After all, it’s preferable to be able to deliver a product, which can then undergo adjustments and improvements with time, then it is to finalize the product to such an extent that its development may be overtaken by other market competitors. You can get a clearer idea of this notion by looking at the image below:
Illustration by Henrik Kniberg
>> Recommended Reading: All about continuous delivery
The Agile Manifesto
The agile methodology’s manifesto is composed of four main principals, as set forth below:
- “Individuals and interactions over processes and tools.”
- “Working software over comprehensive documentation.”
- “Customer collaboration over contract negotiation.”
- “Responding to change over following a plan.”
The authors also included their guiding principles together with these last four points. They involve such considerations as prioritizing the customer’s needs through the “early and continuous delivery of valuable software,” the acceptance of “changing requirements,” the commitment to “deliver working software frequently, from a couple of weeks to a couple of months,” among many others.
The manifesto proposes a more flexible, less bureaucratic approach, which welcomes changes even during development. Of particular note, is the fact that the manifesto does not eschew a formal approach, rather it advocates a level of fluidity that wasn’t present before, prioritizing flexibility in the development process.
>> Further reading: Global trends in talent management, according to Deloitte and McKinsey
Shortly after the publication of the manifesto and the consolidation of the agile methodology, the development techniques began to be applied outside of the limits of the software industry. Today, the tools and philosophies of this new school are used in companies and organizations in a number of other areas. Its increasing popularity eventually led to the creation of subcategories in the agile management methodology.
There are currently dozens of these subcategories, and each has its peculiarities. Here we’ll focus on three of the most important.
Agile methodology subcategories – also known as management frameworks
1. Feature Driven Development
Usually abbreviated as FDD, this type of agile methodology was conceived between 1997 and 1999 by Jeff De Luca in Singapore. Tasks are broken down into small functionalities, pulverizing the work. It is composed of 5 basic principles:
- Develop an Overall Model
- Build a Features List
- Plan by Feature
- Design by Feature
- Build by Feature
The advantages of this form of agile management arise mainly from the fact that each feature is very much a minimum unit of the total project. This means that every task, description, test and change is always minimal, giving the process a higher level of agility while costing less time and human input.
2. eXtreme Programming
Also known as XP, this type of agile management was created in 1997 to focus primarily on engineering practices. Hence, it is more common in software development. It aims to optimize the quality and response to the customer’s needs and requests. Its principles include:
- Simplicity: Remove functions that are considered unnecessary
- Feedback: Frequent contact with the customer, testing the product and receiving suggestions
- Changes: Constant adaptations in the product until the final stage.
The XP method is ideal for situations where customers do not know precisely what they want. Through constant support from experts, greater agility is achieved in product changes.
Created by Jeff Sutherland in the 1980s as an interactive and incremental development process, this is one of the most popular methods of implementing the agile methodology. It is based on breaking development into parts that can be completed in periodic sprints, with fixed stand-up meetings to track progress and discuss changes. Sprints usually last from two to four weeks, with meetings held daily (in 15-minute daily-scrums).
The methodology has as its primary characteristic the human component of the development process. Among its advantages is the possibility of working with a lower level of customer participation. Scrum also keeps teams motivated and results more refined by prioritizing quality over shorter deadlines.
4. Stack methodology
Franklin Valadares, the CTO and co-founder of Runrun.it, tried to implement several agile methods by the book when managing teams for a mobile development company. But he saw those processes as being too rigid and complex, and their implementation always suffered setbacks and were received with a lack of enthusiasm by employees. He, therefore, created the stack methodology as an alternative, which proved to be much more successful in motivating the teams’ participants. The methodology aims to fit diverse activities or projects into the teams’ routines, ensuring continuous delivery, a fundamental principle of agile. In this technique, tasks with more significant impacts or returns are prioritized, thereby optimizing the use of time.
This method was initially developed in Japan by Toyota in the 1960s, and has the purpose of controlling production or transportation flows in an industry. The technique uses cards on a whiteboard (kanban-board) to visualize and control production or transportation flows in an industry. Among its advantages are the improved management of inventory levels, the facilitated visualization of the steps in each process and significantly reduced bureaucracy. Learn about our RR-Board®, a unique feature offered by Runrun.it, where kanban is applied intelligently.
>> Recommended readings:
Focus on work and have more time for your life
What is Backlog: the list that helps you refine your product development
Agility at your fingertips
Do you want to apply the agile methodology’s precepts to your company? Why not take advantage of one of the most modern management softwares on the market? Using Runrun.it, you can manage your teams, organize your tasks and set your development priorities. Once the principles of the agile methodology are in place, it becomes far easier to practice the specific management techniques which best suited to your business. Sign up for a free trial at http://runrun.it