8 ms·
This article reminds me of my early days at Microsoft. I spent 8 years in the Developer Division (DevDiv). Microsoft had three personas for software engineers
by noen 1y ago
This article reminds me of my early days at Microsoft. I spent 8 years in the Developer Division (DevDiv).
Microsoft had three personas for software engineers that were eventually retired for a much more complex persona framework called people in context (the irony in relation to this article isn’t lost on me).
But those original personas still stick with me and have been incredibly valuable in my career to understand and work effectively with other engineers.
Mort - the pragmatic engineer who cares most about the business outcome. If a “pile of if statements” gets the job done quickly and meets the requirements - Mort became a pejorative term at Microsoft unfortunately. VB developers were often Morts, Access developers were often Morts.
Elvis - the rockstar engineer who cares most about doing something new and exciting. Being the first to use the latest framework or technology. Getting visibility and accolades for innovation. The code might be a little unstable - but move fast and break things right? Elvis also cares a lot about the perceived brilliance of their code - 4 layers of abstraction? That must take a genius to understand and Elvis understands it because they wrote it, now everyone will know they are a genius.
For many engineers at Microsoft (especially early in career) the assumption was (and still is largely) that Elvis gets promoted because Elvis gets visibility and is always innovating.
Einstein - the engineer who cares about the algorithm. Einstein wants to write the most performant, the most elegant, the most technically correct code possible. Einstein cares more if they are writing “pythonic” code than if the output actually solves the business problem. Einstein will refactor 200 lines of code to add a single new conditional to keep the codebase consistent. Einsteins love love love functional languages.
None of these personas represent a real engineer - every engineer is a mix, and a human with complex motivations and perspectives - but I can usually pin one of these 3 as the primary within a few days of PRs and a single design review.
- DonHopkins 1y agoIs Microsoft so Balkanized that they have a Developer Division, Developer Multiplication, Developer Addition, and Developer Subtraction (where you get transferred to before they fire you)?
- Waterluvian 1y agoThe larger a corporation gets, the more npm packages you have to first install before accomplishing any meaningful work.
- azhenley 1y agoI had a lot of fun in DevDiv!
- darkstarsys 1y agoClearly they were missing Amanda, the engineer who's had to review others' terrible code (and her own) for 20 years, and has learned the hard way to keep it simple. She knows she's writing code mostly for people to read, not computers. Give me a small team of Amandas any day.
- darkstarsys 1y agoAnd as a manager/CTO, the way to do this is to give the devs time to think about what they're doing, and reward implementation clarity (though it's its own reward for Amandas).
- flappyeagle 1y agoThe way to do this is to chew people out when they let their own sources get in the way of doing a good job
- jadbox 1y agoMort, Elvis, Einstein, Amanda does seem to fit well with my experience. While people are a mix, generally I think its fair that there is a primary focus/mode that fits on career goals. - Mort wants to climb the business ladder. - Elvis wants earned social status. - Einstein wants legacy with unique contributions. - Amanda just wants group cohesion and minimizing future unpredictability.
- RaftPeople 1y ago> - Mort wants to climb the business ladder. I think the personas have some validity but I don't agree with the primary focus/mode. For example, I tend to be a mort because what gets me up in the morning is solving problems for the enterprise and seeing that system in action and providing benefit. Bigger and more complex problems are more fun to solve than simpler ones.
- germandiago 1y agoI vote for Amanda. Really, there is no substitute for seeing something easy to understand. I have been most of my career working with C++. You all may know C++ can be as complex as you want and even more clever. Unless I really need it, and this is very few times, I always ask myself: will this code be easy to understand for others? And I avoid the clever way.
- bravetraveler 1y agoAnimal Farm, but with a twist
- Disposal8433 1y ago> three personas for software engineers The kind of psycho-bullshit that we should stay away from, and wouldn't happen if we respected each other. Coming from Microsoft is not surprising though.
- mdaniel 1y agoFor my frame of reference, do you think the Myers-Briggs Type Indicator are psycho-bullshit, too? Because I had characterized personas as a very similar "of course it's a generalization" and OP even said themselves "every engineer is a mix" but if you're coming from stance that bucketing people is disrespectful, then your perspective on MBTI would help me digest your stance
- tptacek 1y agoI briefly flagged the preceding comment for "psycho-bullshit" before concluding that it was just a really forceful way to say the developer personas were pseudoscientific (of course they are, nobody is claiming otherwise) but I think it's worth calling out that MBTI is also pseudoscientific; it has no real validity, or even test-test reliability.
- mdaniel 1y agoI would guess that lack of repeatability happens a lot with any self-reporting scheme, but I am sorry that I accidentally picked such a polarizing "people generalization" scheme to use as contrast. Maybe I should have used "introvert versus extrovert" or something Anyway, their sibling comment told me what I wanted to know, so in that way I'm wasting more of my time contributing to this
- tptacek 1y agoI thought the Microsoft developer persona thing was cute. I didn't think anybody was claiming it was science!
- deleted 1y ago[deleted]
- antithesizer 1y ago[dead]
- Waterluvian 1y agoYeah… it’s like picking three points in an n-dimensional matrix. It is sufficient for creating an illusion of being scientific about it.
- tempodox 1y agoIndeed. And besides that, all three are really bad parodies. Mort is the only one where the product actually works, because for him that’s an explicit goal. With the other two, a working product is mere coincidence.
- jama211 1y agoPrecisely. Also people underestimate the power of mort code. The world runs on it, and besides, at the end of the day unless you are an executive or own significant stock in the company, making decisions about speed/outcome vs tech debt actually isn’t your job IMO. Give your opinions and advice but at the end of the day build what they ask you to in the manner they’re happy for you to build it - if they demand speed over quality that’s on them. And you can improve everything with a system. A team of morts forced into a framework where testers/qa/code review find and make them fix the problems along the way before the product is shipped is an incredibly powerful thing to behold.
- s1mplicissimus 1y agoExactly the expectation value for "analysis of types of developers done by people who really don't care about people" "so, there's 3 boxes. no more, no less. why? i have a gut feeling. axis? on a case by case basis. am i willing to put my money where my mouth is? heallnaw!"
- freshtake 1y agoThe best engineers are all three, and can turn up or down these tendencies depending on what's required for the project, business, or personal goals. These should not be fixed in proportion over time, as they are each useful in different circumstances. I spent time at Microsoft as well, and one of the things I noticed was folks who spent time in different disciplines (e.g. dev, test, pgm) seemed to be especially great at tailoring these qualities to their needs. If you're working on optimizing a compiler, you probably need a bit more Einstein and Mort than Elvis. If you're working on a game engine you may need a different combination. The quantities of each (or whether these are the correct archetypes) is certainly debatable, but understanding that you need all of them in different proportions over time is important, IMHO.
- purplezooey 1y agoPerhaps best modeled as a waveform that starts before morning coffee. Each engineer has a vector of spectral magnitudes.
- roblh 1y agoThat’s super interesting. What was the ideal ratio, back then. Is it still the same now? Or I guess maybe it depends on the specific role and could be different in each. What exactly do you find valuable about thinking in these terms?
- rapind 1y agoMort is the pragmatist, Einstein is the perfectionist, and Elvis is... let's be honest, Elvis is basically cancer to a project. I guess maybe a small dose of Elvis can help motivate? I see the ideal as a combination of Mort and Einstein that want to keep it simple enough that it can be delivered (less abstraction, distilled requirements) while ensuring the code is sufficiently correct (not necessarily "elegant" mind you) that maintenance and support won't be a total nightmare. IMO, seek out Morts and give them long term ownership of the project so they get a little Einstein-y when they realize they need to support that "pile of if statements". As an aside, I'm finding coding agents to be a bit too much Mort at times (YOLO), when I'd prefer they were more Einstein. I'd rather be the Mort myself to keep it on track.
- chickenbuckcar 1y agoUnfortunately for a fast growing industry (think AI, LLM), Mort + Elvis will be much more success then any combination with Einstein. The speed to adapt a new technology into a specific domain outweight your ability to scale for long term (think the oracle vs sybase in server)
- KronisLV 1y ago> Elvis is basically cancer to a project. I guess maybe a small dose of Elvis can help motivate? Sometimes teams are quite stuck in their ways because they don’t have the capacity or desire to explore anything new. For example, an Elvis would probably introduce containers which would eliminate a class of dependency and runtime environment related issues, alongside allowing CI to become easier and simpler, even though previously using SCP and Jenkins and deploying things into Tomcat mostly worked. Suddenly even the front end components can be containers, as can be testing and development databases, everyone can easily have the correct version locally and so on. An unchecked Elvis will eventually introduce Kubernetes in the small shop to possibly messy results, though.
- rapind 1y ago> An unchecked Elvis will eventually introduce Kubernetes in the small shop to possibly messy results, though. Elvis and Einstein joined powers to create 14 new javascript package managers over a handful of years while Mort tore his hair out.
- james_marks 1y agoThis is a helpful framing, thank you. Something was bugging me after an interview with a potential hire, and now I can articulate that they were too much Einstein and not enough Mort for the role.
- HumblyTossed 1y agoI lean towards Mort for most things, Einstein for the key things and freaking NEVER Elvis.
- jama211 1y agoMort is the only one who does their job from the perspective of the business owner.
- whilenot-dev 1y agoI think implementing stuff correctly (Einstein) is sometimes more important than doing what you're told to do (Mort) - requirements don't always represent business interests.
- jama211 1y agoIt’s more important if your goal is an _actually good product_. Whether that’s the goal of the stakeholders is quite honestly up to them.
- cgarvis 1y agoReminds me of the three tribes of software programmers. https://josephg.com/blog/3-tribes/amp/ https://josephg.com/blog/3-tribes/amp/ Mort == maker Elvis ==? hacker Einstein == poet
- _dain_ 1y agomort = paladin elvis = thief einstein = mage
- VagabundoP 1y agoAmanda=Cleric
- jama211 1y agoWho’s the bard? I feel like I’m more of a bard
- SteveJS 1y agoPersonas are a great tool. IMO - By the time you arrived these had transformed into bad shorthand. (I say this having been in Devdiv through those years.) Elvis is not a persona - it is an inside baseball argument to management. It suffered a form of Goodhart’s law … it is a useful tool so people phrase their arguments in that form to win a biz fight and then the tool degrades. Alan Cooper, who created VB advocated personas. When used well they are great. The most important insight is your own PoV may be flawed. The way a scientist provides value via software is different than how a firmware developer provides value. https://www.amazon.com/Inmates-Are-Running-Asylum/dp/0672316498 https://www.amazon.com/Inmates-Are-Running-Asylum/dp/0672316...
- whiteboardr 1y agoIf personas in this context resonate with you, I highly recommend - even if only remotely related - to read Rich Gold’s The Plenitude. https://mitpress.mit.edu/9780262543798/the-plenitude/ https://mitpress.mit.edu/9780262543798/the-plenitude/
- jama211 1y agoI think this is somewhat dangerous, it can lead you to categorise people unfairly and permanently. Also, in my experience this has a critical flaw - the managers love morts in my experience, not Elvises. They don’t care about the technical details, so “fastest and fits the business outcome the most” is ideal. Also the actual solution is proper team leadership/management. If you have morts, make sure that code quality requirements are a PART of the requirements their code must pass, and they’ll instead deliver decent work slightly slower. Got an elvis? Give more boundaries. Got Einsteins? Redefine the subtasks so they can’t refactor everything and give deadlines both in terms of time but also pragmatism. Either way, I don’t love this approach, as it removes the complexity from the human condition, complexity which is most important to keep in mind.
- zmmmmm 1y agoI agree with you and one of the most important ways is that it bakes in an assumption that people cant grow, learn and change. Life is all about learning, adapting and changing. Great leaders see the potential growth in people and are up for having hard conversations about how they can improve. Even if people do have these personality traits as life long attributes, that doesn't define them or prevent them from learning aspects of the others over time.
- jama211 1y agoWell said!
- augusto-moura 1y agoCan you share what was the new framework? At least some of the details, it sound interesting what was the new understand
- TZubiri 1y agoI'd love one of those old facebook quizzes like "take this quizz to figure out which friends character you are", but for figuring out whether you are a Mort, an Elvis or an Einstein