Agile or not?
The concept of agile software development has been around for a long time already. It has similarities to lean manufacturing, the management philosophy started at Toyota. In product development, lean and agile are generally under one roof, and they are treated as a single approach.
Agile software development is, in brief, a methodology that makes a project’s activities transparent and ensures that projects produce things that are actually needed. The different stakeholders can follow what is happening all the time and can steer things in the direction they want. Things are done in order of importance and based on business needs. There is close collaboration between everyone involved, and process transparency is the most important thing.
“Agile” means that the development team responds quickly to needs and changes during the development process. They don’t work in isolation but collaborate on providing new working solutions to the stakeholders and peer teams. As a result, the project stakeholders and owners have better view on what has been done and can give feedback immediately.
At the beginning of a project, you don’t always know what you really want. You think you do, but as the project progresses and solutions begin to emerge, you notice that market needs are different or have changed. This requires a “change of course” in the software project.
Starting with agile
Agile software development has been in wider use at Espotel for some years, and it has spread within the company. Clear benefits can be observed. It has affected customer satisfaction, for example.
I became better acquainted with the method from 2009 to 2011 in connection with an ongoing project. After that I was involved in promoting the benefits of agile first in the Espotel organization and then in a couple of Espotel’s customer organizations. Many companies have adopted agile methodologies during the last few years, which has also speeded up its implementation in daily work at Espotel.
Scrum is the best known and most commonly used agile development framework. Scrum is originally defined for software development. Because Espotel works on devices – electronics, mechanics and software - pure Scrum methodology cannot be applied in all projects. It doesn’t make sense to follow a certain methodology too strictly; it’s better to adapt it as needed.
We use Scrum framework in pure software projects, where pure Scrum fits. But if we are also doing electronics or mechanics design, we don’t stick strictly to Scrum. Instead, we also consider other options and methodologies and use, for example, kanban or just work according to similar principles like lean.
In electronics projects, iterations typically require more time because of the production of new circuit boards. This means that we can focus more on improving the chances of successful project completion, which is familiar from lean manufacturing. We try to minimize unnecessary work, but we can, on the other hand, simultaneously design and evaluate two solutions side by side. If we are not sure which one will work, this reduces the risk of problems and speeds up the process. This ensures timely project completion and often reduces costs dramatically.
It’s also essential to include verification in the development process right from the beginning. The functionality and quality of the design is determined through the tests. This tells us if we have reached our goal. Minimizing the number of half-ready features is essential.
Learn from others
Espotel collaborates with companies that are from various industry sectors and are sometimes very different in the way they operate and are organized. This gives us excellent opportunities to compare the different ways of doing things.
Some companies might apply agile development a bit too dogmatically. The methodology calls for certain meetings, but it makes no sense to hold them just to follow the “rules”. People may be following the “rules” of the methodology but not getting things done in an agile way.
A professional “trainer” is usually necessary to start a project effectively. It’s important to check carefully whether things are being done in a truly agile way, in the original sense of the word. Success and improvement can also be measured. Continual improvement is an essential part of the concepts of agile and lean management. There are tools for measuring both improvement and progress.
Decisions at the right level
Agile methodology includes the idea that decisions (on how the work is carried out) should be made at the level where the best understanding lies. In other words, more responsibility is transferred from the project leader to the developers and development teams. The entire team gets to speak and to influence decisions, which means these are based on the best available information. In older management methods, information was not collected during projects to improve them while underway and was instead collected after the end of projects in a “lessons learned” phase.
Agile development isn’t easy for anyone. It requires learning and adapting. The personnel at Espotel have shown interest and expressed a firm belief in the advantages of agile. Many are also enthusiastic in improving the agile methods.
We have recently used also test-driven development (TDD) in a few projects. Some five years ago, many would have dreaded the idea of developing a test case for almost each element of software code. Now the short verification and feedback cycles are better understood. TDD is in fact a way of doing things in a way inspired by the agile design techniques. Other new methods being tried out at the moment are mutual code collaboration, and review tools like Gerrit.
There are many great things in agile and lean methodologies that are definitely worth to make use of and adapt to whatever it is you do!
About the author
Antti Kaltiainen is active as team leader, project leader, and scrum master in product development projects.
Antti can be reached by email at firstname.lastname@example.org