In the last few weeks, many companies in all sectors of the economy are realizing that a digital transformation is imperative. In many cases, they were already thinking about it or had already started digital projects, but they now realize that we can no longer be satisfied with the status quo. They must commit and accelerate this turn; otherwise it will compromise the survival of their business. A software development team that will be able to take ideas and make them happen is necessary to execute this digital transformation masterfully.
At Mirego, we have supported our clients in their digital transformation for more than twelve years. We have built a high-level software development team that can execute their digital strategy in a large variety of industries. To help as many companies as possible achieve their goals, we decided to share our expertise to build a great development team, since we believe that all our clients should ultimately aspire to have their own.
The first article in this series looks at our culture of excellence within the development team.
Any business wishing to reinvent themselves via digital technology will end up needing a software development team, whether they build it in-house or work with an external partner. The team will need to have solid technical skills, but it’s through its attitude and its working methods that it will stand out in this ultra-competitive field. At Mirego, we developed from day 1 a culture of excellence to which all the developers who join us adhere to and grow with. We defined this culture with a few key elements that we’re happy to share: caring about quality, maintaining consistency, taking the time to think and being efficient.
1. Quality: Everyone’s Responsibility
Ownership and caring: These two words are non-negotiable criteria within our team. We strongly encourage each of our developers to use the application or the website they’re developing. They’re expected to share their opinions and suggestions , regardless of job description or level of seniority. Despite all the goodwill of our product owners, every detail that is important to the success of a product can’t always be listed in a database ticket. As such, each developer has to be critical and add their touch of love to the product. If they encounter a bug in a section of the application that they haven’t developed, they shouldn’t turn a blind eye. They must correct it, or at least lift it to the rest of the team, so that it’s known and prioritized. Ultimately, when everyone in the team cares and demonstrates ownership, the product delivered will exceed customer expectations.
2. Key to Success: Consistency
To meet the increasing needs of our clients, our development team has kept growing over the years. At the same time, the digital projects that we undertake don’t end when the product is launched; we’re called on to make them evolve for many years. With this growing number of new projects and developers, maintaining consistency in our code and our architectures plays an essential role in our ability to maintain our entire product portfolio.
Our horizontal web and mobile teams have each established programming and architecture guidelines to help the team in their choice of architecture as much as in the code formatting in the languages we use. These guidelines ensure respect of our best practices acquired over the years, and allow us to minimize the ramp-up time of a developer within a project. In a world where digital transformation is accelerating and where the number of projects is increasing, it’s essential to make sure our developers can move from a project to another without having too steep of a learning curve.
3. Reflection: Essential Both Before and After
As a developer, I know very well that we like to delve into the code as quickly as possible to start delivering functionalities. Once our project is delivered to production, we can’t wait to start the next one.
However, we must pause, both before and after a project. Before the project, we must take the time to look at the project as a whole, analyze the risks and think of our architecture. At Mirego, our projects generally have a sprint 0 in which we carry out this reflection and try to eliminate the risks in the project in a structured way. Once the project is delivered, it’s just as essential to pause. We hold a post-mortem meeting to highlight both the positive elements, which we carry in our future projects, and the negative ones, which we aim to eliminate. It’s by taking the time to stop and think for a few hours that we generally manage to save dozens of hours later in the project.
4. Foundation of Efficiency: Automation
To honour its reputation for excellence, our team must make the most of each hour invested in a project. We need to focus our efforts on the tasks that bring maximum added value; this is why we automate repeating tasks whether within a project or from one project to another. For example, a member of our team developed Dispatch, a tool which automatically assigns revision of pull requests to developers based on the project, language and other labels determined by the author. This initiative saved our team (and our clients!) a lot of time, and greatly improved our review processes.
5. Quality: Also a Team Responsibility
This principle goes without saying, but it’s essential to our culture of excellence. As developers, we need to submit each code line to a review by our peers. Each pull request is reviewed by at least one member of the project team, and by a senior developer from another team. Conversely, all developers are expected to review the pull requests of others, regardless of their experience. For the more junior, it’s an extraordinary opportunity to learn. As a bonus, all the code delivered is automatically validated in terms of tests and style.
Also, our team does not only review the code. Each member of the team challenges user stories during grooming sessions before development. Our designers approve the screens integrated by our developers. Our quality assurance specialists affix their seal of quality to the entire product. When all these steps are followed, it inevitably results in a high-quality product, worthy of Mirego standards.
In short, when each member of your team has at heart the quality of the product to be delivered, when consistency is as much in the current project as in the projects to come, when everyone takes time to reflect together, and when the efficiency is at the centre of the process, your development team has a chance at any challenge.
Other questions can arise when we want to build the best development team. How to structure our hiring process? Which profiles should we favour? How to optimize knowledge sharing and training? This series of articles will continue with answers to inspire you and help you put together this exceptional team.