Strategies for nontechnical entrepreneurs in software development
In recent weeks I have had some interesting feedback from start-ups and entrepreneurs requiring affordable options for software development. Software development is not an easy game to play. Especially if you have had limited or no exposure to software development. The romance of Silicon Valley start-ups making instant millions has certainly set high expectations in the past 10-15 years.
How does one go about producing something of value with a very limited budget?
What happens when all that seed funding is not available to the average person?
Any cheap approach to producing software must be managed with a risk mitigation strategy. Once you start cut corners quality is going to be compromised. I can’t stress this enough!
(Please note that building a static website is different from building an e-commerce application for a smartphone, tablet or desktop. In this article we are referring to a dynamic solution. E.g. Application for a smartphone, tablet etc)
New software projects should commence with the view of trying to deliver a MVP or minimum viable product.
What is a Minimum Viable Product?
It is a product that has the most basic features that can be presented to early adopters. The purpose from there is to avoid spending wasteful amounts of money and test whether the market will accept the offering. The MVP can also allow you to create small, but initial cash-flow for business. In software terms this approach forces you to think small and focus on the functionality that will provide bang for buck.
- Be clear on what outcome you are trying to achieve. Is the outcome to make money, provide a service, or both? E.g. it could be a working mobile application on an Apple iPhone 6s for the first release. Other devices, browsers, etc can come later.
- Ensure you have researched your idea. Interview your target market or utilise services like usertesting.com to analyse your potential competition. You can also jump on Linkedin.com and research some professionals in your target market that might be between jobs. You can discuss and test your idea with them for a small fee perhaps.
- Build a plan. It doesn’t have to be a novel, but can be a set of slides. You need to communicate what you are trying to achieve. Remember this needs to be read by people offshore. Your plan needs to address the following requirements of:
- Schedule expectations
- Milestones and deliverables
- Architecture design to consider code language, web host design, database considerations, disability requirements, security approach and scalability. (In small projects a developer can perform this role, but you can hire an experienced architect for a quick 2nd opinion perhaps)
- Development, Testing and Live Production server/environment setup. Amazon web services (aws.amazon.com) is a reliable choice.
- A collaboration tool such as Confluence from atlassian.com is critical for a virtual project. All documents, discussions, notes can all be contained in one area. It costs $10 a month for a small team and hosted in the cloud.
- Make sure to have a software code versioning tool such as Bitbucket from atlassian.com. Free for a small group of users and also hosted in the cloud.
- Establish your development methodology. E.g. agile
- Identify business requirements/software design/test case approach and templates.
- Development approach. (Including unit testing)
- Testing approach with considerations for functional, regression, automation (selenium), stubs/virtualisation, performance(loadimpact.com), web browser(embedded browser test tools, crossbrowertesting.com), mobile (perfectomobile.com), security, disability testing to name a few.
- Based on the items identified above you need to construct an estimate. Visit this link on how to construct an estimate. You need to be realistic about when to allocate your resources. E.g. when a software designer finishes their work and when a developer begins. Manage this closely to save you money.
- Identify your project team requirements. Visit this link on how to build your team. New teams will make mistakes and especially when based across the globe. Communications and assumptions will be hard at the start. Mature teams who have been together for some time will work under instinct after a while and will produce quick/large results. New teams need to focus on small wins and then slowly ramp up scope. Take this into account.
- For a basic project you need to consider the following critical roles:
- Project Manager (You as the client)
- Software Designer (Software Developer)
- Software Developer
- Software Tester (You as the client)
- You as the project manager need to drive the project. It will need micro managing on an ongoing basis.
- Ideally you want each role to be an independent resource, but like many limited budget projects it will be you and the developer servicing those roles. I do recommend having someone like a software architect or UI/UX designer review your project output at specific intervals to reduce any possible risk. Could be an hour or 2 throughout the project.
Crowdfunding as Your MVP
Crowdfunding should also be considered as a very useful low cost tool for validating and researching your idea, and can act as an MVP in its own right. You can also launch and complete a crowdfunding campaign before building a prototype. The core features of a ReadyFundGo crowdfunding campaign are effectively the same as any MVP:
- A high level description of your idea. Preparing a crowdfunding campaign naturally forces you to focus on marketing instead of development, which can be much more valuable in a startup’s initial stage.
- A way for people to pledge. A landing page that receives 50,000 unique visitors in a month is impressive, but is ultimately a failure unless some of those 50,000 are willing to pay. Crowdfunding doesn’t force you to monetize your actual product immediately, but it does ensure that at least some of your customers are willing to spend money.
- A time limit, after which point an unsuccessful campaign must be dropped. A time limit reduces your risk as a entrepreneur and limits opportunity risk, while giving insights to the market.
A crowdfunding campaign incorporated into your planning stage lets you consider prototype ideas that wouldn’t be commercially viable in their own right, gain followers, get valuable feedback, and even raise initial cash-flow for your business. You can learn more on how crowdfunding works here.
The options available to you, but not limited to are:
- The Best Friend: You might have a best friend who is a software developer who might help produce your software for free with the view to offer profit sharing in your business later on. With a golden handshake once you make those millions of course.
- Disenchanted Group of Friends: You could be a group of friends studying IT at university or working at a software development company. They might be disenchanted with their situation and are willing to start a company in your parent’s garage or basement. As a group you could share any financials returns at a later date.
- Open Source Community Romance: Start a free open source community and pray that the best developers come out of the woodwork to support your idea or vision. You could also take an open source solution and modify it for your needs (within legal means of course). Proprietary version to come later of course to produce those millions.
- The Hackerthon Dream: If your idea is the best thing since sliced bread, then a hackerthon competition may build a proof of concept model of your idea over a weekend.
- The Loan Option: You could borrow money from friends, family or the bank to develop your software idea. You could pay a qualified software development company to build your idea. The idea better be viable to produce those millions and pay them back.
- Grab a Grant: Some venture capital companies, governments, banks and private entities offer grants to potential suited businesses. Your idea has to be good though!
- Off the shelf solution: You could grab an off the shelf solution to deliver your project. You could modify it for your needs, but might not be a long term option due to flexibility constraints with some functionality.
- The Online Freelance Option: The growth of the internet has certainly opened many doors in the past 20 years. Freelance websites such as upwork.com offer affordable software development resources from across the globe. This approach might take a little longer than a local based project, but is certainly viable for smaller budgets.
The realty in today’s economy, you need to assess affordable global resource opportunities. Some of these development resources can cost $10, $20, $40, $80+ dollar per hour depending on your budget.
Let’s review how to exercise the online freelance option with a virtual software development team:
- Research and interview candidates for your software development team. Make sure they have at least 3 years of experience. You should be able to review past jobs and interview their past clients if required. I personally use upwork.com to find such resources. Quite a large network to choose from. Some of the candidates may have stronger written skills than english speaking skills. This will be a challenge throughout the project, but make sure you are patient with this factor. To lower your costs drastically, this is the risk you need to understand and take.
- Once you have interviewed your candidates, make your selection for the team. Make sure you have back-ups for each position. When you commence the project sometimes personnel don’t perform as well as you expected or they will disappear for a couple of days and miss deadlines. If this occurs, remove them from your project and place the back-up candidates in their place.
- Organise a project kick off where you explain the schedule, milestones, deliverables, and expectations of each team member. Explain the communication mediums that are to be used throughout the project. I do recommend screen video recording tools, screenshots and audio conferences as effective mediums. I did mention earlier the need for a collaboration tool to store communications, notes, documents etc. Use it to its full potential; it will save your project.
- Tools such as Jira from atlassian.com and test management tool from functionize.com are viable options depending on your projects level of maturity.
- Take note of different time zones and factor this into your execution plan.
- Things will go wrong and not to plan. Be patient and manage your risk within reason.
- When you commence the design, development and test phase of the project. Make sure to keep it simple and produce something over several days that can be presented to potential users for instant feedback. Don’t try and build everything at once. Design and build key functional chunks at a time.
- With a project like this, you will mostly being running an agile methodology. I strongly recommend during the kick off meeting with your team that you work out reasonable sprint durations for specific functional areas of your software build. I have explained this in further detail within a recent blog. The blog can be found by selecting this link.
- Remember you have the flexibility to change things as you go along. That is the beauty of having a small, but flexible team. Also you have the power to cancel the project at any time if you feel things are no going as expected. Paying freelancers by the hour provides you with a reasonable exit strategy. That way you are saving money.
Once you have a completed MVP take it to market. As you are targeting early adopters make sure to target groups within your local city as an initial start, trade-shows, leverage partnerships, get online magazines to do an editorial on your product & utilise social media. Collecting feedback from your market will assist validating if further investment is required.
As always, I wish you the best of luck. Please let me know if you require more clarification on this article.
I would love to hear your opinions, questions or subjects you wish for me to cover.
Please post your feedback to me via the discussion boards below or visit my website at www.mikehamilton.com.au.
Once again thank you and signing off.