A friend of mine, who has a day job, wants to create a software product and he asked me two questions:
I'm not a programmer and I'm wondering if it Is it too risky to hire programmers to do it?
What if my product isn't as good as I think it is and some customers might not want it?
After some thought I explained my assumptions, or core beliefs, about software development:
- A unit of one produces a unit of one.
- Adding more units produces more, but on a declining basis. 3 units doesn't produce 3 units. Something less.
- In software what can be learned (self taught), produced and distributed is incredible. One unit can accomplish so much if smart!
- Software today isn't so much about original works as it is the assembly of services, open source code and other libraries.
- Build software in baby steps. Create, release, learn, improve, release, repeat.
- Success is based upon what you won't do, rather than what you will do. Focus is key.
- Teach yourself to program in your spare time while making a living elsewhere. Give up evenings and weekends for 1 year.
- Deliver an early release of your software on your own utilizing integrated app services, API's, etc. etc., make as little software as possible.
- Learn from your release, but stay focussed on your goal. Do not let non-target, early adopter customers drag you into a non-focussed product. Say NO more than yes.