We spend a lot of time working with web/mobile entrepreneurs and we're super lucky to be working with amazing people with cool ideas, tons of energy, and a lot of passion. For the past six months, we've tried to pull our clients, both startups and brands, into following our methodology: Lean Product Development. The benefits with Lean are clear: better products from a science/testing approach, less time to market (or less time to get in front of users), and less waste.
For our clients, the “trouble” with Lean is that you never really know “what you will get.” You don't know what you will eventually build even when you've spent 25% of your budget. You cannot, and you should not, estimate the “entire” project up front and you should not spend time on specs and documentation of “features” that you may or may not build.
This can be unsettling to clients. We understand why. The traditional model, most often used by agencies is very clear and straight forward. It goes like this:
In the traditional model, because you “know what you are building” up front - you can tell how much it will cost and “what you will get.” This is a great feeling. It seems less risky. I can touch it. It's a “deliverable.”
The problem is that this “method” does not work at all for consumer web/mobile product development of any kind today. The reasons are many, but the main one is: You will most certainly be wrong about “what you need to build” and you can be sure that what you build - the whole thing - won't really work or connect with users until you are well into future releases.
Despite this, this “waterfall” model, is the standard among most agencies and many development shops. Most of our clients who have interactive or agency experience are familiar with this model. We understand why it seems to “work.” The problem is: We cannot build products that way, because it is wrong. We know that it doesn't work.
The truth is that you never know what you will build
You don't know what you need to build in the beginning of the project and you don't know what you have “left” to build when you are 50% “there.” It is wasteful to do big estimates and loads of documentation up front - before you get users engaged. It is wasteful to spend time on spec writing and requirements that does not center on specific assumptions, test cases, data from learning, and/or user feedback.
It is true, neither you nor we know “what it will cost” and exactly “how long it will take.” You don't know when you will be “done.” In fact, being “done” is not a possibility. You will never be done. (Unless you sell your product or exit in some way.) You have to get used to it. There are no “complete estimates” and no “complete specs.” You don't need it.
You should focus on what matters. That is not documentation. That is not estimates. Those are wrong always. What you need is what every scientist spends her time doing every day: EXPERIMENTS. Well structured experiments.
This is what we try to do with every client. We do it because we have tested the traditional model vs the Lean model and Lean wins hands down every time. We hope you do it too. Do you?
Right now, we're working with several clients who are asking: Should we do a native (iOS or Android) mobile app or a mobile web app in HTML5?
Naturally, you'll always have to consider the business objectives such as experience, speed, and hardware feature advantages of native, but often the final decision comes down to budget. Curiously, we've found that a large portion of iPhone apps could have just been done in HTML5 and reach would have doubled. (I suppose iOS developers made the decision to go with what they know.) There are of course frameworks such as Appcelerator that allows native development and deployment to iOS, Android, and Blackberry, but such frameworks have natural limitations and may not work for your needs or turn out to be too expensive still.
For those of you on the fence, we found this to be a good primer on HTML5 vs Native mobile development. It gives you a fair idea of what the cost vs benefits are and it's a good framework for thinking about your priorities when making this choice.