Most of software development can be considered from one of two perspectives:
Is it innovative or can it be considered a commodity?
Starting with the latter case, these software projects are a re-implementation
of software that has already been written numerous times. It is even possible
to buy existing applications and integrate with other components or implement
minor customizations. An example of commoditized software are shopping carts.
Years ago, in the early Internet, merchant websites and shopping cart
integration was expensive and required significant development; today I can
pay an extra $20 a month in web hosting for the same functionality.
For a commoditized software project, it makes sense to look at low cost
development options. These frequently employ overseas developers, thousands of
miles away in other time zones. With commodity software, the requirements are
well understood and many exemplary models exist. Communicating project
requirements and expectations is easier, so the risks are far lower.
Innovators don’t have such ease; requirements change often and are foggy at
best. Building from existing components is either unfeasible or requires too
much customization (the dreaded “integration tax”). This poses a great
challenge for an entrepreneur, as being first mover may be more of a risk than
an advantage. Large amounts of time and money can be expended while the
entrepreneur searches for her actual market opportunity or the proper way to seize it.
Incremental and iterative development can help mitigate these risks for the
innovator. With each iteration, the innovator has feedback that allows her to
tune and adapt requirements, converging on essential functionality and
de-emphasizing tangential functionality. For an entrepreneur with a limited
budget, efficient use of development resources is critical.
While iterative development can keep you focused, it is not enough. Close collaboration and
interaction with developers is also key. Building a rapport between product
visionaries and those executing this vision not only creates a common sense of
ownership, which leverages “collective brain power”, but it forces the
entrepreneur to clearly communicate her vision. Too often innovators have a
muddy understanding of their own ideas. (A technique called “high concept” is
another good tool for entrepreneurs and will be the subject of a future post.)
Unfortunately, many entrepreneurs treat their venture as commodity software,
as they attempt to outsource development to low cost programming body shops.
While I have a particular bias in this case, the real question for an
entrepreneur is: If it is so easy to outsource your innovation, is your idea
actually novel? Are there any barriers to market entry for a competitor? These
questions are important to address before any development investment is made,
regardless if the software is being treated like a commodity or an innovation.