I currently work at a sales & marketing consulting company that happens to sell desktop software as one of its offerings to clients. The software was tacked onto the company as a response to needs we identified at our clients. Unfortunately, due to the company's consulting DNA, what has eventually resulted is a pretty ugly mishmash of feature explosion, completely inconsistent builds across clients, and a complete lack of product roadmapping. All product management is done by the head developer and one of the company's managing directors, who clearly isn't built to manage a software organization. What's more, the innards of the software are so broken that the developers spend the majority of their time putting out fires rather than pushing the product forward.<p>Though I am not a developer, I work with this team every day and from what I've seen, there is little in the way of development methodologies, source control is shoddy, and I am completely unaware of any user that is actually happy with the software. As somebody who plays a client facing role, it's pretty discouraging having to deal with unhappy users who are only using the software because their organizations require it.<p>How does one fix this? There is a push to start building a new version of the software from the ground up to do away with the tangled mess of the current version, but since resources are usually tied up with putting out fires, it's difficult to do. Worse yet, I'm afraid the problem of feature explosion and client builds that bear little resemblance to each other will persist simply because management wants to allow clients to customize as much as they want in order to keep them happy.<p>Things are very broken and I'm trying to figure out what I can do to start turning things around. Any advice from HN would be greatly appreciated!