I think there's a lot of talk in the industry about "developer experience" and easing friction and I get that and believe in that -- but I'm always struck by how, when you ask several hundred developers if they believe they can solve hard problems....they DO believe this! They solve hard problems all the time!
But certain kinds of "hard" are a killer--cascading demotivation for people.
This also has implications for where motivation "lives" in the system of software engineering. Yes, individual self-efficacy is always a good thing to encourage. But I am not sure it's what software teams truly deeply NEED, as much as they need support and protection against the second kind of hard.
What's the second kind of hard? Well we're working on identifying that, but there are pretty clear trends.
just read a long article about software not being good and honestly at this point I'm still a big believer of the idea that most "software is painfully low quality" problems in computer science boil down to either capitalism prioritizing what's profitable over high quality, or people who don't even /want/ to be doing programming doing programming... because capitalism makes it more profitable than things those people might actually be interested in doing
@grimalkina If - as a burnt out coder turned counsellor - I do the survey, would you like me to specify my "current" role (individual contributor) or my less applicable but really current role (other).
Do you want to capture the experiences of people so burnt out that they've left the profession?
@grimalkina I've spent a lot of time on the net over the last few years in a forum for therapists, supporting junior therapists through burnout. It's an endemic problem.
We also have a term we use for a phenomenon we experience: being deskilled. It describes how someone who is being treated as incompetent or worthless by others loses access to their advanced clinical skills. The do not perform their job duties well, and seem to be bad at their jobs when this happens to them.
@grimalkina That sneak peek looks interesting, because it seems to point to a lack of communication and knowledge management, and later on you mention that people need to be "protected" from that second kind of hard.
With respect to protection: according to your results, is that second hard perceived as "somebody else's job", or as something they need to improve on themselves (but e.g. haven't got the time for)?
@grimalkina some screenplays are jenga towers, where if you try to improve one bit -- a plot point or the motivation of a character, say -- it throws out another part. The problem is ridiculously overdetermined and you often can't tell if something will work unless you try it.
This is basically what people mean by 'development hell', where you end up making something different, not better.
@grimalkina A related problem is that once you've been working on something for multiple drafts, even the good parts bore you to tears, so you're tempted to start cutting or changing them, which causes even more problems. And you also become blind to completely obvious problems, like the fact that your protagonist is dislikeable. So you end up not solving problems that aren't the problem.
All of these can end up destroying your will to live!
@grimalkina
I definitely feel this!
I love hard problems that improve our customers' lives, or require a lot of careful thinking to get it right, or even some tricky, clever code.
And then you try to deploy it and it's like "Library A conflicts with the library B. But if we upgrade B logging breaks, and if we downgrade A..." and that saps my will to push forward like no other. š¬
@grimalkina Definitely feel the difference between those two!
The motivation killers for me are things like bad version control states, having to second-guess motives, being in the midst of code with massive technical debt, IT issues, inability to replicate. Basically, currently unavoidable confusion and/or lack of control.
But... something to improve what we have? A better algorithm, a better design, a better test? THERE IN A HEARTBEAT. Anything involving a whiteboard š
@grimalkina That's a fantastic topic to explore!
The unenjoyable problems aren't just issues in and of themselves, too; they're productivity-killers. I've seen other devs - and I'm sure they've seen me - just "fuzz out" and lean back trying to clear their head and get past the demotivation these roadblocks cause.
Unspoken costs of things that do not 'spark joy' but that we can't Marie Kondo away!
@grimalkina For big things, especially! There's ramp-up time where a network of understanding builds up - which is where technical debt can essentially overload working memory I *swear* - and it really seems like there needs to be a ramp down as well.
It's a lot like looking at programs running with a modest amount of RAM and slow disk. Exiting an app on a computer like that? SPIN spin spinspin spin spin.
Ah, maybe I'll just launch the next one now!
SPINS HARDER.
@grimalkina I'm sure there's also much to be said on the side about prefrontal and frontal cortex and the number of things one can juggle at the same time (the 5-9 items), and mental chunking, and how easy it can be to overload that system with too many loose ends, and just ONE extra loose end can make someone have to swap something in and out, losing concentration in the process.
I *think*. I can almost feel it happen, honestly.
@grimalkina In my own experience working mostly as a solo developer, I've noticed a big difference in my motivation for two seemingly similar tasks:
Figuring out how something works when there's documentation but it's bad: hate it.
Figuring out how to do something when it's not clear if it's even possible: love it.