The art of finding the right help
Every organization strives to stay ahead of the competition. To maintain such a position, constant improvement of software development tools and processes is important. Over the last 25+ years a number of best practices and ways of working have evolved. This includes agile development processes, CI/CD automation, automated testing and DevOps practices.
The three productivity pillars tools, processes and the team evolve together with product development and are considered being a part of the product almost as much as the product itself. This requires a stable development team that can improve its tools, processes and productivity over a long period of time. Software development efficiency, and sustainable growth fundamentally depend on the company’s most valuable asset—the software development organization and its employees.
Traditional way of hiring consultants
Hiring individual consultants and integrating them into internal teams is usually a lengthy and challenging process for recruiters and the team. When onboarding contractors productivity in the team decreases during the onboarding period. The productivity decrease can be significant if the contractor is not a good fit for the team. The same is true if multiple contractors are on-boarded at the same time.
Assembling a team of individual contractors is another common scenario. This provides in the best case only the team productivity pillar. The other two, tools and processes have to be worked on resulting in significant startup costs and increased project time.
The conclusion is that both of these models have smaller or bigger challenges with quickly increasing productivity, which contradicts the goal of bringing in consultants.
Regulatory space
Another aspect of software development is the increased number of regulations which mandates well established tools and processes. Two such examples are the upcoming EU CRA (Cyber-resilience act) and existing MDR (medical device regulation).
Regulations provide additional hurdles for getting newly established software development teams up to speed quickly since workflows to support regulations might not be in place from the start.
Hiring a self sufficient team
Efficient product development nowadays requires a holistic approach where all the three pillars- team, tools and processes are satisfied in varying degrees. This also requires adaptations in the software consultant hiring model.
By hiring a completely established development team it’s possible to overcome many of the challenges described in this article. Well managed and coordinated teams can immediately become productive since team dynamics, tools and processes are already in place. This model requires new ways of engaging with external service providers for several reasons, the most important ones being:
- Specialization - established development teams, tools and processes are tailored to specific programming languages and development tools.
- Industry knowledge - each industry has its own set of regulations and required know-how which require adaptations in tools and processes.
- Long term relationship - this requires long and well established relationships with external service providers.
Conclusions
Software development productivity is continuously improved with team dynamics, tools and processes. Over time this also increases specialization in all the mentioned areas. It is therefore not enough to look at the skills of individual software development consultants. All three pillars have to be taken into account when hiring.
When choosing an external provider it is also important to look at their improvement rate in terms of development processes and tools. If this rate is better than what can be achieved internally it’s a strong argument for hiring. Not only does this bring a productive and efficient development team from the start. It also provides an opportunity to adopt their ways of working and development processes internally.
Co-author: Eva Bajželj