At small-sized and medium-sized software product development companies, it is often difficult to manage the product development and evolution cycles. Among the issues frequently inhibiting growth in these organizations:
- Lack of appropriate product management processes – how do we define product features and priorities based on both customer input
and internal innovation; - Lack of appropriate software development process. This usually takes one of two forms:
-
Little to no process, leading to wildly unpredictable release cycles, quality issues, etc.
-
Too much (inappropriate) process. Usually as a rebound to situation 1, the over-abundance of process leads to paralysis, stifling of innovation, and outrageous development costs
- Lack of control of the requirements change process
- Inability to separate client-specific product customizations from core product development. Usually, the main symptom of this is the uncontrolled number of unique, fielded versions of the product (worst case, 1 per customer), leading to a situation more like a series of “one of” implementations rather than a true product.
Over the past 15 years, at both Virtual Universe and Whitehill Technologies, I have spent a considerable portion of my time defining medium and long-term product strategies for product development organizations, helping to overcome issues such as those described above.
Among the strategies I have developed:
1) Definition of product management approaches for the incorporation of both customer-based and internal innovation-based requirements.
2) The concept of “just enough process”. Through my experience in large-scale military and aerospace projects, I have seen firsthand the benefits of strong, well-defined development process. Unfortunately, I have also seen the dangers of “process run wild”, and that fact the having strong processes are a necessary but not sufficient part of successful software development. I have also learned that the processes defined in these “formal” environments, while useful, are far too heavy for agile, cost-constrained businesses. Thus the concept of “just enough process” – what aspects of the heavy, formal processes provide the most bang-for-the-buck, without crushing a small development shop.