Be a rising (!failing) senior developer:
Steve Jobs gave a great story on why dev managers work hard to only recruit the best talent. Jobs isn’t talking about algorithmic or manual work, like pyramid building (algorithm is #humans x #hours = #linear feet of pyramid wall). If you need more wall, you either need more people, or faster working, or more time. The result is calculable, and linear improvement occurs.
Jobs is talking about creation: Activities which require a dramatic volume of possibilities, and interconnected concepts, and multi-variable architectures – all in code, and mapped into a near infinite combination of environments…you know, enterprise software developer. That job is not pyramid building; it is creating a new thing – moving from zero to one. The result of A players doing this work is incalculably better, and geometric improvement occurs (as a worst case). You also don’t architect a project that falls over just as your product is succeeding (scale problems only happen at… scale!).
The people who can think this way, repeatedly, are A players. B and C players can carry out the thinking. A players are much less common, and significantly more valuable in tech. Jobs only wants the A player –
Jobs: “No major work that I have been involved with has been work that can be done by a single person or two people, or even three or four people… In order to do things well, that can’t be done by one person, you must find extraordinary people….the dynamic range between what an average person could accomplish and what the best person could accomplish was 50 or 100 to 1. Given that, you’re well advised to go after the cream of the cream. That’s what we’ve done. You can then build a team that pursues the A+ players. A small team of A+ players can run circles around a giant team of B and C players.” From Nejtlich’s excellent write-up – https://taosecurity.blogspot.com/2010/12/steve-jobs-understands-team-building.html
Maybe looking at how Google, Microsoft, Apple handle it in the career path is useful. At large software houses, there is a pivot or tipping point in careers for developers. Senior, Level 63, Lead, whatever the name. It means you are ahead of 80-90% of the developers who write commercial code. Mini-msft wrote it about MS – called “level 63” as well as senior developer. Up to level 63, the question is simple, did you write increasingly good code. But 63 is a lot more complicated. At MS, Mini points out – every developer has been represented by a sticky note (seriously!) and the question “will they ever be a 63?” got asked and answered. If *your* answer had a 10ms delay when they discussed YOU, then the problem lies with the developer to fix it. The manager will not fix it, and the skip level mgr just heard of an opening for his favorite butt-kisser (OK dev, but SUPER “attitude”) to be promoted. Mini continues – If you’re saying “Ah, dude, my boss is in the way of my promotion” then all I have to say is “Duuuude, your boss is the way to your promotion.” Perhaps someone can explain to me how you get successfully promoted without your boss’s support.” So the question really becomes what you, yes, YOU, can do to make yourself attractive. Nothing succeeds like success, so start there. You’re a better programmer than your boss already, your boss is better at other things – do you make room for both those truths? Find a boss who helps your promotional potential, and helps produce results and care about those results. Here’s another test – if you keep thinking your boss is dumb you should find a new job, because you are already sending that signal to your boss.
From Pat Foredecker: “We pay developers to do two things: think and be creative. “ Foredecker and Prima Donna is issuing a warning for the senior dev once promoted- if you are the 10x Dev who hates everyone around you, then you are a dick, and 10x is as far as you’ll progress. If you want to stay that way, then success depends on -> Finding exactly the right projects, manager, and never, ever missing anything, and even then your UX is going to reflect that you hate users more than Tron loved them. Mini, Joel, and Foredecker all ask essentially the same questions for moving in the rarified air – do you view yourself as the one you can change? Can you own something to ground? Do you do what you do because you love it, or for the money/promo? Do others see your greatness, or do you go out of your way to be intolerably expert?
If you do not ship things, then your days as a defensible level 63/Senior software developer (SDE) are not long unless your boss and you golf together. Repeat: SHIP STUFF PEOPLE LIKE and care about improving it, and your boss finds out how to become your friend. You are worth it. You get those elusive things called results. If you are just a caustic primadonna without successful software, then recycle self-analysis loop.
If Boss ->honestly obstructing success, then exit Boss. recurse.
One other thing which all links above seem to miss (except in Mini’s comments section) – the “career trajectory” magic, also called “promotional velocity” essentially creates this reality – if you cannot make it to 63/senior, then eventually you are going to be removed; and once you make it to 63 you reset the clock until the next time your manager gets pressure to ‘up or out’ the senior developers in your org. I sincerely wish you good luck and I hope this helps.
The most forwarded links amongst senior devs and development managers.