10 ms·
For those just skimming, here are the top 10 reasons for software developer unhappiness, according to the paper: 1. Being stuck in problem solving 2. Tim
by dvt 9y ago
For those just skimming, here are the top 10 reasons for software developer unhappiness, according to the paper:
1. Being stuck in problem solving
2. Time pressure
3. Bad code quality and coding practice
4. Under-performing colleague
5. Feel inadequate with work
6. Mundane or repetitive task
7. Unexplained broken code
8. Bad decision making
9. Imposed limitation on development
10. Personal issues – not work related
I've dealt with most of these, and I think they betray the mantra of the "modern" software engineer: push features fast. Code quality, adequate explanations, proper planning, and lenient time tables are an afterthought.
- sedzia 9y agohttp://imgur.com/nt0YEfs http://imgur.com/nt0YEfs
- BinaryIdiot 9y agoThanks, I think the frequency numbers are important to know how different the issues are. The paper is quite a bit to digest but this is probably what most people who click the link are really after.
- erikb 9y agoI would use the table to summarize even further: Many problems are self derived or due to (lack of good) process. And going further I'd say that even the process part is self derived. If you ask a programmer, he'll often say he hates process, meetings, and decisions where he wasn't in the majority (the last one only indirectly). But he also loves the results of process: quality, aligned decision making, people in other departments considering his previous work on a topic. The thing with self derived problems is that you can't do much from the outside beside trying to show with examples and experiences that other ways are possible. Last but not least I personally feel that if you mostly or only have self derived problems left you belong to the happiest group of people on the planet. Sadly human nature does not make us happy if we get everything we want. We're still relatively unhappy.
- huat 9y ago> quality, adequate explanations, proper planning, and lenient time tables are an afterthought. This is par for every activity involving humans. The problems with devs is they think they cant "control" it better because most of their life experience of "wins" comes from controlling a controllable machine. Obviously when applying it to ppl it all breaks down. Most other profession in the real world who really have no experience of that level of control on anything learn control is always negotiated involving patience which most dev's don't really have to learn leading to all kinds of misguided notions and solutions to real world problems.
- ghughes 9y ago> Code quality, adequate explanations, proper planning, and lenient time tables are an afterthought. Can anyone recommend reading material for a founder who wants to get these things right from the start? Is there a definitive guide to creating an environment where engineers can thrive?
- afarrell 9y agoThe Clean Coder is a good guide for individual engineers, but I don't know one for managers.
- dilemma 9y agoCheck out the book Lean Thinking.
- oblio 9y agoBesides the books recommended below, check out Peopleware if you haven't already, as well as Joel On Software (skim the blog list to only read the ones related to creating a good work environment).
- crdoconnor 9y agoThe Mythical Man Month. I've worked on at least 3 projects that went disastrously wrong and could have been fixed if the manager read that book.
- pif 9y agoJust one simple advise: sell software as if it were hardware. If you have it in store, you sell it, as it is. If you don't have it in store, you don't sell it. You can inform potential customers about next foreseen delivery, but do not act as if you _knew_ next delivery date. Just realise how absurd it is to plan a fixed time for tests: either it works, and the tests will run smoothly the first time, or it doesn't work, and you can't know when it will work. If you knew when it will work, than you'd have understood which defects it has, which means that you'd have had it right on the first time.
- hoorayimhelping 9y agoIf you're a founder, I'd suggest Peopleware and have your engineering and product leaders read The Mythical Man Month
- skookumchuck 9y agoDoesn't this apply to most any job? People are by nature grumblers, and they grumble about work. Why should software development be special?
- sharmi 9y agoAs a counter-point, another important reason for developer unhappiness is to put in lots of work and have nothing to show for it. Case in point, a company I worked for had so much internal politics we never got around to releasing anything worthwhile and it was the most demoralizing experience I ever had, leading to a burnout. There should be healthy balance of releasing fast and cleaner codebase. That balance changes based on the team size (1 vs 10 vs 100) and developer experience (the more experienced you are, more effortless it is to write clean code) .
- enobrev 9y agoI have an experience very much related to this, which is to develop for a platform I cannot use. A couple clients in recent years have hired me to develop the backend system(s) for clients that were meant to be built for Android and IOS. Somewhere down the line, after I'd already been well invested, these projects dropped their intention to develop for Android and thus I was stuck working on the backed for an application I had no reasonable means to use everyday. Sure, I have an iphone for development, but my day-to-day phone is an Android. Over time it gets harder to remain interested in a project I can't personally use. It's not that I can't fill my day with interesting work, since my portion isn't specific to the client platform, it's just that I can't show it off when I'm not working on it. Because this has happened a couple times already, I've started ensuring there will at least be a web-client available before I sign onto the project.
- hahamrfunnyguy 9y agoAs a software consultant, I am rarely the target user on any of the software I develop. Occasionally, this means integrating with platforms or systems I do not personally like. I derive satisfaction from from crafting a high-quality experience for the user that solves their problems. At the end of the day, whether I use the system or not, I can take pride in a job well done. I've found that sometimes, the difference between a negative and positive situation is just the outlook.
- shubb 9y ago
- daef 9y agoas a software developer it really makes me unhappy that this list goes from 1-10 and not from 0-9 ;)
- hahamrfunnyguy 9y agoActually, it should go to 11.
- Chris2048 9y agoNot all is like that. Julia numbers from 1
- pjmlp 9y agoLuckily not all languages start from 0.
- nickjj 9y agoMost of those seem related to working at a crappy job, and would negatively effect everyone, not just software developers. As a consultant / freelance developer a lot of those reasons are non-existent.
- hahamrfunnyguy 9y agoI am in a consulting role and I often make upgrades to existing systems or integrate with existing systems. Sometimes, that means working on a 20 year old system and all the cruft that comes along with it. I can feel the pain of some of those points. It can be frustrating when you strongly believe that replacing or fixing a part of a system would be beneficial, yet it is not done for political reasons. Personally, I can take comfort in the fact that I've brought the issue to their attention.
- pjmlp 9y agoAs consultant for Fortune 500, I have experienced all those reasons. Pay, freedom to remote work and days off whenever I feel like is what makes me mostly happy.
- nickjj 9y agoI guess it does depend on how you find work. I'm not part of an agency or corporation. The only things from that list that I routinely have to deal with are #3 and #7. This is usually when taking over old code bases. But...sometimes I don't really mind that. Refactoring is relaxing to me, but it depends on what mood I'm in. I also rarely see #1 as an issue. Yeah sure, it really sucks when you spend hours being stuck on 1 problem, but I would rather deal with that than being bored out of my skull.
- codingmyway 9y agoI'd add very long hours sat (or even stood) at a desk. Coding on the beach is less depressing.
- pc86 9y agoI've never felt very productive doing any programming outside. Is that just me? I'd rather be doing something else if I'm outside.
- arjie 9y agoSame here. I've tried the outside thing and I think I'm just far more productive and far happier if I keep my outside time free of work. And there's the fact that my desk is set up to be comfortable, protect against RSI, and have everything I need available at hand. Just sitting back down brings back where I was the previous day. I like having talking meetings outside. But programming? Never again.
- naasking 9y ago> I've never felt very productive doing any programming outside. Is that just me? Depends on your personal history I'd say. If you spend years working from home, with little outside interaction in the day to day, productivity truly suffers. Changing your environment can be a huge productivity booster.
- cfreeman 9y agoI simply can't program with a laptop in my lap without my hands/back starting to hurt immediately. I'd love to work from the beach but I really need an ergonomic setup to get any real work done.
- r00fus 9y agoCertain types of work I can do by the pool or in a loud cafe. Mainly expository work like fleshing out a schema or writing doc / emails - where having external inputs guides my internal thought processes. Implementing designs, for me requires zoning as much as possible. Desks are good for this (if open-style office, headsets with downtempo playing or preferably fewer colleagues around is best). I'd never take non-hardened gear like a laptop to a beach... if I'm at the beach I'm there to have fun not work.
- lr4444lr 9y agoNumber 2 through 10 I agree with you. Number 1's presence on the list strikes me as evidence that there exist legions of people in this line of work who simply do not belong here. "Being stuck in problem solving" IMHO is a veritable source of professional happiness, not a detraction from it, among the best developers I know.
- meheleventyone 9y agoI don't think being stuck is a source of professional happiness but getting through it and out the other side. It's great to look back in hindsight at how much a situation sucked and how you pulled through. This applies to all sorts of things. I think you need to be able to enjoy problem solving though even if sometimes mid-process you feel awful.
- jschwartzi 9y agoLook, people are motivated by different things. Some people are motivated by unanswered questions. Some people are motivated by doing a good job. Some people are motivated by the impact they have on others' lives. Any of these people can solve problems in programming, and they often all do. It's naive to assume your entire team is motivated by the same thing as you. Furthermore, if you're building a team, you want diversity of motivation because it leads to diversity of viewpoints. Programmers who are motivated by people drive us to make usable software and not just to "solve the problem." Programmers who are motivated by quality challenge us to improve test coverage and keep our documentation clean. If you look at the composition of a diverse engineering team, you might notice that many of them are motivated to solve problems for different reasons. Programming isn't done in a vacuum, and our job isn't just to crap out solutions to hard problems. We don't work in a vacuum. Our solutions have to be robust, and they have to actually help people. Having a diversity of viewpoints on your team can help you ensure those boxes are checked.
- Clubber 9y ago>"Being stuck in problem solving" IMHO is a veritable source of professional happiness I agree, but it's because the reward is so great. I would imagine it's a different feeling if I was fixing someone else's (say offshore team) bugs all day.
- toomanybeersies 9y ago> 10. Personal issues – not work related That's sort of any job. I must admit though, I've found it especially debilitating in software development. When I was a plongeur/dishie, I could usually work through my issues, but with software development, my problems in life become intrusive thoughts, that constantly attack me through the day, ruining my thought and problem solving process. My main point of dissatisfaction with being a developer is actually the lack of human contact. Spending 7 hours a day with nothing but a computer for company is pretty soul draining. I guess it's all about balance though, so to balance it out, often I don't even touch a computer when I get home, my Macbook stays in my bag until the next day. At the same time, I hate meetings, so I really don't know what the solution is.
- philipov 9y agoThe solution is to move into a technical but client-facing role. Presales Engineering and Professional Services are great ways to be hands-on, but also tie your work directly to human interaction and business problems. What is it that you hate about meetings? There can be lots of meetings in presales work, but they're not the same kinds of meetings.
- watwut 9y agoMaybe you could try to find a company or team where there is more teamwork, maybe some truly agile team. Most projects I worked on were not the lonely type - you would be closely and daily cooperating with other people. The issue was the opposite e.g. how to organize it so that there are big enough uninterrupted chunks of time for concentrated work. You might also seek projects that are tailored for concrete customers - you have to communicate about requirements either with customer directly or with analyst. If you have to stare 7 hours a day into monitor, then it means other people are shielding you from all that communication - it is not always like that. Even more extroverted team might help - other extroverts will do the human contact thing even if there is no practical reason for it.
- Danihan 9y ago>My main point of dissatisfaction with being a developer is actually the lack of human contact. Spending 7 hours a day with nothing but a computer for company is pretty soul draining. That's my favorite part.
- H1Supreme 9y agoThese problems could be made analogous to problems in other professions as well. I worked as a graphic designer for 10 years, and a handful of shitty (boring) office temps jobs before that. I'm currently dealing with 6 out of 10 of these problems, and I still love the work. I thank the stars every day that I get to write code for a living.
- bm98 9y agoGlaring omissions: 11. Security vulnerabilities and attacks (and the fear of them) 12. Technical debt