4 ms·
I agree that this is how the industry works, intentionally delivering garbage to be able to sell more billable hours. But is it the only viable strategy? What
by Tabular-Iceberg 5y ago
I agree that this is how the industry works, intentionally delivering garbage to be able to sell more billable hours. But is it the only viable strategy?
What would it take to compete with high quality work instead? Where your repeat business doesn't come from fixing everything you did wrong, but it comes from your reputation of getting it right the first time around?
In a market where there's a surplus of consultants but a shortage of programming problems to solve, it makes sense to milk every client you can find dry, but that's not at all the kind of market we're in. You'd make as much money doing four six-month projects for different clients as you would milking a single one for two years. Or more, since you'd get better at it with each project you complete and may be able to ask for a higher rate, whereas churning out garbage one year after the other teaches you nothing and sets you apart from nobody.
- cryptica 5y agoThe only area I could find where this 'clean and maintainable code' approach is appreciated is in open source. In open source, it's not about money (it's rarely the primary motivator); it's about meeting goals so developers try to be extremely economical with their limited free time. I don't think it's possible for the commercial software industry to optimize for good code so long as engineers are paid hourly and the industry has monopolistic dynamics which externalize fanaticism and internalize complacency. To make it work in a commercial context, developer remuneration would have to be based on results (over a medium to long term of at least 6 months) and there would need to be a genuinely competitive environment where everyone has equal opportunity to prove themselves to the market (not prove themselves to management). It has to be tied to user feedback somehow. This is pretty much what happens in open source but would be hard to implement in a commercial setting.
- Tabular-Iceberg 5y agoYes, you'd probably need to either do fixed cost projects where developers get a share of the profits, or simply giving them bonuses on completion of each project to give a financial incentive to do more projects faster. But then again each project has a marginal cost, so it may still make more sense to do as few as possible, even in a market where demand exceeds supply. But if we're going to screw the customers, why not gold plate everything instead? Even if the developers aren't rewarded with money, doesn't that make for a much more pleasant work environment? If the objective is taking as long as possible to accomplish the task, isn't it more rewarding to build a sparkling jewel than a ball of mud? It may even be somewhat less unethical, since the customer at least gets a quality product out of it, instead of garbage.