Adam is the Global SVP of Engineering. He is responsible for software engineering practices, team organisation and results of all engineering teams globally. He is based in London.
The Tech at Mintel series shines a spotlight on our global IT department and how some of the industry’s best and brightest build Mintel’s modern, agile, and scalable technology backbone.
Technology at Mintel is changing. As with many other teams at Mintel, technology has grown drastically, complementing many longer-term team members with a raft of recent hires to ramp up delivery of high-quality capabilities for customers. The Engineering team has grown to 120+ talented engineers spread across four locations (London, Belfast, Chicago and Shanghai) that together help create Mintel’s portfolio of products.
Historically, many of Mintel’s Engineering teams had established their processes organically, developing ways of working that were tuned to deliver for their market or specific area of focus. This had worked well and allowed Mintel to deliver good solutions, but with the team’s increasing scale and growing international distribution it was becoming sub-optimal. Challenges included being able to collaborate effectively, more complex decision making and difficulty cohesively viewing and supporting activity across the group.
In late 2021, the team began an evolution of Mintel’s Engineering practices. It was critical that teams maintain their agility and ability to get things done but necessary to introduce enough consistency that they could work together harmoniously. In fact, a goal of the change was to enable greater agility, with teams able to help each other more effectively and being less likely to have to work through organisational or system complexity to deliver great solutions.
Three themes came into focus:
- People – making sure that teams have clear roles and responsibilities, that we recruit and form a diverse and talented group and making sure that every team member has access to high quality, role-appropriate training and coaching.
- Delivery Process – introducing just enough consistency in tooling and delivery process, defining foundational best practices for the entire group and optimising every team’s approach to outcome-focused, agile software delivery.
- Visibility & Insight – making roadmaps visible to improve collaboration and prioritisation, enabling sensible planning without building very long-term fixed plans and introducing visibility into the team’s activity to drive open, honest and sensible discussion.
Note that technology is not listed as one of the themes. Continued improvement of technical stack and architectural approach are absolutely critical to the sustainable delivery of high-quality, performant solutions. However, teams generally have a good understanding of the direction of travel required for the technical components of their solutions. Coupled with a very capable Architecture team and robust architectural blueprints, this theme is already well represented within the team. The opportunity became enabling teams to progress efficiently with this technical evolution within an environment that allows constructive prioritisation discussions and provides teams the ability to collaborate towards optimum outcomes, whether these are technical or functional.
Establishing Common Standards and Improving Visibility
Phase one involved doing the basics really well. Teams began migrating to the same collaboration tools to improve how they manage their delivery activity, while we also began to define a set of common team-wide development standards that help guide teams towards agreed-upon best practices.
It is worth highlighting that this does not mean making everyone work in the same way. Having sufficient consistency in how initiatives are described and logged improves understanding and helps teams support one another. Having common foundational standards for how teams build and manage their capabilities maintains a high overall quality of solutions and again allows teams to better collaborate as they deliver them. All of this can and should be expanded and tuned by teams to best suit their needs and optimise how they deliver.
Migrating to common tooling to manage delivery, coupled with guidance on how to discuss and break down future initiatives (importantly, talking about outcomes and keeping to the smallest, deliverable increments possible) allowed teams to begin improving the discussions about what problems to solve and how to tackle them. Over time, this increases clarity on how to approach future problems as they progress through their planning and delivery cycles and drives better identification of potential dependencies.
With teams managing delivery through the same tools, it became possible to build roadmaps from the data being recorded and introduce these into prioritisation discussions between team members. This starts to drive improved decision making, with all teams looking at a consistent set of data and more well understood plans. Gradually, awareness of impact forms part of the decision making process, as teams discuss how a decision may require teams and existing plans to adapt.
During this phase, we began defining a common foundational set of development standards. These will eventually describe the minimum common standards across a whole variety of topics that our teams consider while delivering their solutions, covering items such as documentation, version control, peer review and a baseline for Definition of Done. This takes time, needing to collate input from across the teams, and breaking this down to what would best support our overall team’s needs. These must also take into account what should be defined centrally (and what should not), while allowing sufficient flex for teams to enhance these to suit their needs. Essentially keeping standards as lightweight as possible while providing the guidance to achieve a common baseline for what is considered good, providing confidence that all teams are working to the same overall standard.
Setting Up Our People For Success
We are fortunate to have fantastic people in our teams, spread across the world and from a diverse range of backgrounds. To allow our teams to be successful, supporting them and the growth of every individual is absolutely critical.
Step one involved making sure everyone’s roles were clearly defined, with responsibilities consistently applied across teams and well understood by team members.
A refreshed career framework was established that simplified career paths to two tracks: one for individual contributors and another for leaders and people managers. The goal was to clearly describe the level of personal growth and contribution required to be successful in each role, and for leadership positions, articulating who is responsible for each team and their delivery (though everyone has a part to play.)
An extract of the framework is shown above. Each position is a role type, which is then expanded with the speciality to become the individual’s title. For example, the ‘Engineer I’ role (our entry point into the Engineering team for individuals in the early stages of their software engineering careers) becomes either Software Engineer I, Data Engineer I or Software Development Engineer in Test I depending on the individual and the team they are joining.
With roles clearly defined, we can ensure we have the right roles and a good balance on each team. For example, an appropriate level of leadership, sufficient technical expertise and balance of engineers to form well-rounded teams.
This also allows us to work with each team member to create personal development plans and map out training, coaching and development needs to help them be successful. For some, this could mean expanding their technical skills and contribution to the team’s delivery; for others it could mean achieving formal certification in agile methodologies to enable them to support their team’s delivery process.
Until now we have focused on people, migrating teams towards common processes and introducing robust development standards, bringing the teams into a more harmonious position that allows for regular, high-quality delivery. This is a great position to be in but leaves plenty of opportunity to advance how we build great capabilities.
The next phase sees the team beginning to focus on further improving the agile process, evolving discussions between teams and partners on what problems to tackle next and really taking our delivery processes to the next level, aiming for even more regular iterations and frequent releases.