When you have no time to spare
Startups and small businesses often don’t have the budget, resources and expertise of large corporate businesses. This limitation can become the greatest strength by applying lean software development principles – eliminating waste and delivering only what the customer needs.
Even though many developers love giving customers more than what they need in an attempt to under-promise and overdeliver. When developing for getting a product to market, all unnecessary elements need to be removed from the equation.
This might include theming, customising, features, data filters, and other elements that might not be critically important for the customer right now.
Needs analysis and focus
A developer that works at a startup often needs to work long hours and deliver more than just code. To optimise the time spent as well as the effectiveness of the output, the developer need understands the customer needs to fulfil them appropriately.
Startups and small businesses often have a low level of certainty concerning their customers’ needs. It would therefore make sense to take a leap of faith assumption and start testing their needs (and the assumptions that we make).
Lean software development
Lean software development is all about cutting waste and testing our assumptions about our clients, our product and the industry. The following is an outline of the process:
- Eliminate waste – determine what is actually important. Cut out unnecessary features or enhancements that are not critical.
- Amplify learning – Don’t spend days doing documentation and planning sessions that don’t deliver results. Have short iterations with regular customer feedback cycles included?
- Decide as late as possible – when dealing with uncertainty, it might benefit the client to create bite-sized solutions first – and therefore deferring larger decisions of the end product until more is learned of what is actually required.
- Deliver as fast as possible – time to market is crucial in getting user feedback. It, therefore, makes sense that any tools, plugins and other means must be used to move the project forward.
- Empower the team – allow software developers to make decisions about what their validated learning has proved to be correct.
- Build in integrity – The customer needs to be at the heart of what is done. The product must solve a specific problem. If the problem is solved successfully, it will build trust in the company and product. This, in turn, will build integrity so that the marketing, software and image all contribute to the same solution.
- Optimise the whole – Issues in software can damage the integrity of the software and brand. It is therefore vital that integrations with third parties, bugs and issues are prioritised on the urgent-important scale, where the most important and most urgent issues get the first attention.
Think big, act small, fail fast; learn rapidly
– Mary Poppendieck
The minimum viable product (MVP)
Many clients have the viewpoint that the only way to go to market is with a fully built product. This, however, can easily ruin a small company or startup financially.
To the first paying client, one can create a minimum viable product to test their hypothesis and problem statement.
For an MVP, the developer can use any means within reason to speed up output. The MVP could be something as small as a WordPress site with WooCommerce.
One could easily test the use cases with WordPress – developing plugins and reporting for many cases. Once viability is determined and the system outgrows the MVP/prototype, a custom bespoke solution can be developed for more complex systems.
Note that in some larger corporate solutions, the MVP might be a six-month project for a team. The focus should be on determining and developing what is actually important.
For example, if a large life insurer would like to bring to market a tool to help financial advisors predict retirement income, a simple spreadsheet might be the first stop to see the reactions and needs of the financial advisors. When the solution is ready for coding, one could easily set up a simple front end with chart components and code back end that opens, writes, reads and calculates the values from an excel file before it’s translated into code.
Tools to speed up delivery
There is a plethora of software plugins, DLLs, open source projects and code snippets available that can assist in speeding up delivery.
It’s worth doing a quick check for open source solutions available that could be used as a base for the MVP.
Here are some ideas to get a project off the ground:
- Base software – WordPress, DNN, open source CRMs and built in framework functionality (e.g. .NET Identity for authentication) can speed up a project to get it off the ground faster.
- Front end plugins, libraries and frameworks – Jquery, Angular, Bootstrap, datatables.net and Telerik could also assist in meeting requirements for lean testing.
- Dev-ops – Continuous integration tools (TeamCity, Jenkins), Continuous deployment (Octopus) and logging services (ElasitcSearch or appcenter.ms for mobile apps)
- Cloud solutions such as Azure and AWS offers many services, functionality and APIs to speed up development
For many startups, the focus is on getting to market as soon as possible. They do not always have the time to wait six months for bespoke development.
Rapid application development tools can assist developers in getting a customer’s product to market as soon as possible.
Though one needs to weigh up the impact this might have in the long run, once the company’s cash flow is there, more enhancements can be added to the list.
Simply be effective.