What Software Technology Strategy is Best for Your Startup? [7 mins read]
It is a mainstream cliché that 30%-40% of start-ups fail after 4 years. To be honest those statistics haven’t changed in 10 years. If it was easy, everyone would be doing it. Every start-up business is required to manage and minimise risk on an ongoing basis to become successful.
When we consider start-ups and venture capital companies they are looking for businesses that possess the opportunity to provide 10-20 years of quality returns. If that is the case, early adoption of mature practices is a critical success factor for a start-up. What venture capital companies are requesting as a baseline is quality control practices that mitigate the risk of software failure. Software failure in the hands of users, customers and staff directly affects brand perception and the bottom line. They are 100% aware of that very fact.
What is your technology strategy?
Venture capitalists want to invest in a long term quality brand. The entire business culture of the start-up needs to uphold this very fact. There is no point pitching to a venture capital firm if you don’t have quality practices in hand. If you don’t have a technology strategy now, you need one.
It is not all doom and gloom. Great thing about starts-ups is you have a clean slate. You have the opportunity to implement a mature approach from the beginning. Good place to be.
A consistent operation model I feel is great for start-ups to focus on as it provides the discipline and criteria by which venture capitalists assess prospects. An example being the core business disciplines below. Not all start-ups can instantly fund an R&D, legal, human resources and operational departments, but it is something that can out-sourced on a need to basis.
Information technology is one of the key components of starting and maintaining a business, but poorly implemented, managed and with no strategy can drain all finances. Worse of all deplete the budget allocation set aside for sales and marketing. Extremely important to note and not uncommon.
Many start-ups I talk to or research underestimate the costs and time investment involved with developing software. Usually they are ill-informed or have a perception that it “can’t be that hard?”
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.
Let’s throw some money at it and see how we go
From my personal observations the 30%-40% failure rate within technology start-ups can be attributed to having no starategy and using an ad-hoc development process. Basically making things up to develop as they go along.
Another contributing factor can be the use of family and friends. Especially if they are not qualified or experienced in the first instance. Also difficult to push them hard to achieve specific goals. Good intentions to begin with, but not reaching the desired outcome.
From my experience as a senior software testing professional it is always important to have a strategy or approach and to leverage quality control processes throughout the entire software development lifecycle. Question is which software development approach do one adopt?
If you want to release small parts of software to market at particular intervals the agile approach will provide this flexibility. This is the most popular of approaches when considering today’s software market, but more mature businesses can take calculated risks with such a methodology. While less mature businesses or software development teams need to be well disciplined and aware of the risks they could pose to software once in a customers or end users possession.
If your software requires complicated detailed planning and it can wait for a one off market release, the waterfall approach would suit your needs. This is a traditional methodology and many businesses are trying to move away from the practice, but it still has a place in today’s software mix. Especially with large complicated software. E.g. military or aviation software.
For well established businesses with several software integration solutions or platforms, a combination of agile and waterfall is commonly used. This can be referred to as a hybrid approach.
As seen with many new successful start-ups, agile is great for building new single software solutions that address desktop and mobile users.
I have dealt with different software development strategies/approaches over the past 14 years. Whatever you do always have a strategy of where you want to go. Doesn’t have to be a novel or detailed document. Could be a simple slide deck outlining key points, approach, milestones and schedule. Once the software is finished and delivered to market, the costs don’t stop there. Your strategy needs to account for ongoing updates, customer requested enhancements and support of your software. E.g. web browser version updates, operation system updates and new mobile phone devices in the market.
Much of the software failure I have seen in the past has occurred before any code is written. This comes in the form of a poorly researched idea or no profitable market for a product or service. No form of software strategy or methodology can fix a poorly researched idea.
I want you to succeed and to not invest your hard earned savings into an idea that will drain your funds and leave you with no tangible product or service to sell. I can tell you one thing, an IT development project not planned or managed correctly can cost twice the original estimate or more. That is fact!
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.
Once again thank you and signing off.