What if ... a hypothetical company published a hypothetical job ad like that ...
(this is not a real job ad, I'm not representing anyone or looking for any people - I'm just wondering whether industry is mature enough to call some things by their true names ...)
We're looking for a software developer (technology X). Background, experience, past projects are irrelevant as long as you know the syntax of language Y & framework Z. Don't worry if you got rusty on any of those two. You'll start with a short, intense training to make sure you'll ready to rumble from the day #1.
Just like that. Instead of looking for very specific skill combination (ORM A, SQL database B, IoC Container D, build system E, version control system F, ...) with required exposure period & level of proficiency. You'll be doing X, Y & Z. These are not a big deal, so the training (that covers all what's needed) will help you to catch up to the level of your peers.
You'll be producing screens & services, each of them quite standardized - seeds (templates) & samples (including short video tutorials) will be provided. All architectural decisions will be upon someone else, you won't have anything to worry about.
Yupp, no fairy tales (about the most fascinating & self-developing job ever). It's all about simple, repeatable job. Standardized, predictable, pretty much no twists at all. Almost like a conveyor belt / assembly line - maybe boring, but stable & with a guaranteed pay. Anything that doesn't match this simplicity rule is to be pushed aside for someone else (presumably higher-paid, experienced "gurus" / "architects" / "seniors" / whatever).
You will be working 9-to-5, no over-time, no working weekends, within your comfort zone only, your responsibility will be limited to the basic artifacts you create - all you have to worry is doing your stuff properly & efficiently. Thinking about cross-cutting concerns (security, audit, etc.) & generic domain stuff will be done by someone else - you'll just get clear guidelines how to use them though.
Almost stress-free job: assembling small parts w/o being afraid to omit something crucial ("did I read up about this recent security flaw published last week?", "I think the compilation is getting too long, probably I should make a deep dive into details of this build system ...", "OMG, we'll have to communicate asynchronously with this service, but this message can't vanish in case of failure, what to do?!").
Your pay will be X EUR / day - it's not much, but it's a reasonable pay for limited expectations - you don't have to worry about learning new stuff ("getting up-to-date"), being innovative, introducing continuous improvement -> all this stuff will be on someone else. If it's necessary to learn something new, you'll get it all packed & bundled - ready to absorb in a smoothest way possible, only just what you need.
Let's be honest about that - it's usually rockstar-passionate developers who create the most inspiring, most sophisticated products in the world. And everyone would like to hire passionate developers only. But reality is different:
- most developers are far more "9-to-5" than rockstar-passionate. Well, they have their passions, but these may be not connected with software development at all. Coding is still fun for them (up to some degree), but learning new stuff & trying various emerging techniques doesn't turn them on :) It's not that they are less gifted, lazy or something - it's just their choice: software engineering is their day-job only, nothing more. Why not address them in a direct, clear, no-bullshit approach?
- to attract rockstar-passionate developers you need far more than just an adequate pay & XBoxes in leisure areas ... You also need to provide them a challenge, proper work conditions (incl. organization culture), true goal, a lot of freedom - many employers still can't get it (they think the known brand is a sufficient attractor ...)
There are no scrums, sprints or other hippie-agile stuff like that. You don't have to care about self-organization, self-management - there's only "self-coding" :) You'll be given a clear task (that doesn't require you to dive into the business domain, so no worries), there will be someone to collaborate with you (to agree the details, check the work-in-progress, provide feedback) & what you will have to do is just to develop it & mark it as done.
You feel comfy with being led? You like clear situations? You don't care about the business domain & don't want to learn it? You want to focus on code & code only? Here you are. No mumbo-jumbo, reviewing, retrospecting, white-boards, stickies & other gear like that - just code, clear vision, clear direction & clear responsibilities.
There is no DevOps, automated provisioning, Continuous Delivery or other crap like that. All you have to do is to make sure that final artifacts all end up in the same directory. Someone else will deal with the rest. You're welcome. And relax, no automated testing either - there's just too much fuss to make (& maintain) them. Testing will be manual, there will be separate people for this particular duty, so don't worry.
Do you get the pattern in this ad? This company doesn't pretend it's an IT unicorn (like every 2nd grumpy, ponderous enterprise does ...). It doesn't claim that it's doing rocket science. It doesn't try to lure people (under false pretenses) by presenting itself as something it isn't. It's genuine, honest & straight-fuckin'-forward:
- what we have here is a dev-FACTORY & what we need here is dev-CANNON FODDER
- what we have to deliver here is SHITLOADS of screens / actions / functions / services
- HELL FREEZES SOONER then automate any tests here, because we have 67 tons of antediluvian legacy in the room behind ...
- it's quite a clear, predictable job to be done, there's no need / space / willingness for prototyping / MVPing or such, so we don't want experiments - we want it all done AS CRUDE & SIMPLE AS POSSIBLE, because even with this manual testing, manual deployment, communication overhead & such - long-term it will still be CHEAPER (due to limited risk & higher predictability); quite likely it won't deliver as much value as it could, but we've already realized (& approved) that
Do you think that ...
industry has grown up to admit that in 95% of cases we're not making rocket science on the daily basis? That there's much higher need for people with basic software programming skills (& no-one gives an f-word about their future ambitions ;/) than for badass-ultra-ninjas who implement Raft with one hand, standing on their heads, sipping mate & even not looking?
software developers community has grown up to admit that majority of us don't care that much about products we develop? About new methods, frameworks, various something-driven-development approaches?
Pic: © Komarov Andrey - Fotolia.com