In today’s reality, we are bombarded with new applications and IT systems. They are meant to relate to users’ needs so as they use the solutions more willingly and for longer. It forces vendors to be ready to often define new priorities, by adjusting their services to expectations of the evolving market.
Which operating model is effective in such circumstances? Agile! To be agile means to be able to quickly respond both to users’ needs and to actions of the competition or regulators’ requirements.
New methods of developing software were created as an alternative for the traditional approach, which did not allow for introducing changes quickly. They consist in supplying the product divided into small batches. The main assumption of such an approach – called iterative-incremental – is to provide the client with a simple, but working system functionality.
All of it so that:
- the users can use it as quickly as possible,
- the vendor can, as quickly as possible, start collecting feedback on the users’ needs and impressions.
It was strikingly illustrated by Henrik Kniberg:
The basis for efficient project management and developing software is the so-called Agile Manifesto. Its assumptions, observed at Enginiety, can be summarised in four points:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Agile approach is therefore oriented on daily communication in order to respond to the situations that hamper the progress of work as soon as possible. The key elements also include:
- option to redefine the priorities related to tasks performed and
- understanding the fact that the documentation is constantly changed, and it is more important to provide working software than prepare the documentation.
// Close relationships
In order to make the assumptions above possible to deliver, close cooperation between the team and the contracting party is necessary.The contracting party’s involvement at the stage of planning further steps and verifying the progress of work is necessary, as it is the people from the client’s side who know best the direction in which the product should be developed at a given time.
At Enginiety, flexibility in the process of developing software is the key to success, and partner-like approach creates an atmosphere that fosters work.
What makes the agile approach different from the traditional methods of developing software is also the time of delivering a functionality. Agile ensures that within short spaces of time (from 2 to 4 weeks):
- a “batch” of new elements can be provided to users (after it is approved by the contracting party)
- it is possible to plan another stage of activity – after the review meeting, the contracting party can decide to change the direction of work, by taking account of e.g. conclusions from user feedback or changing legal regulations.
// Benefits – when and for whom
To sum up, agile development of software works when we deal with:
- changing business or regulatory requirements,
- new risks defined during the project’s delivery,
- appearance of new technologies during the project’s delivery,
- introducing a new product to the market so that it meets the users’ needs to the fullest degree (quick feedback).
The main advantages offered by agile approach for the contracting party should include the possibility to:
- verify development of the software on an on-going basis,
- assess the course of the project at regular intervals,
- dynamically change the requirements – their priorities, scope, and sequence of delivery.
Projects delivered by Enginiety are based on agile methodology of developing software. The process evolves thanks to good cooperation with the client. Flexibility and readiness for change make the foundation of the process. Involvement of both parties allows monitoring of the progress and defining next steps better, which results in developing a satisfactory product.