It's very much a business oriented culture, with little emphasis on the technology that enables us all. A significant portion of our company can't tell an operating system from a web browser, and often don't use any SaaS tools besides what we provide and facebook or google.
We have 1.2 million lines of production code spread across 3 Microsoft frameworks. Our code evolved from a desktop app based on microsoft access about 5-6 years ago. It's not far off to say you could smell our code from Pluto.
The core functionality of the software has largely remained untouched, though it's become very bloated as hundreds of features have been added as a result of paid feature development from clients. Many of these remain undocumented and require detective work on my part to figure out if something that seems like a bug is actually a feature.
Because our software has usability and accessibility issues stemming throughout our system, signing up a new client usually takes 2-3 weeks plus 3-4 live training appointments so people can actually figure out how to use our software to run their business.
Despite these setbacks we are growing, and just received another round of large venture capital funding to continue doing all the crazy things we do best.
I make a decent impact on our code base and do all I can to encourage the other developers towards good practices, though many of them are here to do the bare minimum amount of work required to get to what their product manager wants. They have very little personal investment in the success or failure of our product as a whole.
So fellow Hackers I ask advice from you. Would you work in a top down sales/marketing company that seriously limits the technology you can use? Do you think our code smells will slow us down as more and more competitors can recreate our service cheaper and quicker? What is the outlook and future of a junior programmer in a company like this? Am I wrong in anyway doubting the quality of our product and it's long term success? Also what options do I have to influence and change things for the better amongst our team?