I am fed up with going to new companies where the focus has been on; get it out the door.
Now that the product is out there and maintenance and extending is time-consuming (outside of what it should be) because people have not made their code readable or written in a maintainable way. What do you all think?
One thing to keep in mind is that software is new to many industries and companies. Most approach it as an assembly line. Not knowing that this is highly creative work.
Knowing this, we must either jump ship every time a codebase turns into hell or learn how to manage such beasts and improve it over time. I prefer to improve things over time.
One dilemma I find myself pressing against time and time again is how to tackle larger technical debt that has formed over the years in a code base. The team I'm currently on includes slack weeks in our sprint planning to address this. It's helped provide a sane space to battle the things that make our time coding more difficult.
Re: "get it out the door", I think it's worth having open, honest discussions with product managers about expectations that engineers and product folks have around that concept. I sometimes get frustrated when I am pushing a tight deadline and can't address code debt in a satisfactory way, but at the same time, our jobs are to get features out efficiently.