As a non-technical founder without enough resources and work to justify hiring your own software engineers, entrusting an agency or freelancers to build the software powering your startup; how do you assess whether you are getting your money worth?
Specifically:
1. How do you make sure that the software isn't a giant unmaintainable spaghetti mess that will cripple you later as you grow and want to add features?
2. How do you assess whether the software will be easy to extend and maintain in the future, not necessarily using the same people/agency who built it?
3. How do you tell if the stack choices the agency/freelancers made are the right ones for your application and the future?
4. Even though it works well and looks good in the demo, how do you tell if it will go the distance or constantly crash and be down?
5. How can you tell how expensive it will be to run? I have heard and read that AWS can get very expensive, very fast.
6. How important is all the above altogether? Is it acceptable that your first version is pretty much a throw-away and that you'll rebuild it all from the ground up once you have your own software team? What if you don't plan on getting a software team at all (not a tech company at the core) but still want dependable software?
Any experience you could share on the above (both good and bad)?
Thanks!
As a non-technical leader, you can delegate the problem of spaghetti code downhill - you just need to measure how quickly they make updates and define your expectations. If spaghetti code is making it difficult for the team to meet your needs, they need to fix their technical debt.
Likewise on extension and maintenance. If you want them to spend 80% of their time on new features, and 20% on maintenance, you care about whether or not they hit those marks, not the reasons why.
I could share similar sentiments on all your questions - even the cost question on AWS. Set a budget, and figure out a solution that meets it.
All that being said, you need some directly below you in the org chart who does care about everything I just told you to delegate. They need to be accountable for making the tech side of the business align with your business needs. Do not outsource that role. Because your questions are important - but you'll do better as an organization if you let someone else own them, while you focus on your own areas of expertise.