Wednesday, June 8, 2011

Sometimes you can't fake it

Sometimes you can't fake it.
Software developers by their very nature are creative people.  Ask us to solve a problem, and depending on whom you ask you might get thousands of different answers ranging from something overly complex to something elegantly simple.  It just depends on the problem and the person solving the problem.  Business is much more complicated than engineering because we are not dealing with technological problems which tend to follow set laws of physics, chemistry, and mathematics; we are dealing with human emotions and money which can be far from rational.

This is why I enjoy reading the opinions and experiences of other entrepreneurs.  You can learn a lot from others.    Andrew Thomas posted an interesting blog about Lean Startups which had a very intriguing title “Fake it Before You Make It”.  In short, Thomas argues that before you even have a product to sell customers, the budding software entrepreneur should mock up some prototypes or wireframes to generate customer interest.  Then based on the customer feedback you build a product and close the sale. 
For someone who has been in the business a while, I rolled my eyes and bit my lip.  Thomas’ ideas sound suspiciously like vaporware.  For those not familiar with the term, it is that interesting sub-set of computer programing that exists only in the imagination of a sales person or marketing professional.  It doesn’t exist.  It doesn’t work and it is unethical.  Businesses and consumers have been swindled out of millions of dollars by vaporware.  In fact, each year Wired Magazine honors the most egregious examples ofvaporware nominated by its readers. 

Digging a little deeper into the blog post, the author clarifies his position saying snip:
“Just to be clear I nor anyone in lean startup is advocating deceptive practices or vaporware.”
This is good.  It is nice to see that people who advocate lean practices are not saying you should fly by the seat of your pants. 
I am still deeply skeptical of this “fake it,” approach.  I am going to be launching my own company website in the next two weeks.  It works and so does the software application I am selling.  It is not complete or perfect but it is good enough to start showing clients.  They can lease my cloud services as is or if they want to customize it they are going to have to pay for the iteration.  I also plan to add other features in the future like Microsoft Tag technology and a logbook application for over the road truck drivers.  Currently, these new features exist only on paper, but they will be added on to the existing application in a modular fashion. 
I think it is more important to the lean software development process to use scalable architecture and object oriented design in order to grow in a quick and sane manner.  That way it is not a big jump from prototype to working software.  In addition, sales people must be trained to avoid making promises and then forcing the software developer to keep those promises.  There must be a financial risk to someone who oversells your product.  Thus, if a sales person mocks up a Power Point or Visio document of  what my software can do to a client and I don’t know about it someone is going to be docked a few percentage points of commission.  Sales and technology must work together. 
I feel that I have put together a lean and mean company so I don’t have to “fake it” in order to close some sales.  I realize that I will have to do some prototyping and that on occasion a sales person is going to over promise.  That said, I think the best approach is to have a few stakes on the grill before I start selling the sizzle.