

Ask HN: Working at a startup founded by the "Business Guy" - nrub

I'm a developer at a small to medium sized SaaS company, with 10 developers &#38; 150+ full time employees. We have about 5000 paying clients all at different levels of subscription though largely receiving the same service.<p>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.<p>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.<p>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.<p>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.<p>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.<p>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.<p>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?
======
zeemonkee
1\. Lay out the problems caused by the current architecture. Not in developer
terms like "tightly coupled" but rather in terms managers will understand -
the real cost per client. Prove that a cleaner architecture will lead to
faster turnaround and therefore reduce the overheads - leading to more clients
and/or higher profits.

2\. Design a cleaner architecture. Look at current and possible requirements.
Maybe not too much detail, but perhaps a basic database schema, class designs,
etc (whatever is appropriate to your language/framework).

3\. If you are using MS tools, read up on the lastest developments there -
ASP.NET MVC for example - and show how using new tools would improve the
design.

4\. Perhaps get yourself involved more in the management side of things. Learn
more about the business as a whole, why decisions are made. That will make you
sound more informed on the technical side as well.

If all else fails, then look for another job by all means - but bear in mind
that the situation you describe is all too common in non-technical lead
companies. In an ideal world, the business-savvy techies would be in charge
(and those that are - Google, Gates-era Microsoft, etc - they are) but those
companies are few and far between.

If you are otherwise happy at the company then perhaps start a side-project -
commercial or open-source - to keep your skills fresh, so you'll be in a
better position for your next job.

