4 ms·
The work that programmers do is not physical. Management have a hard time seeing the result of our work. What always ends up happening because of this is that
by Raphmedia 8y ago
The work that programmers do is not physical. Management have a hard time seeing the result of our work.
What always ends up happening because of this is that managers start to manage time spent instead of value outputted. Since the work done is all very vague for them, the best programmer is the one that finish their projects the fastest.
We do our own estimates and our subconscious is trying to "win" that race. Sometimes, we even get bonuses based on this. So we end up stamping time estimates that would only happen in a perfect world. Management use those estimates as hard deadlines. If you do not meet the deadline, it's your fault.
So you start to work crunch time at the end of months.
Since the work is virtual, nobody but the programmer cares about the quality of the work. Management pushes you to finish as quickly as possible.
You then start to work for free one or two extra hours a day every day to fix those things in the code that bring you shame.
The things management won't give you extra time to correct. You know this glaring security hole is going to end your career, even if management doesn't want you to correct it. So you correct it anyway.
You want better tools to insure the quality of your projects but since programmers have to build their own tools from scratch, management won't grant you time to build them.
You use some time out of your weekend to build them.
Nobody wants to use a dull blade so your sharpen your tools on your own time.
A few projects done the road, you work 20 extra hours a week without even noticing anything has changed.
... now imagine a new hire trying to compete without putting any extra time. On his first meeting, he gets asked why he takes double the time to finish projects. He quickly end up doing the same as everyone else. Everyone is working for free because everyone else is.
It's a vicious circle that's very hard to break. Most of the time you only notice it when you are a new hire... and nobody listens to new hire. Heck, what management would allow the situation to get back to normal? They are getting so much free work.
- tensor 8y agoI've read this narrative that only the programmer cares about the quality of the work many times. I find, however, that sometimes the programmer cares more about showing off how clever they are then building a quality and simple system that is delivered in a reasonable time frame. Hacker News has this narrative that programmers are always right and always smarter than "management" or any other non-programmer. That's not reality though. Programming isn't some special discipline where everyone is great. There are a lot of poor programmers out there like I describe above. Management often ends up not believing people because of this, just like in other professions. Developers need to share the responsibility of the situation, it's not all just "bad managers". Developers need to start caring more about the people they build products for rather then simply their wallet and personal "fun".
- Raphmedia 8y agoOf course this is but an anecdote from my point of view based on the workplaces that I experienced. What I've lived through a lot of time is teams of senior programmers led by junior managers. Sometimes they are fresh out of school and have never led any team. Heck, sometimes senior programmers turn into code monkeys because they are hired as nothing more than glorified trophies. IT teams having to answer directly to sales department managers, etc. Teams of juniors or intermediates are way more likely to make mistakes such as the one you describe. I've seen my share and I do agree that they exist. People migrating entire projects to the language-du-jour and creating a bad situation for everyone because they didn't master that language and ended up refactoring stable solutions into shaky messes. In a perfect world, we would have a team of strong senior programmers leading a few juniors under a strong management team.