今日推荐英文原文：《Software Development Culture Is Too Positive — and It Might Hurt Us》
今日推荐英文原文：《Software Development Culture Is Too Positive — and It Might Hurt Us》作者：Albert Kozłowski
Software Development Culture Is Too Positive — and It Might Hurt Us
Anything that looks too optimistic comes with a hidden costIt feels weird to write about something being too positive. However, I have started noticing that many software development problems might be caused by people being too positive and passionate. Let me explain.
BurnoutIsn’t it weird that so many young people are already feeling burnt out after a few years of work? I keep meeting people who need a break after just their first year or two. I’ve also experienced burnout myself (twice even). The first time, I had to take a six-month break. The second time, which was very recent, I needed a full year off before I could come back to programming.
This year, I’ve spent a lot of time with people outside tech and noticed one thing: We don’t complain much about our work. We complain about bad bosses and bad projects, but not about coding itself. We take passion for granted. Surprised? Go through job offers. Passion is often one of the must-haves listed on them. We are expected to love our job, and even more, we are expected to make programming the center of our universes.
But what about the people who do not love programming and still do their job all the same? Try to identify yourself as one of those among your colleagues or on Twitter, and you will immediately be dismissed as being a bad developer. However, is that really the case? People who do their job and try something different after working hours can be amazing programmers too. Not everyone needs to come home and work on side projects, create blog posts and YouTube videos about coding, and read programming books for fun.
I have been one of those people trying to work through all my spare time. For many years, I felt guilty if I didn’t spend all my waking time chasing some imaginary productivity goal — and guess where that landed me?
Shiny New ThingsAnother aspect that is heavily biased against negative feedback is following new trends originating from FAANG companies. Try to speak up against SOA or Docker. Try to propose using an older, more mature language and SSR. It’s similar to having a passion for work. People immediately conclude that you are not a good developer, as you are “blocking the progress.” Not everyone is running thousands of microservices like Uber and not every company needs K8S. However, it’s hard not to get on board — or at least pretend to be on board. How many organizations fail to migrate to React or Angular and are left with a code base split between the old “bad” code that was working and the new code that developers are still fighting to make work?
This recent article shows the reality in many organizations:I Almost Got Fired for Choosing React in Our Enterprise App(https://medium.com/better-programming/i-almost-got-fired-for-choosing-react-in-our-enterprise-app-846ea840841c)
Best PracticesWhen I was a Technical Lead, I often heard the phrase “because it is a good practice.” I would then ask further questions and often noticed that the person didn’t quite understand the solution. It was my litmus test to know when to dig deeper.
How many of these “universal” best practices aren’t really universal? DRY (Don’t Repeat Yourself) is often said in the same sentence as KISS (Keep It Simple Stupid), yet they are often mutually exclusive practices. “Simple” means no unnecessary abstractions, yet starting with DRY code leads exactly to premature abstractions.
I personally use the rule of 3X:
“We have the delusion of reuse. Don’t feel bad. It’s an endemic disease among software developers. An occupational hazard, really.
It is three times as difficult to build reusable components as single-use components, and A reusable component should be tried out in three different applications before it will be sufficiently general to accept into a reuse library.” — Coding Horror
Obviously, I don’t treat it as a maxim. It’s more of a rule of thumb than good practice. But even here, we are getting to the same problem. People who dare suggest using singleton or any other hated anti-patterns are perceived as less than stellar developers.
SummaryThe expectation that real software developers, hackers, and geeks are defined by their vocation feels like being in some sort of RPG game. Your trade will forever define you, and once you choose this path, there is no way back.
We, as developers, are expected to love programming. But why? The simple truth is that it is good for employers. How many horror stories have come out of game dev? Yet many young people dream about working in the gaming industry only to be replaced by another batch of young, naive people after a few years.
We need to normalize people not “loving” to code, and we need to normalize having a healthy work-life balance in tech. We need people to be more open about their opinions, even if they are against the moment’s hype.
Don’t get me wrong, I really like being a software developer and I like programming. However, I am not sure if I love it being the center of my universe anymore.
I want to try other things, and that is absolutely OK.