Ron Harman, president of CTO Outsourcing and CED member since 2007, writes about the software needs of startups. Harman has actively participated in CED's Entrepreneurs Only Workshop and Innovators Workshop.
For many startups, a core business requirement is the creation of custom software. This forces the entrepreneurs and CEOs into the uncomfortable role of defining the software, choosing the platform and managing technical staff. Unfortunately, for the entrepreneurial CEO, there are few resources dedicated to assisting small companies in navigating the technology labyrinth of acronyms and technicalese. And even for experienced technologists, the outlook is not bright. Depending on the study, estimates on software development failures range from 30% to 70%. These studies are based on large companies with vast resources. It would be arguable the failure rate for startups would be even higher.
There are two components of software development that contribute to high failure rates. One is the company's capability to managing the complexities of producing quality software. The other is how the company views software development in general. A discussion on adapting software development processes for the start-up is outside the scope of this article. The focus will instead be on how the entrepreneur should view software development as a whole. Without an appropriate mind-set, the expectation will not be in sync with the developer's reality. The result of which should be obvious. A conflict between vision and execution rarely results in a positive outcome. To ensure a compatible outlook, identifying the mental framework necessary to successfully navigate the development process will prove helpful.
Nothing's Ever Easy!
"Nothing's ever easy" is a succinct statement that serves well as a constant reminder that no matter how simple a software project sounds, it never is. As the project is defined, there will be many attempts to discredit this mantra. High-level discussions with non-technical associates will ensure the most complex projects will appear basic. Simply generate a feature list, hire a developer and the throw up a website. Seems easy enough! The oversimplification of the project will continue during preliminary discussions with a development group where feedback frequently consists of statements such as "no problem" or "we have done similar projects as this one." To be fair, the developers are not lying. They are merely stating that the project is doable. But the devil truly is in the details. Any significant project will not be quick or easy. Expecting otherwise will result in considerable levels of frustration.
Software development is NOT manufacturing!
It is too common to see software development as an assembly line. The reality is that software development is much closer to creating art than gadgets. Understanding this concept will shed light on why project time estimates appear to be pulled out of thin air. It also will explain why a "few weeks" turns into a "few months." In manufacturing, the number of gadgets you can produce in a month can be accurately estimated by the ones produced last month. For developers, each project, though there may be similarities with past projects, is unique. Ask an artist how long it will take to produce a commissioned sculpture and the response will be a general time frame. The artist is not being evasive. The exact amount of time it will take to product the final piece is unknown. When developers present project time estimates, the entrepreneur should understand the estimate is a best guess. Like the artist, the software developer can only provide time frames. However, unlike the artist, the software developer must factor in external influences such as changes in requirements, technology innovations, and dependency on other teammates to name a few. Unrealistic expectations of project time line estimations will result in needless aggravation.
Evolution, not Revolution!
The creation of software is a constant process of shaping the product until it accurately reflects the entrepreneur's vision. As the leader, you will be focused on the final product. Nevertheless, it is critical for the vision to be broken down into easily manageable steps. Unlike a large company where teams of product specialists create reams of specifications, a startup does not have that luxury. To further complicate the process, the product requirements will likely change as the software is being developed. This is the nature of an emerging business. A good development team will deploy many interim releases versus a few large ones. The "mini-releases" allow the entrepreneur the opportunity to verify the team is on the right track. Thus, the software evolves to meet the vision.
Conclusion
The intent of this article is not to paint a bleak picture of software development but rather to assist with managing the unique challenges of software development within a start-up. By understanding how developers work, the CEO will be better equipped to roll with the challenges that will undoubtedly be presented. With this pragmatic approach and a good set of processes, creating software will be extremely rewarding. Similar to the artist's sculpture, the final product will not be a gadget but a unique merger of function and art.
