Epic level engineering
Aug. 31st, 2012 02:17 pmThese days in any large corporation, certainly in every software company I've worked for morale, position, wages, job title and advancement are crucial factors to any employee that the HR department invariably gets wrong.
One of the problems is that for most companies advancement "up the chain" is usually only via becoming a manager, it goes something like this.
Bob is an excellent engineer, Bob is promoted to senior Engineer.
Bob is an excellent senior Engineer, Bob is promoted to Management.
Bob has a rotten time and hates his job and quits.
Very rarely there is any kind of concept of advancement for engineers beyond graduate, engineer, senior engineer, architect. Once you hit senior engineer there's only architect to go to, and once you hit architect you're probably doing management.
These roles are also hideously ill-defined; often senior engineers are expected to project/product manage and this is hardly reflected in their job specification.
It's all very confusing, annoying and - frankly - archaic.
So what is there to do? What can we replace it with? What can we possibly use to model our job titles, rewards and goals on that todays engineer can understand.
Easy. MMORPGs.
Hear me out here; it all makes sense, and is pretty damn easy.
Instead of jumping to senior engineer from engineer you are an engineer with a LEVEL, at different levels you are expected to do certain things, you are awarded JXP (Job XP) as you do well which will advance you towards your next LEVEL, (and therefore pay grade) as well as Extra responsibilities.
For example;
A level 1 engineer is allowed to modify existing code, make check-ins only after peer review and authorisation from a level 10 engineer or higher. They can raise bugs but not close them. ETC.
A level 10 engineer can modify existing code, create their own modules, check-in after peer review and can close bugs.
Higher level grants you more responsibilities, more abilities, indeed these could also be granted in skill trees (coding, check ins, design, etc) that are granted as you level.
So a level 1 engineer must have skills of at least coding 1, check-ins 1, design 1
A level 10 engineer must have to have coding 10, checkin 10, design 10 (or whatever)
So rather than XP you could even have it as a skill based advancement system!
But what about titles? Easy. At certain levels you get a new title. A level 1-5 engineer could be a graduate, levels 6-10 is an engineer, 11-15 senior, 16-20 principal, 21-25 elite, 26-30 epic and so on...
Wouldn't you want your official company title to be "Epic Engineer" ?
But what about bonuses, I hear you cry (down voices, DOWN!)
Easy - quests!
Complete a quest in order to get a bonus; or a set amount of XP towards your bonus (BXP)
So for a full bonus every half year you would need, say, 2000 BXP; your manager sets you the following goals
1000 BXP - Complete project A
500 BXP - Update wiki pages
500 BXP - Complete docs for project B
Scalable, measureable goals. Depending on what you complete depends on how much of the maximum bonus you get.
But there's more, oh yes!
What if you DO want to be management as well?
Well, simple - MULTI CLASSING (Or multiple skill branch requirements)
You start some levels in Manager and advance those instead, with similar progress requirements.
That's the plan, anyway - so if I ever start a company I'm going to be a Level 100 Epic President.
Then I can start working towards class titles ;)
One of the problems is that for most companies advancement "up the chain" is usually only via becoming a manager, it goes something like this.
Bob is an excellent engineer, Bob is promoted to senior Engineer.
Bob is an excellent senior Engineer, Bob is promoted to Management.
Bob has a rotten time and hates his job and quits.
Very rarely there is any kind of concept of advancement for engineers beyond graduate, engineer, senior engineer, architect. Once you hit senior engineer there's only architect to go to, and once you hit architect you're probably doing management.
These roles are also hideously ill-defined; often senior engineers are expected to project/product manage and this is hardly reflected in their job specification.
It's all very confusing, annoying and - frankly - archaic.
So what is there to do? What can we replace it with? What can we possibly use to model our job titles, rewards and goals on that todays engineer can understand.
Easy. MMORPGs.
Hear me out here; it all makes sense, and is pretty damn easy.
Instead of jumping to senior engineer from engineer you are an engineer with a LEVEL, at different levels you are expected to do certain things, you are awarded JXP (Job XP) as you do well which will advance you towards your next LEVEL, (and therefore pay grade) as well as Extra responsibilities.
For example;
A level 1 engineer is allowed to modify existing code, make check-ins only after peer review and authorisation from a level 10 engineer or higher. They can raise bugs but not close them. ETC.
A level 10 engineer can modify existing code, create their own modules, check-in after peer review and can close bugs.
Higher level grants you more responsibilities, more abilities, indeed these could also be granted in skill trees (coding, check ins, design, etc) that are granted as you level.
So a level 1 engineer must have skills of at least coding 1, check-ins 1, design 1
A level 10 engineer must have to have coding 10, checkin 10, design 10 (or whatever)
So rather than XP you could even have it as a skill based advancement system!
But what about titles? Easy. At certain levels you get a new title. A level 1-5 engineer could be a graduate, levels 6-10 is an engineer, 11-15 senior, 16-20 principal, 21-25 elite, 26-30 epic and so on...
Wouldn't you want your official company title to be "Epic Engineer" ?
But what about bonuses, I hear you cry (down voices, DOWN!)
Easy - quests!
Complete a quest in order to get a bonus; or a set amount of XP towards your bonus (BXP)
So for a full bonus every half year you would need, say, 2000 BXP; your manager sets you the following goals
1000 BXP - Complete project A
500 BXP - Update wiki pages
500 BXP - Complete docs for project B
Scalable, measureable goals. Depending on what you complete depends on how much of the maximum bonus you get.
But there's more, oh yes!
What if you DO want to be management as well?
Well, simple - MULTI CLASSING (Or multiple skill branch requirements)
You start some levels in Manager and advance those instead, with similar progress requirements.
That's the plan, anyway - so if I ever start a company I'm going to be a Level 100 Epic President.
Then I can start working towards class titles ;)