Agile, which emerged as a software development method in small teams, today becomes a new management culture for large companies.
Agile is a philosophy that was invented in February 2001 by a group of 17 enthusiasts at the Snowbird ski resort. Among them were mainly representatives of the IT-sphere. As a result of an active discussion on how to avoid problems when developing software, a basic set of ideas and principles was adopted, which became a manifesto of flexible development – “Agile Manifesto”.
Agile relies on the totality of values and principles laid down in the Agile manifesto.
– 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 twelve principles of agile development include:
- Customer satisfaction through early and continuous software delivery – Customers are happier when they receive working software at regular intervals, rather than waiting extended periods of time between releases.
- Accommodate changing requirements throughout the development process – The ability to avoid delays when a requirement or feature request changes.
- Frequent delivery of working software – Scrum accommodates this principle since the team operates in software sprints or iterations that ensure regular delivery of working software.
- Collaboration between the business stakeholders and developers throughout the project – Better decisions are made when the business and technical team are aligned.
- Support, trust, and motivate the people involved – Motivated teams are more likely to deliver their best work than unhappy teams.
- Enable face-to-face interactions – Communication is more successful when development teams are co-located.
- Working software is the primary measure of progress – Delivering functional software to the customer is the ultimate factor that measures progress.
- Agile processes to support a consistent development pace – Teams establish a repeatable and maintainable speed at which they can deliver working software, and they repeat it with each release.
- Attention to technical detail and design enhances agility – The right skills and good design ensures the team can maintain the pace, constantly improve the product, and sustain change.
- Simplicity – Develop just enough to get the job done for right now.
- Self-organizing teams encourage great architectures, requirements, and designs – Skilled and motivated team members who have decision-making power, take ownership, communicate regularly with other team members, and share ideas that deliver quality products.
- Regular reflections on how to become more effective – Self-improvement, process improvement, advancing skills, and techniques help team members work more efficiently.
Based on these principles, we can say that the Agile method is what teams and businesses need to strive for in the process of work, but do not say how. Basically, “Agile Manifesto” is the philosophical reincarnation of the Scrum toolkit, with the exception of the third principle. The third principle clearly shows how much the pace of business has changed in 16 years.
What is Agile project management
There is a classical approach to the creation of products and services, known as the waterfall development methodology. With such a development scheme, the approved software product plan is not subject to change before it is implemented.
Agile methodology embodies the approach of innovative rethinking of the creation of a new product or service. It is based on a very simple idea: each participant in the process, each employee should be involved in the process of rethinking his tasks and the common cause. Everyone can stop the process and make their rational proposals. At the same time, participants have the usual competencies. This approach makes it clear that they all work for the same ultimate goal – a quality product for their customers.
How and why did this approach appear?
The emergence of this approach has become a solution in such issues:
- A customer can not form a clear requirements for the software;
- New technologies have increased competition and demanded operational application in business;
- Customers and software developers are not satisfied with the process of interaction.
There are situations when sometimes at the beginning of the project a customer can not formulate exhaustive requirements for the product. There are several reasons for this:
– customer has only the idea of the application and it does not represent all its functionality;
– project team has a different view of the functionality of the application;
– team can not agree on how it will be more convenient / more reasonable to implement this or that part of the functionality of the application.
One of Agile’s principles is to use prototypes and make product shipments as often as possible. This will remove the uncertainty in the requirements and verify how the real users will work with it. In Agile, the reaction to change is more important than following a plan. Agile is welcomed when the customer and users make new demands to make the product more competitive.
It happens that new technologies increase competition and require operational application in business. The Agile approach provided the business with the main advantage – fast delivery of new functionality. This allowed each month to release the product and get feedback from users on-the-fly.
How to solve the issue, when customers and developers are not satisfied with the process of interaction. The main idea is agile – cooperation with the customer is more important than contractual obligations. And so agile methods tend to reduce the amount of documentation. This allows the customer to pay only for the result, which has value for business.
At the same time, agile does not refuse to formulate requirements. The customer (in agile – the owner of the product, product owner) makes demands in a simplified form and on the scenarios of the users’ work.
How to apply Agile
Agile is not just a methodology for creating new software, but a system for flexible development planning for the entire company. The company must have an infrastructure that also responds flexibly to requests from customers and requirements that change during the development of the software product and its operation (this, by the way, implies a total transition to cloud technologies).
For flexible planning, you need to understand and analyze each business process. And this is the next stage of the company’s development – its digitalization.
For a modern digital enterprise, there should be three components: the agile development methodology, the agile infrastructure and the analytics of large data.
How can classical enterprises introduce the philosophy of Agile? What needs to be done to turn the disparate departments of a large company into a team of like-minded people, as in start-ups?
Leadership and responsibility are the only solution. The leader must first of all bring himself something new to the company every day, and this desire for innovation will become the foundation of the corporate culture of the organization. Innovative culture is laid in the principles of forming a team of managers, the topics of discussions that occur at all meetings, setting strategic objectives, mission and vision of the company. And without this in any way.