Researchers Determine What Makes Software Developers Unhappy (vice.com)
Researchers recently surveyed 2,200 software developers to calculate the distribution of unhappiness throughout the profession, and to identify its top causes, "incorporating a psychometrically validated instrument for measuring (un)happiness." An anonymous reader quotes Motherboard:
Daniel Graziotin and his team found their survey subjects via GitHub. Contact information was found by mining archived data for past public GitHub events, where email addresses are apparently more plentiful. They wound up with 33,200 records containing developer locations, contact information, and employers. They took a random sampling from this dataset and wound up with about 1,300 valid survey responses... According to survey results released earlier this month, software developers are on average a "slightly happy" group of workers...
Survey responses were scored according to the SPANE-B metric, a standard tool used in psychology to assess "affect," defined as total negative feelings subtracted from total positive feelings. It ranges from -24 to 24. The mean score found in the developer happiness survey was 9.05. Slightly happy. The minimum was -16, while the maximum was 24. So, even in the worst cases, employees weren't totally miserable, whereas in the best cases employees weren't miserable at all.
The paper -- titled "On the Unhappiness of Software Developers" -- found that the top cause of unhappiness was being stuck while solving a problem, followed by "time pressure," bad code quality/coding practices, and "under-performing colleague."
And since happiness has been linked to productivity, the researchers write that "Our results, which are available as open data, can act as guidelines for practitioners in management positions and developers in general for fostering happiness on the job...unhappiness is present, caused by various factors and some of them could easily be prevented."
Survey responses were scored according to the SPANE-B metric, a standard tool used in psychology to assess "affect," defined as total negative feelings subtracted from total positive feelings. It ranges from -24 to 24. The mean score found in the developer happiness survey was 9.05. Slightly happy. The minimum was -16, while the maximum was 24. So, even in the worst cases, employees weren't totally miserable, whereas in the best cases employees weren't miserable at all.
The paper -- titled "On the Unhappiness of Software Developers" -- found that the top cause of unhappiness was being stuck while solving a problem, followed by "time pressure," bad code quality/coding practices, and "under-performing colleague."
And since happiness has been linked to productivity, the researchers write that "Our results, which are available as open data, can act as guidelines for practitioners in management positions and developers in general for fostering happiness on the job...unhappiness is present, caused by various factors and some of them could easily be prevented."
Being blocked from doing small fixes by Sarbanes-Oxley and management. But really Sarbanes Oxley.
Prior to SOX, I could see a problem- fix it, refactor the code.. etc. or see a minor improvement- implement it, refactor the code, etc.
After SOX, I had to run everything thru the team lead who had to justify it to the manager who had to justify to the director who had to justify it to the senior director who had to justify it to the Department head, who had to justify it (in a group of other changes) to the CIO.
Just the overhead meant that something which would make the code 2% better was blocked many times per year. Not worth the ROI.
And the overhead meant that improvements to the code which would make future maintenance easier were never approved any more. So the code just got harder to maintain over time.
The time constraints would also be important. I didn't really care about co-workers performance. That was between them and management.
She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
Don't let people who don't know fuck all about coding think they're qualified to manage software projects.
> software developers are on average a "slightly happy" group of workers...
As the old saying goes... A statistician with his head in an oven and his feet in a freezer says, “On average, I feel fine.”
Overly complicated, bloated frameworks, lack of documentation, buggy tools and incompatibilities make life miserable. Learning something new, finishing a project your proud of or raising your skill to a new level feels great. It would be nice to eliminate the lows though.
Users
Software developers today are well groomed millennial hipsters who are all millionaires (at least) and swimming in pussy.
Neckbeards are completely marginalized has-beens, are either dead or dying, and those still alive are living in poverty. No neckbeard is working in software development anywhere.
Neckbeard stereotype is two decades out of date. Troll harder next time.
You mean "old geezer who thinks before coding" instead of producing mountains of poorly conceived bug filled shit like you do. You're a fucking ageist dung beetle of a coder, aren't you.
Or Pascal for that matter?
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
Do you have any degree worth anything from Florida these days?
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
Getting spammed with inane surveys makes me unhappy.
These researchers who keep asking me if I'm happy are making it hard for me to focus on getting my work done...
#DeleteChrome
Running out of Mountain Dew wasn't top on the list? I call bullshit.
Fascism: An authoritarian and nationalistic right-wing system of government and social organization. See also: NAZI's
... the top cause of unhappiness was being stuck while solving a problem, followed by "time pressure," bad code quality/coding practices, and "under-performing colleague.
In my experience what makes developers unhappy is having to write documentation, perform testing and fixing bugs.
Of course, that might simply define the habits of the "under-performing colleague" that then drags down the happiness of other, more diligent and professional, developers.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
That's a lot of 'unhappiness'...
List of programming languages - section P
P seems to be the largest group behind S and C. Don't let your happy little code experiences be thwarted by one or two rotten eggs ;)
Postscript, Powershell and Python are very well known. But... did you know there is a Prolog interpreter written for .NET CLI called P#? Pizza likes a cup of Java on the side and there seems to be an entire family of PLs. And apparently, in the 80's, VM/CMS (currently z/VM) didn't have pipes built into the command line interface but there was a separate program called 'Pipelines' with its own utility programs and syntax, so you could do some similar tricks with pipes as what was available in UNIX... I learned some new things today :)
I bet having head shaved by researchers and electrodes embedded in brain, came pretty high on the list?
I've seen my share of managers who seem to think people can't be serious about their work if they are having a good time. I suspect this is linked to a strong protestant christian influence on the culture of my country. It's frustrating, it makes them actively fight something that (to me) obviously boosts productivity.
The single biggest gripe would be "forced to use the same super-locked down image from IT that is given to management, secretaries and marketing, but expected to 'build great stuff'." Seriously, while I've worked with some very smart IT people, I'd say that the majority of IT is no more knowledgeable about infosec than the average developer and even frequently less knowledgeable.
What makes developers unhappy is bloody researchers coming to the door with their surveys.
systemd is Roko's Basilisk.
Figuring out how to get unstuck is part of the fun.
Making a great gadget and having it come to nothing due to marketing.
Also having the project direction jerked around for no good reason.
Schedules are pretty high on the bad list.
Silly lack of resources where the cost of not having them is higher than having them.
Captain Obvious required training to satisfy a legal (often SOX or EEOC) checkoff box is only annoying.
Dilbert-like clueless bosses are not always a problem, sometimes they are another problem to figure out how to fix.
I have heard some complain about having to deal with 'pesky humans'?
I've always said beer in the coke machine with an after 5 lockout and a recliner in my office would be nice.
Come to think of it, I've seen that done. It worked, but there might have been a few more bugs.
No, just under-performing. I am one of those that does not write any code before thinking about the problem. I may go weeks without even opening a prorgamming tool. Just staring blankly at my computer, thinking. For any slightly complex project, I am about 10 faster, ignoring my reduced number of bugs and higher performance.
A more recent projects was one that I had already done in the past. I spent about two weeks working on it. Around 4 days thinking and 6 days coding and testing. It was a high performance async concurrent library that could be easily reused and extended. Extending required little knowledge of concurrency as I wanted the library to be easy to use for any programmer.
Another project came along about a year later that would have been a 100% perfect fit for my library. I could have had the project completed in 1-2 days. Instead management decided to give the project to some senior programmers, because the project was of "high priority". It was a two man team. They came to me for guidance because they were aware that I have worked on this kind of stuff before. I spent about 3-4 weeks in meetings with them, then it took about 5 months for them to complete it. In the end, there was no tests, because they didn't have time, the code was brittle, was slow, everything was hard-coded. Small requests for change would take days, where in my system, everything was just a configuration, so they changes would have taken minutes with my library.
I got to look at their code in git. It's crazy simplistic. Loads tens of gigabytes of data into memory instead of streaming it, among other horrors. Looking at git, I could see they started coding the day they got the project.
Only solution for the under-performing colleague problem is acceptance of different skill and engagement levels. It's very hard to deal with it, but people knowing how to accept and live with it is the only solution.
The alternative is giving you better colleagues, but then you might start upsetting them. In any group there will be under-performers.
Not being given the tools I need to do my job.
Being blown off when I try to get them to do more basic stuff like source control and release management.(Oh we don't need to do that, we're fine.)
Working under a manager where you seriously begin to wonder if they're literally a psychopath.(Hasn't happened much to me but there's been one or two where I started to wonder.)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
I wonder if the happiest developers were the under-performing coworkers? (The Wallies.)
The Daddy casts sleep on the Baby. The Baby resists!
While the results are interesting, they are likely biased due to the source of the survey respondents being GitHub users. I would assume that GitHub users lean toward the open source world. While I like the open source world, it does not represent the whole of software developers. There are lots of developers that work on proprietary software and or projects that are not allowed to use cloud based (like GitHub) repositories and tools.
Prolog does not “do”. It just “is”.
IT forgets all the developers who do it by the book and cause no trouble. But that developer who used to the root of some CFD lab in grad school 20 years ago wants to be root now and install random packages from unknown websites in his machine, or opens TCP-IP ports, reassigns UDP ports for the daemons... He will be remembered and talked about, "Do you know what that idiot did today ?..."
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
A statistician with his head in an oven and his feet in a freezer says, âoeOn average, I feel fine.â
I think that is the perfect analogy for software. Sometimes you are facing what seems like an utterly insoluble problem, with people breathing down your neck for a solution... so much stress.
But then more often than not, you work past the problem, and all is well. It's a huge feeling of accomplishment.
Honestly it's what I like about working with software. A profession that offered more minimal highs and lows would just be too boring I think.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
n/t
Have gnu, will travel.
80% of the problems of unhappiness are caused by other people:
* Lack of communication from upper management
* Excessive communication from upper management
* Over (Micro) management
* Under management
* Unrealistic schedules
* Unrealistic features usually promised by Marketing / Sales
* Lack of Design
* Over-engineered design
* Constant interruptions
* Meetings that drag on
* Excessive meetings
* Hardware bugs
* No authority to make changes
* Lack of Quality Assurance
* Excessive Quality Assurance
* Lack of ergonomic hardware
* User Experience designers that don't know what the fuck they are doing
The remaining 20% problems ARE things we can actually directly deal with:
* Complexity
* syntax/compile bugs
* run-time bugs -- such as logic bugs, not handling exceptions such as Out of Memory, Out of Disk Space
In the 40 years I've been programming Programming Languages, like fads, come and go.
The one thing that is constant is that this list hasn't changed.
--
JavaShit, noun, a brain-dead programming language hacked together in 10 days by a moron where you are forced to use magic numbers like:
Ah, yes, _those_. Another field they excel in is identifying "(web application) implementation worst practices" and then using them extensively. Many coders seem to struggle getting it to work at all and have not grasped any of the finer points that are so all-important. They are about as useful as a person that has figured out how to get to the other side of the road, but has never understood that there are little things like looking for and avoiding traffic and quite often even has failed to understand that they should find out beforehand whether there is actually a need to get to the other side of the road.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Fearing concurrency is irrational. Difficult to reason about concurrency when you're in an irrational state of mind. The ability to quickly debug concurrency issues separates cargo-cult from programmers, because understanding concurrency requires understanding of the code. I will agree that working in poorly designed concurrent code is a major headache.
If you are a software developer working for a company that is not a software shop, your life is pretty much compromise. You have to build applications and systems that often seem repetitive, within timeframes where you are pretty much forced to cut corners. Usuall the cut corners are in in testing/documentation if you are lucky, but sometimes you miss in functionality and stability. Yes, you can refuse to cut corners and quit (or be fired), but this may not be a near-term option for people supporting families, medical challenges, etc.
Which got me wondering, what if you are an artist and find yourself painting repetitive lake and seafront landscapes, Venitian canal scenes, and the other sort of stuff you see in the Home Goods art aisle? I'm sure these artists are having to pump out sub-par work, stuff that they aren't thrilled with, are they inherently miserable creatures? Or do they say "I get to do something I like to do for a living, my work may not end up in the Metropolitan Museum of Art, but that's ok"? Same kind of thing with musicians who write soundtracks for straight-to-video movies or reality shows, are they in abject misery beause they are not the next Mozart, John Williams or even a pop star?
Maybe closer to home for us Slashdotters, what about auto engineers? Not everybody gets to work on the next BMW concept car. For those having to work on generic sedans priced under $20k, are there corners to be cut analogous to what software developers are asked to do (safety, emissions, performance)? Does this result in similar misery/angst being described in TFA?
What makes me unhappy is not to test, is to ask me to mix 3 jobs : being a thorough tester, a full time job, and a thorough programmer, and a thorough business analyst again both full time job. Sorry guys, I can do 1 very good, 2 passable,and 3 badly. Or I will give you estimate which will shock you.
C. Sagan : A demon haunted world:
http://www.amazon.com/gp/product/0345409469/
visit randi.org
The paper -- titled "On the Unhappiness of Software Developers" -- found that the top cause of unhappiness was being stuck while solving a problem, followed by "time pressure," bad code quality/coding practices, and "under-performing colleague."
Isn't that the whole nature of software. Any challenging work worth doing is going to get you blocked at some point or another, and it is one of the reasons we get paid well (compared to other professions.) If shit were easy, we would never get blocked. And then it would be the type of work anyone could do it.
Honestly, me no get it.
One of the annoyances I have are seasoned developers who don't want to learn. There isn't a lot of benefit from experience if you don't take advantage of language constructs if they didn't exist in FORTRAN.
From the paper:
“ I feel negative when I get really stuck on something and cannot get around it ”. Another respondent elaborated: “ I also thought of situations where I’m debugging some issue with the code and I can’t figure out why it isn’t working – when it seems like ev- erything should work, but it just doesn’t. This is definitely one of the biggest gumption traps I encounter ”.
While I've definitely encountered these situations, these are some of the best learning experiences. In fact, the whole task of problem solving is why you should be in this field. If you wanted an easy job with simple step by step procedures that will always work, find a different field. If you want to just write an algorithm and not deal with implementation quirks, go in to a more theoretical area.
In fact, the whole list is a whine fest about anything that anyone in any job has to deal with: "If you remove my idiot coworkers, remove deadlines, and everything I do just works perfectly, I'd be happy."
Software developers know when they are productive, and being productive means being happy. If they are unproductive because they have to wrestle with stubborn tools, hardware, management, processes, etc, then of course they are unhappy.
Or even "we pay an average salary, but we only want top-of-the-line people". Which doesn't work.
I have one at work and am forced to work with him. He spends all day giving sidelong glances at my screen and I've caught him announcing things to people in a way that it makes it look like he's the originator of the thought.
---- The above post was generated by the Turing Institute. Maybe.
Upper management changing specs on you, with no change in schedules. And, of course, they created the schedules, while having no idea that programming doesn't mean moving a mouse around for a few minutes and voila, there it is.
Then there's the environment... like the infamy of "open plan offices", so that managers can walk around and see if you're working (which they can tell by seeing you typing).