My experience with the best software practices is the following:
When a deadline is near, all best software practices are thrown out of the window. Later in the project, a deadline is always near.
While the spirit of the best software practices is ignored, it is still possible to follow their letter religiously, and be proud of it. This frequently leads to promotion.
I work in video games, so my experience isn’t at all typical of programming more generally. The big issues are that:
Development priorities and design are driven by marketing.
Lots of time is spent doing throwaway work for particular demos. I (and many others) wasted a couple weeks hacking together a scripted demo for E3 that will never be seen again.
The design for my portion of the project has changed directions numerous times, and each new version of the feature has been implemented in a rush, so we still have bits of code from five iterations ago hanging around, causing bugs.
Willingness to work extremely long hours (70+/week) is a badge of pride. I’m largely exempt from this because I’m a contractor and paid hourly, but my salaried coworkers frequently complain about not seeing enough of their families. On the other hand, some of the grateful to have an excuse to get away from their families.
The downside of being a contractor is that I don’t get benefits like health insurance, sick days, paid time off, etc.
Many of these issues are specific to the games industry and my employer particularly, and shouldn’t be considered representative of programming in general. Quality of life in the industry varies widely.
The people I work with are mostly not dickheads and the pay is reasonable. It’s the mountain of ugly spaghetti code I’m expected to build on top of that kills me. There’s no time to do refactors, of course.
Up until a month or so ago, I was convinced I’d landed my dream job. If I had a soul, it would be crushed now.
Which is not to say that it’s awful, not by any means. I’ve just gained a new perspective on the value of best practices in software development.
Can you explain in more detail? I’m interested in learning about the downsides of programming jobs (which have been strongly promoted around here).
Seconded, more explanation is needed.
My experience with the best software practices is the following:
When a deadline is near, all best software practices are thrown out of the window. Later in the project, a deadline is always near.
While the spirit of the best software practices is ignored, it is still possible to follow their letter religiously, and be proud of it. This frequently leads to promotion.
This is precisely the problem. Not really much more to add.
I work in video games, so my experience isn’t at all typical of programming more generally. The big issues are that:
Development priorities and design are driven by marketing.
Lots of time is spent doing throwaway work for particular demos. I (and many others) wasted a couple weeks hacking together a scripted demo for E3 that will never be seen again.
The design for my portion of the project has changed directions numerous times, and each new version of the feature has been implemented in a rush, so we still have bits of code from five iterations ago hanging around, causing bugs.
Willingness to work extremely long hours (70+/week) is a badge of pride. I’m largely exempt from this because I’m a contractor and paid hourly, but my salaried coworkers frequently complain about not seeing enough of their families. On the other hand, some of the grateful to have an excuse to get away from their families.
The downside of being a contractor is that I don’t get benefits like health insurance, sick days, paid time off, etc.
Many of these issues are specific to the games industry and my employer particularly, and shouldn’t be considered representative of programming in general. Quality of life in the industry varies widely.
Which is to say, much less than getting paid a lot and not working with dickheads?
I’m guessing “rewarded much less than knowing your way around office politics”.
The people I work with are mostly not dickheads and the pay is reasonable. It’s the mountain of ugly spaghetti code I’m expected to build on top of that kills me. There’s no time to do refactors, of course.