Pages

Wednesday, 23 October 2013

Career Ladders: Avoiding chaos and anarchy in Software / Systems Projects


This post is part rant & part structured discussion around the topic of career development in the domain of Software & Systems Engineering. I have been in the business of core software engineering for fifteen years (15), and was fortunate to experience working with highly rated professional companies (from Silicon Valley, internationally renowned) whose sole purpose was producing software systems from scratch, including as providing software design services to other software companies - these companies maintained true to engineering as a discipline.

A graduate engineer would enter the company with a fairly good idea of the where he/she is starting, and the various options & opportunities that lay ahead in terms of career growth, and, depending on the company - this graduate could spend

the next 10-15 years with just one company alone and never get bored, traversing many job disciplines as he/she so desired. 

This is the baggage (rightly or wrongly) that I come with, and hence my surprise to learn that some companies in South Africa are still making a serious mistake of not having a simple template that maps roughly the career ladders for the team, covering Development/Test/Integration Engineers, Architects and Managers. I firmly believe this is a recipe for chaos & anarchy that must be avoided as far as possible, and the solution to this problem is to map out a simple Career Jobs Ladder for your technical department.

Don't get me wrong: I am all for meritocracy, flexibility and not bureaucracy - but it really irks me to see things happen in the workplace that just don't make sense, especially when promotions happen when there is no real truth, track record or backed-up peer recognition that warrants a role / title change. 

I have seen the following happen as an example of chaos:
  • An integration engineer with no prior design or architecture experience is promoted to Architect
  • An software engineer with no prior architecture accolades is promoted to Architect
  • A software engineer with no prior team leading, people management or facilitation experience is promoted to Scrum Master
  • A team lead with no prior project management or scrum mastering track record becomes an Agile Manager
  • An integration engineer with no product management experience becomes a Product Manager
  • A new recruit with no prior experience in the technology domain joins as a Senior Solutions Specialist
  • A new architect who has never architected any product before enters as a Solutions Architect
  • An enterprise architect who has never delivered to market any real enterprise-class systems product that has a user base of more than fifty is made Enterprise Delivery Architect
  • A component architect who's only worked on a single software module / component becomes Enterprise-wide Solutions Architect
  • An integration engineer who's only experience in embedded devices joins an enterprise systems integration team as a Senior Integration Specialist
  • An automation specialist or tech lead who is misunderstood as the Head of Automation
To an observer, the above scenarios are candidates for chaos (What do all these roles mean? What's the job spec? Is there a clear map that shows the progression of one role to another?, etc. etc.), although these cited migrations would not be that far fetched if there was a career ladder to hand, that facilitates the growth path - that can be used to take the individual on the journey to reaching his/her desired goal....

And this is where anarchy comes in (again, a little rant on my part):
  • The absence of a career ladder creates opportunities for people to challenge Management
  • People's feelings and emotions have the upper hand and can be really manipulative
    • This is something I've observed specifically in South Africa, that people get away with a lot of emotional tactics, because of the sensitive nature of the cultural dynamics at play in the country, managers walk on eggshells when it comes to emotional topics.
    • Moreover, there is such a scarcity-of-supply of engineering talent in South Africa, that employers feel pressured to give in to demands.
    • The moment people threaten to leave or express unhappiness, managers get sensitive and start "interventions" to keep people and so create growth opportunities to entice the talent to remain behind
  • The are no real metrics or indicators that can be used as evidence to either motivate for or against a role change or promotion
I am all for career-growth, as long as its fair and impartial - use a Career Ladder as a Guide!
  • Career-ladder is a framework that defines entry/exit criteria around various metrics around a role
  • It is a useful tool to base any performance / career discussions around
  • Managers can use the career ladder as a guideline for shaping the discussions
  • Roles must be supported by evidence, based on at least the following:
    • Immediate team 
    • Extended team
    • Project team
    • Company
    • Corporate-wide
  • Salary bands can be used to slot into career ladders, but that is a whole other story post for another day
  • Bottom-Line: You must earn your stripes!
Personally for me, when it comes to managing career of highly strung technical people, management by objectives (KPIs), is really a big waste of time, energy and is just keeping HR happy. It really about behavioural skills and real work outputs: 
  • How do people feel about working with you? Quality of your work output? Sentiment from your colleagues? 
  • Peer recognition within team, project, company and wider corporate?
  • Notable value adds delivered to project, business, corporate when compared to job spec, have you earned the next level? 
  • How does the rest of the world feel? How does your skills match up to what the rest of the world is doing?
South Africa can't hide behind the "third-world" syndrome any longer. The country has enormous talent, yet companies are still stuck in the dark ages. Management philosophies around tech-savvy individuals need to change. Classic 80's corporate style of management by objectives, management by committee, Thou-shall-respect-managers attitudes -- just do not work in this day and age! 

In the context of the Software industry, it is a global one - South Africa is not lagging behind the rest of the world in terms of technology. But the country is, however falling short on producing worthy talent for the industry (university curriculum need a shake up).

My own journey through the IT Career Ladder
Rightly or wrongly, I've become conditioned to having some structure in place to guide career aspirations. I started as an Engineer-in-Training in South Africa, then emigrated to Europe and continued as a Software Engineer in Dublin, Ireland. Fortunately I was privileged to work for the top software design company in Europe, with brilliant people - a very humbling experience. I learnt that my South African education did not prepare me well enough for real-world, core software development, and had to re-learn many technologies & concepts on my own. Inspired by this challenge, I set about doing a Masters in Computer Science in Ireland as a way of showing competency. I left Ireland and worked for another great company, as an embedded software engineer. I spent just over three years in that area, working my way upwards to senior engineer / tech lead. I then decided to switch to server-side development, a completely new domain to embedded, and thus had to leave my senior software engineer option and re-started as plain old software engineer. Rightly so, since I knew nothing of server-side, distributed systems at the time - so when compared with my new peers, I was a new-starter, ignore all my senior embedded programming knowledge. Spent around four years with that team, growing into senior engineer. Having seen the best of both worlds of software, I then switched to project management. Spent a few years there, starting as a Junior PM & working my way up to Senior Projects Manager. I then decided I wanted to dabble in brand new products, switched back to development and entered the Principal engineer / Technical Manager camp. This all seemed natural, since the career ladder exposed us to the various paths. I did take a knock in salary jumps with all the side-switching, but in the end, it helped me learn and develop a diverse set of skills and experiences which is pretty rare to find.

Context-switch to South Africa - and things go blurry. The UK understanding of certain roles far overshadows those similar roles in SA. It is really difficult and really hard slog to climb up the career ladder in the UK, you really need to earn your stripes. My experience in South Africa however, shows this is not the case here. A UK Senior Projects Manager (one who has run multiple projects consisting of multiple teams, multiple work-streams, simultaneously) is actually the equivalent of a Senior Programme Manager in SA. An architect in the UK, one of the early stages of architecture, is sometimes a Solutions Architect or Enterprise architect!! Look, I have not done much research into this, but from the one company I've worked with in SA, and from networking with other colleagues in different companies, it seems that there isn't really a structured way of positioning roles - hence why so many managers have to continuously battle with people during appraisals, bashing heads with HR, etc...

Template Career Ladder (Download the Template here)
Companies intending to grow their IT organisations by using software development departments really need to consider introducing a simple, structured career ladder. If you need any help with this, please get in touch.

Here is a very draft career ladder visualisation that I've used in the past. The aim is to show the growth paths from one area to another, presenting opportunities for side-ways transfer. This is purely a roles based ladder and does not really insinuate much in terms of salary bands, although I've used colours as an indication of relative bands.

It should be clearly visible though, that there is a hierarchy - you have to earn your stripes to move from one level to the next!

For each of the roles mentioned in the blocks, the career ladder drills down into detailed job specification, including various behavioural and performance objectives, including a strong metric of peer recognition across the company. You have to try to tick as many boxes as possible, gain positive feedback from all your customer interactions, and when it comes to promotion into the next role or band, you need written recommendations from senior colleagues within your team, outside your immediate team, and across the organisation - pretty steep indeed, that's why it took me a long time to climb up the ladder in my previous company in the UK!
Sample Career Ladder

No comments:

Post a Comment