Seeing a lot of agreement here, so I thought I’d post to say that I don’t agree with much of this. I don’t think the problem is “industry”, and I think open source is often similar.
I wrote a short series of blog posts a while ago (in need of revision, but good enough for now…) about decisionmaking in software: https://prog.blog/essays/decisions/
The upshot is that decisions in software are creative products—there isn’t usually a “right answer”, only benefits and drawbacks. And one decision’s consequences become the next decision’s parameters. The reason businesses don’t like it when you start re-litigating old decisions is that the alternatives to what was chosen are typically not strict improvements, and implementing them would require re-making a bunch of other downstream decisions.
It’s fine to feel that your new company’s codebase is ugly, but recognize that it got that way because creative professionals needed to make a decision in their codebase with their own backgrounds and limited information about who would be using their software and how. I think that maybe the only alternative is to set up shop as a solo dev.
(By extension, I think software developers will be better understood—and we’ll better understand ourselves—once we start seeing our industry as a creative industry and ourselves as creatives. This post feels to me a little bit like a screenwriter complaining that most TV is bad and most screenwriters are forced to crank out episodes and most shows are not solving humanity’s fundamental problems)
I wrote a short series of blog posts a while ago (in need of revision, but good enough for now…) about decisionmaking in software: https://prog.blog/essays/decisions/
The upshot is that decisions in software are creative products—there isn’t usually a “right answer”, only benefits and drawbacks. And one decision’s consequences become the next decision’s parameters. The reason businesses don’t like it when you start re-litigating old decisions is that the alternatives to what was chosen are typically not strict improvements, and implementing them would require re-making a bunch of other downstream decisions.
It’s fine to feel that your new company’s codebase is ugly, but recognize that it got that way because creative professionals needed to make a decision in their codebase with their own backgrounds and limited information about who would be using their software and how. I think that maybe the only alternative is to set up shop as a solo dev.