One of the most common problems with entrepreneurial software development is jumping into it prematurely. This implies undercapitalization and enormous cost pressure which is counterproductive. It introduces unnecessary risk into an already risky situation.
Everyone wants to save money and entrepreneurs with limited funds find the pressure to execute on a budget especially tight. Often they turn to outsourcing, offshoring or other options to keep the cost down. We certainly agree this approach can work but we find that many come to it with unrealistic expectations. While well-managed offshore development can offer savings of 30-50% over domestic development, engaging in any development prematurely can backfire. Short of learning to code or splitting your equity with a co-founder who can, there is no magical way to get quality software done for a tiny fraction of the usual cost.
If you find cost is your overriding concern, it is a sign that you are developing prematurely, or are trying to do too much for the current stage of your business. Your valuable time would be better spent on another aspect of your business, namely, customer development.
The ideal time to develop software is after you have already attracted paying customers or have a attracted long list of people who are ready-to-buy and thus have established some product-market fit. Ideally, you would like to sell your software before you have even built it. Daunting though it may seem, it is not impossible to do. If you have not tried to sell it yet, how do you know it is impossible? It can be as simple as running a marketing campaign with landing/conversion page to collect names.
At the very least, your business model should include assumptions which you have attempted to validate prior to engaging in development, and a realistic budget based on those validated assumptions. If the key assumptions in your model remain unproven, undertaking product development is likely to lead to failure.
By establishing the market for your software first, you have a much better idea of what you can afford to spend to build it. If this is not yet established then your only approach is to spend either as little as possible or as much as you have. Either way, you are doing it wrong.
If your product is not technically ground-breaking (most likely the case) and you are approaching developers with offers to build it for equity, you are almost certainly premature in your development, and likely working without a real plan. Skilled, professional developers often receive offers of equity from entreprenuers who believe they have figured out the next-big-thing. We are passionate about our profession and we love what we do but software developers, even those with business expertise, are often terrible judges of a startup’s prospects and in the end, the only opinion that matters is that of the market. I think it safe to say most developers who have been around the block will tell you to either put your own money at risk or convince an investor to back you.
Doing software development too cheaply means taking on technical and execution risk. These really are avoidable. There are always developers and freelancers willing to take on a job, even when the client is undercapitalized or unrealistic. We know. We’ve all done it. Usually this leads to an unhappy result and the developer will be blamed. However, ultimate responsibility for this unnecessary situation rests with the project owner who has not done their homework on their business model or has failed to raise sufficient capital for what they are trying to do or who was otherwise unclear or disingenuous about the budgetary constraints surrounding development.
We risk turning away some potential clients by stating things bluntly. If you have a vision and plenty of money burning a hole in your pocket, we will not necessarily turn you away, but ultimately, we seek sophisticated clients who have done their homework, who are properly capitalized, who are willing to work with us on the budget side and who undertake development with realistic expectations.