Words to know and live by for a lean Startup
Here at Agility Feat we use Lean methods to keep our business responsive and effective. But what does it mean to be Lean? Listed below are some of the core concepts of being Lean that we follow, and how it has helped make us better developers.
A Minimum Viable Product (MVP)
As part of the first stages of development a Lean development team needs to create a minimum viable product. The goal of an MVP is to test whether your business idea can succeed before you invest too much time and resources. Before rushing into development it is important to understand what a minimum viable product is for your business, and what kind of budget and time constraints you are dealing with.
There are some important things to know about an MVP that others have pointed out. First, its not just a less complete version of your final product. The MVP needs to be the essence of your value added proposition. Second you should know when to release your MVP based on the level of functionality you want, but you cannot sacrifice good design. Having a poorly designed but functional product will just scare away potential customers. Finally the MVP is a first step it is not the final goal, and once you have released it you still need to go through a process of change and experimentation.
With an MVP already deployed there is still a lot of work to be done. Continuous deployment is about getting that work done in small chunks and continually updating the website. There are a few big benefits to continuous deployment over the traditional big release schedule.
1. It will be easier to find bugs and errors in the code, because a small release has less new code to be searched through.
2. Errors are less likely to propagate. This ties in with the first benefit. Since you are discovering errors earlier you are not building as much code around something that is broken.
3. A tough to solve problem can be resolved faster and there are better opportunities for discovering workarounds. If you are stuck on trying to implement a feature, than its impossible to hide the lack of that feature in a small release. This forces you to talk with your customer about what they need from this feature, and explain why its difficult to implement. This process will hopefully lead to a healthy resolution of the problem.
4. A customer can see the progress being made on the website. If they don’t like how something was implemented then they can go to you before more code is added and that will mean less reworking of the code.
This blog has great advice on how to implement continuous deployment in 5 easy steps.
This is the pretty simple idea that if there are competing ways of implementing a product, you should try out both, and watch closely. Testing and validation are an important part of the Lean philosophy, but not just testing to see if code works. Its testing to see if a software product works for your customers and for you. There is some great advice out there on how to do split testing.
While split testing can be a little more hassle to implement than just following a single development line, its important to incorporate the process. It forces you to test your ideas against reality. No one is right all the time. Split testing, and testing in general can hopefully lead you to catch any errors in your assumptions before you invest too much.
Pivoting is a big part of the lean philosophy. As a business you need to sometimes be able to change directions. Things haven’t gone as planned, customers didn’t respond as you expected, a big problem with the business has popped up suddenly, or you have found yourself moving down a path towards a dead end. These and other problems may indicate that you need to pivot.
It is easy to say you should pivot, but carrying out the philosophy is much more difficult. Pivoting can mean that you might have to trash old work, previous assumptions, or cherished ideas. Its hard to admit when the data says you’ve done something wrong, but you’ll be much better off admitting it and figuring out a new way forward. Lean methods are built to help make pivoting easier. Shorter development cycles mean that mistakes are caught quicker. Split testing gives you a head start on figuring out how to pivot.
Need more info? Join us at the beach!
We’re pleased that this blog post has generated some interest on twitter from big names (such as @EricRies himself). If you are interested in learning more about AgilityFeat’s awesome team of “Costa Rican Code Commandos” and how we can help your startup, please contact Arin Sime at 1-434-996-5226 or Arin@AgilityFeat.com. You can also follow @ArinSime on twitter.
We are also in the early stages of planning a workshop around startup development in Costa Rica. Why not learn how to apply these principles with a nearshore team, all while hanging out on the beach? You can learn some of the early ideas here and help validate them by joining our email list about the workshop! More details to be announced soon.