Defining a compelling career ladder for software engineers
Here at Inviqa we pride ourselves on our learning and development culture. But historically the career path for our software engineers has been linear and not clearly defined.
In this post I explore how we went about developing a career progression framework for our technologists across the UK. There are already plenty of resources on the importance of having a well-defined progression framework, so here I’ve focused on our journey and learnings.
TL;DR: head here for a public version of our framework.
Establishing the goals behind our progression framework
As Inviqa’s head of engineering I work closely with our software engineers across the UK and Germany. On joining the company I quickly became aware that we needed to do better when it came to supporting career progression across our technical roles.
Setting out to improve the experience of our engineers, we started our process by putting the following goals in place:
- Build a skills framework that supports the culture and type of work that we do at Inviqa.
- Provide career paths that acknowledge technical and managerial development and pave a clear path towards senior positions.
- Incorporate non-technical ‘soft’ skills such as professionalism and facilitation.
- Ensure the framework is future-proofed, flexible, and scalable.
Finding the right approach
This journey was fuelled by a company-wide goal to improve our career paths for all departments. And so a logical starting point was to team up with Inviqa’s People and Learning department and investigate the types of progression frameworks that were already out there.
Our research pointed us to SFIA – a cross-organisational framework for describing the professional skills needed by teams.
The framework has much to offer, but when we tried to use SFIA to identify and describe the types of software engineering skills required for the types of products we work on at Inviqa, we found that the framework:
- Can be too vague. SFIA definitions need to cater to both Waterfall and Agile approaches, and a wide spectrum of platforms and languages.
- Can be too specific. Whilst many of the defined skills are suitable at lower levels, at more advanced levels the definitions can become quite niche, based on what feels like the influence and interpretation of the contributing organisation.
- Can be too linear i.e. the levels are linear progressions towards leadership. Whilst I don't necessarily disagree that advancement usually means some form of leadership (not necessarily management), this does lack room for more granular technical advancement, with what are often quite early jumps to leadership roles.
For these reasons we realised that out-of-the-box SFIA wasn't going to be the right fit for our career progression framework. That’s why we decided to use its structure, but extend it and implement our own skills definitions.
Figuring out how to structure our skills required a lot of research. We discovered a number of great resources, pooling together the experience of other companies in similar situations. progression.fyi is great, for example, and this older post from squeekyvessel overlaps, but is well worth a read.
Most of these, and other frameworks around now, were inspired by Camille Fournier's original career ladder for Rent the Runway. Some frameworks are quite basic, and others, from the likes of Medium, are carefully tailored systems that show the time and effort that’s been invested.
Of course not every company has huge amounts of time and effort to develop bespoke tools. But at Inviqa, with 100 software engineers and counting, we needed something comprehensive that worked really well for our own people.
Evolving our technical roles hierarchy
Having identified an approach for developing our career progression framework, we realised that it needed to be supported by a job role naming structure that was clear and aligned with industry conventions whilst representing our agency model and ways of working.
And here’s what we landed on after much deliberation:
Some points to call out:
- We needed more levels than the traditional and somewhat simplified ‘Junior’, ‘Mid-level’, and ‘Senior’ labels, so we opted for the numerical ranks that other companies have started using.
- As with current thinking in the industry, we avoided the word ‘Junior’ altogether.
- We’re currently considering more tracks, such as those with more of a focus on pre-sales engineering, with roles such as ‘Solutions Architect’. This isn’t mapped within our hierarchy just yet, but something we’re exploring.
- Overseeing all of our technical roles we have Head of Engineering and CTO.
Building our skills framework
We started with three main sources for shaping the structure and content of our skills:
- Existing frameworks – in particular SFIA and Medium
- Our recruitment resources (since what you’re looking for in external candidates should align with how you assess teams internally)
- The engineering management team’s knowledge and experience of working at Inviqa.
In terms of format, we used mindmaps, post-it sessions, and matrix spreadsheets over many iterations. Once the foundations were laid we moved to a Google doc for a more rapid collaborative effort (this phase led to most of the content refinement).
Finally, we migrated the finished result to a GitHub repository, allowing for more structured collaboration, simpler versioning, and change management.
Although this repository is private, we also wanted a representation that was more widely accessible, both internally for Inviqans without a GitHub account, and externally to share and learn from the community.
We stumbled upon couscous which is a great tool written in PHP for generating static HTML sites from Markdown. Not only will it convert through an easily customisable template, but it also has in-built, single-command deployment via GitHub pages (free and automated hosting).
Catering to everyone
At Inviqa we have a wonderful in-house tool called Inviqa Me which represents your professional development.
It records your expertise (i.e. your level of experience within platforms, languages, and tools) as well as your interest in learning more or teaching others. It also manages your training budget, provides access to our suite of training materials, and has a set of line management tools.
With this great system in place, we no longer need to pigeon-hole our engineers by technologies in their job title.
Inviqa Me knows what individuals can do, along with our collective skill distribution as an organisation. As a result the basis of our job titles is now universally ‘Software Engineer’, and so siloed, or platform-specific titles like ‘Magento Developer’ are no longer necessary.
To go hand-in-hand with this we wanted our framework to acknowledge the range of skills that individuals can have, to not favour one language or discipline over another, and to celebrate individual strengths.
It's a major challenge to build a framework catering for this without being too vague, but after several iterations we came up with an elective system for one of our skill categories.
Whilst many skills are 'required' for all, we have a Focused Technical category which consists of a number of skills (seven at last count) from which you must choose four. This allows our engineers to progress with flexibility.
How we’re using the progression framework
With Inviqa Me, all of our employees can see the definition of any role and the skills needed to achieve them.
This system also includes an Assessments feature through which we can capture feedback from peers about our progress relating directly to each of the skills.
Colleagues can express their opinion on which level individuals are achieving with comments. We request these regularly to gauge our progress and build up evidence to support growth including future promotion.
We’re proud of what we have so far. It’s detailed – more so than many out there – and it’s tailored to our people. We hope to have found the balance between being overly specific and ambiguous, whilst being accessible and not overbearing. Time, and our community, will tell!
Our framework is an ongoing development and we encourage everyone at Inviqa to get involved and help shape it. Head here to see a simplified public version.