Sunday, February 16, 2014

Agile Development for Dummies (aka Non-Tech Founders)

What it means for you as a non-tech startup founder...

Cartoon by: adamprescott.net

We built Melltoo (mobile classifieds with built-in instant messaging, launching 1st March 2014 for iOS and Android) by outsourcing app development to India. Every developer we contacted spoke of "agile development". We googled it of course and semi-understood but plunged in anyway, ignorance is bliss in this case... 

The tech writers say that agile software development is all about iteration and re-iteration. They contrast this with the traditional "waterfall model" of software development. In my limited understanding, waterfall development is a systematic process where each component of software is built and perfected before development proceeds. In contrast, agile development is adaptive and flexible and multiple components of software may be developed simultaneously and put together, then taken apart, then redeveloped according to the needs of the user. Development teams work out a rough prototype then improve on it, then improve on it, then improve on it some more. 

This is all good and fine but what does it mean for you as a non-tech startup founder? Let me share some insights...

1. In the past, software was sold and distributed as a CD. Remember those large cardboard boxes that were basically empty except for that one CD? These days, software is typically distributed to end users through downloads. This makes agile development possible. If you have to burn a million CDs to be sold, you better have a software product that is as near to perfect as possible. Otherwise, your entire inventory could be rendered worthless if a bug were discovered. With downloads, if the first version was flawed, it is easy to replace it with a debugged version; best part, users won't even notice. 

2. Agile development is the preferred approach today due to widespread internet connectivity. Because our devices are always online, software companies are able to build automatic update capabilities into their products.  So if the product is not 100% perfect, or if a bug is discovered, or if new features are added, the software company can update  the product without having to do a massive recall. 

3. Agile development is also popular because it means that you can get your product to market in a fraction of the time it takes with waterfall development. Since you are not looking for perfection at each stage before moving on, delays tend to be fewer and development can continue even if problems are discovered. 

4. Agile development makes it possible for you to adapt and adjust your product based on user feedback. New features can be pushed out as an update. This allows a company to be highly responsive to users and to pivot quickly if necessary. 

5. Product development is ongoing and will never stop. So don't get rid of your overseas tech team just yet. In addition to working out the bugs, you will probably end up adding and subtracting features; and in some cases overhauling your product entirely based on user feedback. And let me repeat: product development will never stop; and should never stop because you need to continuously innovate and improve on your product to remain viable and competitive. 

6. Do not strive for or expect perfection when you launch your product. Agile development leaves plenty of room for fixes, adjustments and improvements post launch. The important thing is to get your minimum viable product to market as soon as you can. Once you are out there, user feedback will be your guide to product development. What you were obsessing about perfecting might be something you end up throwing out because users don't like it. 

7. Your tech team is not lazy, sloppy, or whatever; and they are not trying to "get you". They are "not fixing that problem" not because they don't want to, but because it will slow them down and you might end up chucking that feature out later anyway. 

Agile development is not only the preferred approach these days, it is the only feasible option. If you do not want to be in a situation where you are stuck in development forever and go to market 2 months after your competitor, then get comfortable with agile development. For us, who are part of the "old school", agile development was difficult to swallow. We kept trying to perfect everything and fix all the bugs before moving on. This led to friction with our developers (who are all much younger than us) and to unnecessary delays. Understanding the approach has brought us new clarity about where our efforts are best spent and how best to allocate our limited resources.

Download Melltoo today to see what agile development produced!




No comments:

Post a Comment