Runtime - The Software Outsourcing Newsletter
for Executives and Investors
from Accelerance and Steve MezakIn this issue: How to find out what customers really want before you outsource your software product development.
Five Steps to Create Your Software Product
with OutsourcingI have encountered much skepticism from executives and investors that software products cannot be developed using outsourcing. Even more skepticism is expressed at the idea of creating version 1.0 of a product. Yet Accelerance clients are using outsourcing to create their products right now. What is the secret to using outsourcing to successfully develop a software product?
In January, I gave a talk to the Business Marketing Association entitled "Creating New Software for Naive Customers". The topic included the question of how to get customer input when they don't know they need your product. How can you involve your customers early and often in a collaborative process, when they are not sure of what they need or want at all? And what does that have to do with outsourcing?
Many people believe outsourcing is useless when you are in the Fuzzy Front End - that fuzzy zone between when an opportunity is known and when serious software development can begin. They think you need to slog through the Fuzzy Front End by coding a prototype of your product. If so, you need the development team here, not several oceans away.
Another assumption made by many is that you need to write a comprehensive specification for your software during the Fuzzy Front End. Many companies use a very formal product definition process, optimized to remove as much fuzz as possible. How long should it take to design a software product before development can begin?
Here is a story from the book Developing Products in Half the Time by Preston G. Smith and Donald G. Reinerstsen that describes how conquering the Fuzzy Front End can be time consuming and deadly:
A well managed Fortune 500 company saw a compelling opportunity at a trade show. The company did everything by the book, preparing a business plan, screening through their strategic planning process, and allocating R&D dollars for it in the budget. When qualified engineers became available to do the project, they began work. Unfortunately, it took 18 months before the first engineering hour was invested in the project.
Meanwhile, a small startup company had been to the same trade show and seen the same opportunity. The Chief Engineer of this company, who also happened to be the President, recognized the compelling nature of the opportunity and began designing a product on the plane flight returning from the trade show. The startup company had its entire product designed before the "well managed" company had even begun development. The Fuzzy Front End at the startup was 500 times faster than at the Fortune 500 company where well-intentioned planning and budgeting processes guaranteed defeat.
This is the classic comparison between the big and bureaucratic company and the agile and clever startup, a story as old as David and Goliath. Of course, the startup could fail for a whole list of other reasons - a buggy product that dies in the market, poor sales channels, no marketing budget, etc. The startup may just fail more quickly than its bigger slower competitor!
Notice also that the Chief Engineer designed the product on the airplane. The usual story is the Chief Engineer codes a prototype on the plane ride home on his or her laptop.
What constitutes a useful design for a software product? Is it coding a prototype? Is it typing up a Marketing Requirements Document (MRD)? I think it is a combination of both, but more about that later...
Documenting requirements should be part of your design process. You never get them right the first time of course. Prospective customers have a way of ruining the best plans for products.
But what do you show customers? They are not going to read your 50 page MRD. You can't talk to customers until you have a demo, right?
So we are back to that prototype programmed on the airplane. At least you can show a customer the prototype and prove you have a solution to their problem. But then again, we are assuming you know what problem the customer needs to solve.
According to Steve Blank, founder of several software startups and now lecturer at the Haas School of Business at Berkeley, you don't need a product development process. You need a customer development process. You need a process to discover what ornery problem your potential customers have that will cause them to part with their hard-earned money and solve the problem by buying your software.
The first step of Blank's customer development process is Customer Discovery. Here are his steps of customer discovery:
- Create a product (or product demo)
- Meet with customers and answer these four questions of customer discovery:
- Have you identified a problem customers want to solve?
- Does your product solve these customer needs?
- If so, do you have a viable and profitable business model?
- Have you learned enough to go out and sell?
- Change your product to reflect what you learn
- Iterate until all questions can be answered positively
The challenge you have is to begin with a product. Also changing your product may take a great deal of time. Is there a way to shorten these iteration cycles? If you are programming, good tools like an interactive development environment and adherence to software design patterns can help.
The Accelerance answer is, don't code up your product or prototype at the start. Use an HTML editor to create screen mock-ups. Then link them together to tell the "user stories" of your software product. They show the major use cases of your product. Demonstrating the use cases this way is like putting your product requirements in motion. It simulates how the real product will be used.
HTML is easy to edit and requires no programming. You can make quick iterations before committing your product ideas to code.
Here is the five-step Accelerance formula you can follow to successfully design your product:
- Describe your product idea and its benefits
- Create a demo of the major use cases showing the biggest benefits of your software
- Perform the Customer Discovery steps described above, iterating until you & customers are satisfied
- Write an MRD using screen shots from your demo as illustrations
- Develop your software, test and release
In modern business, you should focus on your core competency and outsource the rest. In the Accelerance five-step process, the first 4 steps of defining your product idea, completing the customer discovery process and documenting the requirements must be part of your core competency. The last step is not.
***
Anybody can develop software. But only you can figure out what your customers will buy. And that makes low cost outsourcing an effective way to get your product developed quickly.
Until next time,Steve Mezak
Accelerance, Inc.
Risk-Free Outsourcing
213 Garcia Avenue
Half Moon Bay, CA 94019
1-650-712-8990(c) 2005 Accelerance, Inc. All rights reserved. You are free to use material from the "Runtime" eZine in whole or in part, as long as you include complete attribution, including live web site link. Please also notify me where the material will appear.
The attribution should read:
"By Steve Mezak, CEO of Accelerance, Inc. Please visit the Accelerance web site at http://www.Accelerance.com for more information and resources on outsourcing and creating great software products."