back to article For $deity's sake, smile! It's Friday! Sad coders write bad code – official

Miserable software developers produce miserable software, to the further detriment of organizational productivity and personal health. Researchers from the University of Stuttgart, University of Helsinki, Free University of Bozen-Bolzano, and the Norwegian University of Science and Technology have completed a study [PDF] of …

  1. macjules

    The Plot Thickens ..

    Apple will pay for female employees who elect to freeze their eggs to delay childbearing.

    This is purely so that they can find a suitable donor and incubator for Project iRegenerate: the master plan to recreate Steve Jobs.

    1. Rich 11

      Re: The Plot Thickens ..

      And in 40 years, as Steve 2 starts to deterioriate, his half-sisters will be assessed for their suitability in engendering Steve 3.

      It'll be like Osiris and Isis being reborn into each generation of Egyptian pharaonic rulers.

  2. Anonymous Coward
    Anonymous Coward

    Always look on the bright side of life

    For code monkeys that an ORDER!

    1. AceRimmer1980
      Coat

      Re: Always look on the bright side of life

      $he=!messiah;

  3. getHandle

    I'd prefer my sparking water de-electrified!

    And isn't that prohibited by the Geneva convention?!

    1. getHandle

      Re: I'd prefer my sparking water de-electrified!

      Okay - now fixed in the article ;-)

  4. AndrueC Silver badge
  5. cantankerous swineherd

    "They don't like

    poor quality code, bad codebases, or

    refactoring. They resent code complexity, code

    reviews, and difficult problems. They resent

    technical infrastructure that constrains them

    and poor documentation. They can't stand

    vague requirements, unrealistic requirements,

    or the chore of code maintenance."

    sounds like they're in the wrong job.

    1. tfewster

      "They don't like poor quality code...[or] code reviews..."

      Sure, OTHER peoples code needs reviewing. But not MINE. And don't ask ME to review OTHER peoples code. Same for documentation.

      1. Anonymous Coward
        Anonymous Coward

        I would love code reviews. It's as if bad code getting past QA (as it usually does) and out into production is considered somehow cheaper and better than code reviews by manglement.

  6. druck Silver badge
    WTF?

    Knowledge worker?

    I don't like the term knowledge worker, its almost as bad as sex worker. I'm all for calling a prostitute a prostitute, and a programmer a programmer.

    1. Anonymous Coward
      Anonymous Coward

      Re: Knowledge worker?

      Knowledge worker to me sounds cheapening.

      Kind of like the chap who comes round a few months before the road repair team, spray painting the pot holes white and ticking them off on his clipboard.

    2. Anonymous Coward
      Anonymous Coward

      Re: Knowledge worker?

      "I don't like the term knowledge worker, its almost as bad as sex worker. I'm all for calling a prostitute a prostitute, and a programmer a programmer."

      How about 'Bit Wrangler', sounds more dynamic and go getting !!! :)

      Pity that the Job Title does not change the job.

      Job Title does not matter, while the 'crap you shovel' does. !!!

      BTW:

      Note how all the areas highlighted are 'Problem' being fixed after the fact.

      A bit :) more thought earlier in the process to anticipate the future problems would eliminate many of these or at least lessen them IMHO.

      1. Hero Protagonist

        Re: Knowledge worker?

        'Bit Wrangler'

        Initially read that as 'Bit Wanker'

    3. Anonymous Coward
      Anonymous Coward

      Re: Knowledge worker?

      I'm all for calling a prostitute a prostitute, and a programmer a programmer.

      There's a difference? They both get fscked by the customers.

  7. jake Silver badge

    POETS day.

    Piss on everything; tomorrow's Saturday!

    That said, if you want happy, content & productive workers, in ANY field of endeavor, keep your employees very, very gruntled.

    1. Tom Paine

      Re: POETS day.

      Isn't it Piss Off Early, Tomorrow's Saturday? I've been sold a pup!

  8. Individual #6/42

    Cause and Effect reversed

    Bad coding makes unhappy coders

    1. Swarthy
      Unhappy

      Re: Cause and Effect reversed

      Vicious Cycle:

      10 bad coding

      20 goto 30

      30 unhappy coders

      40 goto 10

    2. Doctor Syntax Silver badge

      Re: Cause and Effect reversed

      "Bad coding makes unhappy coders"

      Or:

      Bad coders make bad code and if you make life a misery for staff bad coders are the only staff you can retain.

  9. Anonymous Coward
    Anonymous Coward

    Coworkers who are too busy or uninterested in helping to deal with projects they've written and form the basis of work you've been asked to do. That an internal customers who would starve to death in a resturant if they ordered food the same way they interact with the IT department.

  10. Bronek Kozicki

    bullshit

    All these " employee perks, largely to keep difficult-to-replace technical talent from leaving for greener pastures. Google has climbing walls. Facebook has on-site barbers" are not relevant, if the hard problems remain unsolved. Things such as long build times, poor workflow, poor dependency management, undisciplined colleagues etc. And the thing is, these do not have to be outright "solved" because developers understand these are hard problems. Usually it is enough for developers to see that these problems are being addressed or at least understood by management.

    1. Anonymous Coward
      Anonymous Coward

      Re: bullshit

      And if they're not but it's just par for the course? My company offers above market rates, work from home, and flexible(ish) hours. And free fruit. Great, I should be happy.

      Unfortunately as well as the work itself being a bit boring, they expect us to maintain huge ancient codebases with vi and don't run static analysis tools and have no interest in changing things. Well, heads are nodded in meetings but that is all that happens.

      If I find another job I could quite easily earn half and be out after a year or two, such is the labour market where I am, so it seems I'm going stay and write sad code.

      1. Bill M

        Re: bullshit

        If you are working at home and fancy a free apple do they courier one over ?

      2. Doctor Syntax Silver badge

        Re: bullshit

        "they expect us to maintain huge ancient codebases"

        That's probably the code that's paying everyone's wages, including those of devs doing all the shiny stuff. The shiny stuff will either become legacy in due course or be forgotten about while the old stuff keeps running and running.

      3. Jonathan 27

        Yeah...

        They should let you use any code editor you like, it's not hurting them in any way. Otherwise maintaining huge ancient code bases is pretty much par for the course unless you work for a startup. I personally don't mind working with old code, even if it is terrible, as long as I'm allowed to clean it up and refactor as I go.

        Management that isn't interested in improving methods makes working somewhere pretty hard. If you're feeling the way you seem to be I'd recommend looking for another job, otherwise you'll just be miserable all the time.

  11. Torben Mogensen

    xkcd

    has this comment on the matter: https://xkcd.com/1790/

  12. Christian Berger

    Yes motivation is important, but it doesn't work that way

    If you want to motivate your coders, give them interresting things to do. Allow them to express themselves and to make mistakes. Allow them to try to reinvent things. Hire competent people. If everybody thinks they can learn from their peers, it creates a very pleasurable athmosphere of constant learning and discovery.

    Decarbonated sparkling water and such is just the way clueless HR drones try to solve the problem. That way you get the same boring list of employee benefits at every company.

  13. disgruntled yank

    Perks etc.

    Very early on in The First Circle, one of the imprisoned scientists or engineers cuts across another's long explanation and quotes a study that said that contented cows give more milk. I certainly don't mean to compare the situation of techies even in the crappiest jobs with that of prisoners, but rather to say that the principle has been around for a while.

    As for the in-house barbers, meals, etc., they sound to me like inexpensive ways to keep programmers around the campus longer. If providing a $20 lunch will cut half an hour off a highly paid coder's break, the gain for the company is clear. And if providing a dinner means that a 6 p.m. dinner is not the end of the workday, but a break before a couple more hours, the company gains still more.

  14. Anonymous Coward
    Anonymous Coward

    I'm not sure I believe this study. I reckon programmers made miserable by having to maintain awful legacy codebases are actually more likely to produce simple, no-nonsense, maintainable code. Happy programmers seem more likely to construct elaborate crystal palaces, full of dependencies on the latest flavour-of-the-month tools and frameworks, that will be entirely unmaintainable in 2 years' time.

    Actually, maybe the cause and effect are the other way round. Playing with all the new toys, weaving tapestries of golden thread with blithe disregard for the poor saps coming afterward, makes programmers happy. And grinding out boringly competent code with thorough documentation makes them sad.

  15. FuzzyWuzzys
    Facepalm

    Bunch of bloody whingers...

    "Developers, as they report about themselves, have a lot to complain about. They don't like poor quality code, bad codebases, or refactoring. They resent code complexity, code reviews, and difficult problems. They resent technical infrastructure that constrains them and poor documentation. They can't stand vague requirements, unrealistic requirements, or the chore of code maintenance."

    Try working in Ops as a DBA or sysadmin and for the 93rd time that week that the database/server is slow, wasting another 15 mins fetching the metrics ( 'cos proper software has instrumentation so we know what it's bloody well doing and don't have to guess! ) to prove once again it's a poor code release that's choking the DB/server and thus by dint annoying the users. Then getting dragged out of bed at 2am 'cos some numpty developer put a delete statement in the batch job release by mistake and the QA team were having a "Friday afternoon" moment and lost the key lookup data, which it's now your problem to restore from the backups.

    Yeah, yeah we get it devs are the only poor darlings who are put upon! ( Heavy dose of sarcasm and I need the pub! )

    1. Anonymous Coward
      Anonymous Coward

      Re: Bunch of bloody whingers...

      Whinging about devs being whingy? Sounds like you DBAs are nothing but a bunch of bloody whingers to me.

  16. Anonymous Coward
    Anonymous Coward

    I hate Fridays, Friday afternoons especially. IDK why, In fact 15:30 (current UTC) always used to be when the massive Friday evening blues really kicked in. Ohhh yes, I remember: it's because all the normal people are delightedly going off to enjoy their "lives", partners, kids, gadgets, home cinemas, sport, cinema and all the other crap they pollyfilla the voids in their lives with. Me, I prefer filling it with gin \o/

  17. Anonymous Coward
    Anonymous Coward

    correlation not causation

    Poor management (agile and scrum) make bad code and unhappy coders.

  18. Anonymous Coward
    Anonymous Coward

    So do we conclude from this that software stored on GitHub is unlikely to be maintained ?

    ( typed GotBug the first time - I'm off home ! )

  19. Mark 85
    Pint

    So "the beatings will continue until morale improves" is not acceptable practice anymore? Or did I get that wrong and beatings are encouraged. It's Friday.... see icon.

  20. Anonymous Coward
    Anonymous Coward

    It's simple neurobiology ...

    ... you keep everyone stressed and you get poor performance. Quarterly workforce management, for instance, distracts you from your job. Depending on your psychology and circumstances, you either get miserable or you put more effort into looking for a new job.

    Many in management think that an atmosphere of constant competition is actually more productive than one of collaboration. In my experience that is very nearly always because they are not nearly as good at anything as they think they are.

    1. quxinot

      Re: It's simple neurobiology ...

      Management must be terribly difficult. The ratio of truly good managers vs the number of managers approaches zero. More so than most fields, as nearly as I can tell.

      1. Jonathan 27

        Re: It's simple neurobiology ...

        I'd honestly argue that no management at all is better than the majority of managers I've had.

  21. Chemical Bob
    Facepalm

    Captain Obvious strikes again

    "Recent literature has suggested that a cost-effective way to foster happiness... could be to limit unhappiness"

    WELL DUH!!!

  22. Anonymous Coward
    Anonymous Coward

    Or..

    Writing bad code makes coders sad.

  23. Ken Moorhouse Silver badge

    Deadlines

    The root cause of this dissatisfaction is often unrealistic deadlines. If The Boss is not particularly aware of the nuances of analysis and coding there may be undue pressure to produce results. What a lot of bosses are unaware of is that it might take x days to meet a deadline, but this might be taking major liberties with design, so that when a further deadline is set which, to The Boss, is simply an incremental step, might involve a major back-track. In database work, for example, it may be even confirmed in an email from on-high that "you can leave postal addresses as one field, we'll never need anything more detailed." Then... later... "this report you've done is all very good, but I'd like to see it in zipcode/postcode order" which involves a complete rehash of the address fields.

    Having an "interface" between management and those doing the design and coding that understands both budgetary concerns and the technical aspects of coding is essential. Someone who is prepared to dig their heels in when good design and good coding principles are at stake. Get that in place and I suspect motivation and morale will soar.

    1. Doctor Syntax Silver badge

      Re: Deadlines

      In database work, for example, it may be even confirmed in an email from on-high that "you can leave postal addresses as one field, we'll never need anything more detailed."

      The law of inverse sensitivity:

      It's not important == It's critical

      I must have it this way == Nobody will care except the one knob-end who'd moved onto something else, never to return, before he even finished speaking.

      It won't change == It'll be the most volatile aspect of the whole system

    2. annodomini2
      Flame

      Re: Deadlines

      One gap is generally liability on the Sales droid/Turd Polisher side, they are generally liable only to the point of getting the business in, so they promise said customer Diamond encrusted Moon on a Golden stick. Involving unrealistic or unachievable technical goals, combined with unachievable and unrealistic deadlines.

      Until there is liability on the delivery goals from the individuals/groups within the business that are responsible for the original agreement with the customer (without negative reflection on those groups due to unrealistic customer expectations), nothing will change.

      Another gap is a general micro-management culture in certain businesses.

      Work-Life balance.

      Excessive Unpaid Overtime expectations. (This is generally due to the above unrealistic deadlines, resulting in a vicious circle of permanent fire fighting, which results in a highly stressed and unmotivated workforce).

      Shifting responsibility down, while retaining authority above.

      "People Jacking" resulting in the "Many Chiefs not enough Indians" behaviour.

      Unrealistic Project Managers (i.e. the 9 Women can make a baby in 1 month types)

  24. MJI Silver badge

    Want good code

    Try a lazy programmer.

    Why?

    Because they hate to write lots of meaningless code, they want to reuse as much as possible.

    They want an easy life so will make sure their code is easy for them to fix. They will try to avoid bugs too.

    1. Anonymous Coward
      Anonymous Coward

      Re: Want good code

      This "good lazy programmer" is something of a myth in my experience. The real-world lazy programmer is doing CTRL-C, CTRL-V on huge swathes of code and creating tons of duplication, because they're too lazy to refactor it out into some common class or library. Or they're creating bugs by copying stuff off Stack Overflow without bothering to figure out how it works.

      1. MJI Silver badge

        Re: Want good code

        But I am lazy and so I tend to produce stuff which I find easy to maintain.

        Duplicating code is harder work than doing it properly!

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like