The alternative is programming as a hobby rather than a profession. But I would need to find a comparably well paying and stimulating profession first.
The alternative is programming as a hobby rather than a profession. But I would need to find a comparably well paying and stimulating profession first.
Does refactoring provide a business advantage or just a pathway to attempting code perfection?
If you are in it for the art, then you need to find that shop that is in it for the art. Many aren't. I'm sure some are.
If you are in it for providing outstanding code because it provides personal satisfaction or meets your world view, then great. It sounds like you need to find a way to provide what you want to provide in a timeframe that is almost as quick as the alternative.
If you want to achieve personnel perfection and can't find a way to be almost quick at delivering a viable product as the alternative, then either you change, accept it, or move on.
You sound like you are competent and have a world view. I would figure out ways to speed up your output (through templates or language choices that match who you are). If your code is great and you develop it fast, the people who are rushing you won't have a leg to stand on.
If you are good, you can have it all.
This is basically a red flag for mismanagement. Even startups can't work this way. You either need to hire engineers who have enough experience to make the right trade-offs under high pressure, or you will likely not survive the long race after initial MVP and funding. However, a lot of startups are not funded for the long run either, but rather to quickly make money for founders and potentially be bought by some large fish, who stamps out competition and replaces the product anyway. So there is that.
You would be doing valuable service to the community by naming a few names
I have a list of at least 6 large corporations who do just that. When I worked at Polaris, they re-developed all of their sites on a six month rotating basis so if some new fangled tech came up, it was easy to take advantage of it. They were one of the first companies I knew who were running full-stack JS apps in prod before most people were even considering it.
Even where I work now, its all about speed to market. Get it working, release it, and then all the execs and upper management types pat themselves on the back about how awesome they are because they got a janky ReactJs app for users to use in less than 6 months. Several months later of fixing all the problems, they start talking about just scrapping the whole thing and starting over.
Its maddening to think these people believe what they are doing is somehow groundbreaking in software development. When in reality, they're just releasing a really poor version of their software, spending more months fixing it than the time it took to get it released and then killing it or transitioning to some new shiny framework they want to use instead.
OP was spot on in what my experience has been the last 10 years of my working in large corporations and small agencies.
There are some cure-almost-alls. Most are fashion. Sadly it's how it is in software and it doesn't seem like it's ever going to change.
I wish this was true, but in my experience it's not. The company I currently work for has an old crufty codebase, large areas of which are not understood by anyone but the few remaining early hires. This codebase is going on 20 years old and is getting more complex with every release. And yet our revenue grows year after year because our competitors are far, far worse.
Another company I worked for years ago has by far the worst code and development practices I've ever seen. I'm talking about having the actual Visual Studio solution running live on the production server, and development was done by opening it in Visual Studio and hacking on it while it was running. I have never seen such towering incompetence before or since. I left partly because I was convinced the company would implode within a couple of years due to a developer accidentally nuking the production database or because the cost of developing new features would exceed any new revenue they could possibly bring in. Five years later, somehow they're still going strong.
Most large companies in the world (e.g. banks) have appaling code and coding standards. As far as I know, none of them has yet gone bankrupt because of bad code.
I think we probably overestimate how important code is. The business world, esp. large companies, is very far from perfect (more of a big fat mess that somehow still works and produces money without its products killing people etc.) and it doesn't need perfect code, the same way it doesn t need perfect accounting or perfect product design. In most cases, mediocrity will do, because the competition is just as mediocre.
If you want perfect (or even very good), become a hobbyist instead.
Or maybe the cost of swamp code is distributed over many people and non-programmers have difficulty understanding how much it slows down programmers. Programming is hard enough as it is because we need to translate human to very abstract, and work with very abstract on a daily basis. I think it's borderline genius to be able to do the translation both ways. That is, to make non-techies really understand the cost of messy code.
> I don't believe any company will give me a chance to write good, polished software.
I do not believe it either, especially due to my experiences. I do not work in IT for a reason.
https://drek4537l1klr.cloudfront.net/geewax2/v-10/Figures/ch...
Stark contrast to things like Elixir where there's a labor-of-love aspect to it.