The new millennium brought with it a revolution in the IT world. This revolution is called Agile. With a series of articles we will deepen the topic to explain why our company has adopted agile culture and applies a framework that is based on it at all business levels, not just in software development.
WHAT DOES AGILE MEAN?
Agile culture was born in the late 1990s, in the IT world, to respond more readily to the changes in the product line.
Like any cultural movement, the agile culture is represented by a manifesto that enunciates its principles and values. In 2001, 17 designers and guru of computer science, who for many years worked “agile”, signed and published the Agile manifesto.
The Agile manifesto, however, does not want to create a new work process through practices to follow but is born solely to meet growing demands in complex domains such as software design. This is an activity exposed to a high degree of variability and sudden change. Agile is the ability to adjust the course with minimal effort, while maintaining the goals and quality.
Over the years, Agile’s philosophy has evolved into a multitude of methodologies that allow customers to get continuous feedback, which becomes the central point of the project and team, so teams can modify and improve the product. Thanks to the various Agile methodologies, development teams can continually improve the product according to the customer’s real needs, leading to an increase in the software’s final value. The improvement is continuous and fulfills the customer’s real needs step by step …. (the speech of the value increase)
VALUES OF AGILE CULTURE
As we have seen before, Agile culture has been formalized and signed into a poster that contains its principles and values.
The values on which this methodology is based are four and serve to mitigate the issues that arise in software development. These are heuristic values, as the concrete application differs from project to project:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
PRINCIPLES OF AGILE CULTURE
These four values are followed in the manifesto by the following 12 principles:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
In summary, the principles outlined above show that the agile method is based on:
- The creation of small incremental units that bring value to the final product and make it easier to modify;
- The importance of communicating with the customer but highlighting the need to prefer face-to-face communication to eliminate misunderstandings;
- Priority-based development, each feature is assigned a degree of priority, which may vary during work;
- People, who need to be highly motivated, embedded in a dynamic, invigorating working environment and must be well prepared;
- Self-organized and cross-functional teams that analyze their work method and improve it in the way.
Agile is an alternative to the software development models used so far. Among them, the most famous and diffused is the waterfall method. Let’s see the differences between these two organizational models of work.
AGILE VS WATERFALL
The waterfall method is a design or software development model consisting of several phases, sequentially executed.
This methodology was born in the 1950s and became successful in the 1970s, so that it is increasingly applied until it becomes an integral part of software engineering.
It is a linear development approach consisting of specific phases such as collection and analysis of requirements:
- Product development
- Verification (or validation)
In practice, this methodology argues that complex systems such as software development can be built into a single workflow without reconsidering project ideas or requirements in view of changing business or technology conditions. So, the customer is involved in the project only at the beginning, for the acquisition of the information and at the end for the presentation of the software and its features.
For this, over time, this approach is slowly abandoned in favor of more articulate and flexible (eg agile model). The benefits that new models bring, expose the limits of this old model, which is labeled as “problematic” and “limitative”.
In spite of everything, it is still used by some advocates of its effectiveness, but many have now been considering it as an ineffective solution.
The agile method, instead, is based more on interactions between people, team members and customers, and on the development of flexible code.
The goal of this philosophy is to reduce the risk of bankruptcy of the project, encompassing software development in limited time span called iterations, which can last from one to four weeks. Each time window represents a real project with a specific planning, requirement analysis, design, testing, and deployment. In practice, each iteration is intended to release a small increase that increases the functionality of the software.
The peculiar feature of this new model is the fact that you prefer a real-time communication with the customer / customer. It also fits easily to the complexity of the system thanks to:
- Transparency, each member of the development team knows what other developers are doing
- Iterativity, presentation and feedback on the constant increase
- Self-organization, teams can self-organize their work, thanks to transparency.
Interlogica has adopted the Agile philosophy for years and has led us to reach a state of “agility”, that is, a state of high reactivity, speed and ability to adapt to an organization. Thanks to a small step process, Agile makes the team produce the software:
- In shorter time periods,
- Reducing production costs
- Reducing the risks
- Ensuring greater customer satisfaction.
Agile was born specifically to answer some of the issues that some developers and guru of informatics encountered during their work, but with the passing of years, this methodology has also taken hold in areas far from that of IT. In the next articles, we will see which sectors might benefit from this methodology and those that have already begun to use it.
Here at Interlogica we are dedicated to the dissemination of this new business philosophy, which can bring improvements to all levels, from design to marketing, so we are also organizing a Meetup event in Venice on May 15, get more information and subscribe!