Marco Cerri

by | Oct 15, 2018

Tech inside: Agile software development (Part 2).

Want more awesome content? Sign up for our newsletter.

Meet the expert.

In the previous post, Imagicle R&D Manager, Marco Cerri, explained the reasons behind the adoption of the Agile development methodology within his team.
This time, he’ll talk about a crucial figure in the interaction between the development plan and the final customer, the Product Owner.
He’ll explain how to break the development work into small increments and how to keep product quality intact through continuous automatic testing and a development strategy capable of responding flexibly to change.

Don’t waste your talent. Discover Agi(c)le.

The key figure between request and solution design: the Product Owner.

What did we want? We wanted the advantages of the Agile method, an exact work structure, appropriate production times, automatic tests, technical excellence, a very high production quality.
But how to do that while maintaining an attentive and dedicated dialogue with the client?
The Agile method requires that, within the customer’s company, a “bridge” figure is identified as the spokesman of the needs of its reality, capable of evaluating the solutions that the development team offers to realize.
This figure is named Product Owner, PO to his friends.

Well, here at Imagicle we have introduced a PO figure that, although part of the company, has direct contact with customers and is equipped with the necessary sensitivity to understand their needs.
This figure, together with a team dedicated to product design, has allowed us to adopt a methodology that, if applied with dedication, gives outstanding results.

Talking about the Product Owner

Trust your people: change your vision.

Adopting a new development method it’s not a small change, and it takes a great deal of courage.
Nowadays, when work increases and success rises accordingly, many software houses are adversely affected by poor organization and less and less control over product delivery times.
They try to react to the increasing demands of customers with a higher speed of realization, but to the detriment of the control of the quality. 
Often, in these cases, the test of the applications or the design of the product is reduced, as time-consuming activities that are wrongly thought to be negligible.
 
Inside Imagicle, “Agicle” has kept all this on the right track. But not without effort.
His introduction required significant time, exceptional attention to detail and change in the vision of the development team, making it more responsible and giving it much more autonomy.
People are more important than processes and tools, and the key to this change is that everyone feels the direct responsibility for the quality of work and the needs of customers.

Don’t get lost in the process: Test Driven Development.

In order to adapt to changes quickly and effectively, we have simplified the design phase by avoiding deciding in advance, in the initial stage, all the detailed requirements of a project. 
On the contrary: the team must be able to delineate and improve them during implementation
In this way, the changes that we inevitably meet along the way are easier to integrate.
 
The reaction to change, however, can not be separated from a check on the quality of what has already been developed. This is why a fundamental step in this process is to adopt a test-driven approach, commonly called Test Driven Development.

Anyone who is in charge of developing a new part of the software must first write automated tests that determine its correct functioning following an iterative method. 

Here is the proper procedure:
1. write a failing test;
2. write the code that makes the test turn green;
3. check your code for refinements (refactoring);
4. restart the iteration with the following test.

Your work is finished when all significant tests are written and green.

While ensuring a high degree of confidence in making changes, this procedure implies adopting a way of thinking opposite to what, generally, a developer learns during school education.
However, although at first it may feel not very natural, it’s the most decisive factor in achieving quality and certainty in terms of production times.

A daily commitment: the stand-up meeting.

Sometimes, small acts can make the difference.
In fact, it all starts with a simple but effective meeting held every morning, in which attendees participate while standing (as they say, no pain, no gain!).
Each member of the development team must say what he did the day before, what problems he encountered and what he’ll do today.
It may seem trivial, but this is the first step I suggest to take to those who intend to adopt an Agile development process.
It fosters communication within the team and helps to coordinate efforts and mark everyday work.
All in just one minute.

Finally, I would like to mention a number that can give an idea of the extent to which this change has brought us benefits. Every day, when one of us adds a new feature or fixes a problem, over 100,000 automated tests are performed across the suite to ensure that no issues arise. If they are not all positive, it’s not possible to release a new version of the Imagicle ApplicationSuite.
The accuracy of the tests produces tangible results. Although the turnover grows in double figures year over year, the support cases maintain a trend with almost zero growth.

While YOY turnover increase, support cases have almost zero growth.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *