Another big change that we have done with Evolution is introducing Agile on all the company.
I remember very well when Gian Maria Ricci a lot of years ago help us understanding why agile can be very important and very useful (and also aligned to company values). For me, it was a completely new way of thinking.
First of all I want to write a quick recap of the context that I explained in the first article (https://labs.isolutions.it/2020/03/01/isevolution-started/).
- We started in less than 20 people, now we are near 70: a totally different context that needs a different way of work.
- In the first step of the growth, we created vertical teams to help the people to improve their skills (developers, UI dev, DevOps, etc): this helps the growth of people but in certain mode blocks the possibility to adopt Scrum.
The reason why we started to do a so big change last year are:
- We want to give more value to the customers, helping them to excel in their market
- we need a team with T-Shape approach and different skills in the same team.
- Team Spirit is a value of the company: I want to encourage it into the team and outside.
- We need clear roles to help people to improve their skills and the company to have better results.
- we have a few meeting rooms so we need a Remote First approach, also to involve new remote worker in the hiring process
- we need to use agile not only in the teams but also for doing the company plans
- We want an approach with the teams and the developers that is based on trust and responsibility.
How we did this big change:
- start with one team, and try with a concrete project: we create a scrum team (named Evolution) of 6 people (obviously with different skills) with the goal of full modernize a project that is in production.
- Implements some big feature that is needed by the customer, so we can approach Agile also with them.
- the team adopt the remote first culture with a people that is fully remote and the others that often work from home.
- Try some new tools (slack, Jira) and verify if those can increase productivity and communication
- Check the results periodically and learn. After that start with the big project where work all the other guys and support them
The results of first step:
- in 4 months we have done a lot of refactoring. We started from a product that was released manually every month and we finished with a product that is released multiple times a day, with hot releases and the possibility to rollback the single release.
- We started with developers that know only some Microsoft programming language and tools and now the same developers have a T-shape skill, know a lot of different part (DevOps, provisioning) and new languages (like ruby) or platforms (Redis)
- we saw that having only a single chat for the team with all the integrations can be very useful, increase the team spirit, the visibility on the platform, and the productivity.
- Having a clear role help the team and the guys to understand if they are “performing” well.
- Meetings are regularly planned so we have less interruption.
- Demo and the end of the sprint are very useful to show the results to the stakeholders, and retrospective is very useful to understand how we can improve like a team, what’s is going wrong or not.
After this successful step, we started with ISBets teams. On ISBets the plan was to introduce Agile for having a better plan of the teams and more productivity, and after that, we can proceed with DevOps, refactor, etc
Today we have:
- all the 6 teams that work with scrum or kanban
- more clear context because pair programming and sharing knowledge is done into the team
- Faster job placement inside our teams, thanks to the more spread knowledge of our software?
- developers increased their productivity of 30%
- metrics on the team that can help to understand if they need help
- quarter plan shared by all the Product Owner and Stakeholders and the projects are not team dependent (we don’t have a vertical team with only specific competence)
Another important information is that when Covid started in Italy all the company works remotely from one day to another. For developers was very transparent (also because our IT guys in these years give us a very good infrastructure), and the experience of the developers was shared with the other teams like sales, accounting, and support.
On the next article, I’ll talk about DevOps and the release automation.