Something I’ve consistently observed in my career is the difference in capabilities between in-house and consulting engineering teams. I absolutely believe there is a need for both and the challenge for CIOs is to strike the right balance between the two. Why both? See my example below.
Internal team members have valuable knowledge but can have dated skills
I worked on a project for an investment bank when I was in the UK. The engagement was to replace the bank’s investment allocation engine, which was a mainframe application at the end of its life. We were brought in to develop a new Java-based application, working with the bank's own development team to deliver the project.
During the delivery phase, the in-house team’s knowledge was invaluable for us to understand the context of the application and its functionality. However, there was a significant gap between the in-house team’s engineering abilities and the skills needed to develop and maintain the application. Most members of the in-house team had been with the company for a long time and had only worked on the mainframe application. They had limited exposure to new and emerging engineering practices such as continuous delivery.
External consultants can boost the skills of internal team members
Our project introduced practices including automated testing, version control, continuous integration, code design and data management, all of which were new concepts to the in-house team.
We took a multidisciplinary approach to improve the capability of the bank's engineering team during the delivery phase. This included a mentoring program to furnish the team with the requisite development and engineering skills to successfully maintain the application well after we had completed our work.
Don't just build the product, build the people
Working with the bank's leadership and HR teams, we wrote new position descriptions for each team member and created a skills matrix that reflected both the existing and requisite new capabilities. These team members had highly valuable and deep domain expertise that the bank wanted to retain, but they lacked the technical skills. The skills matrix provided clarity on what each person needed to achieve in order to meet the refreshed expectations of their new position descriptions.
For the duration of the project, we met fortnightly with each of the in-house engineers to provide one-on-one mentoring and guidance. Between each mentoring session, the engineers were given the opportunity to work on the skills we knew they needed to develop. For instance, if Sam needed to learn about continuous integration, we paired him with our resource who was working on building that pipeline. On-the-job learning was a key component of the upskilling approach.
We also ran regular ‘lunch and learn’ sessions with the in-house team, discussing specific topics to help with the upskilling process. We’d bring in articles for discussion or run coding dojos.
Some team members exited the company and others chose to learn the necessary skills to support the new allocation engine. When the mentoring program finished, the bank's team was a fundamentally different group that could work successfully without us.
Internal team members and external consultants both add value
In-house teams understand how their companies work and have a deep understanding of their applications and the ecosystems they belong to. They have been applying the band aids for years, so they know all the trouble spots.
However, they risk developing tunnel vision because of their limited exposure to processes and practices outside of their employer. They get so caught up doing the job, they are not prepared for the next key moment of change.
Consultant engineers are typically experienced in many types of technology and have exposure to new and emerging development practices. However, they lack the contextual understanding for specific applications or environments.
Set yourself up for after the project
It’s our goal for clients to become more self-sufficient and utilise consultants strategically. They need to be successful long after our engagement ends. All our clients benefit from the ‘halo effect’ of working alongside our engineers. It’s also why we have specific services that help uplift our clients’ capabilities during an engagement.