Behind every successful product, there is a great idea. In the case of software product development, having a great idea alone will not guarantee a successful product. Typically, a product can be defined in terms of two key dimensions (1) what problem it solves, and (2) how it solves that problem. But in the process, there is often a tendency to go overboard with the number of features required to be developed for the product. These features are either not well thought about or not really required by the user. Beyond rich product features and technological edge, clearly identifying & defining what is to be developed and validating it before & after development, goes a long way towards launching a winner product. Given below are three key steps which helps achieve this objective:
Defining the Product – The MVP Route
The first and foremost step in developing a good software product is to express the product idea or concept in the form of a clear, concise product definition. A good software product also evolves over a period of time – slowly taking shape, after gathering market feedback and gathering real customer requirements.
An ideal approach for developing a new software product, therefore, is to identify a Minimum Viable Product (MVP) as part of its first iteration. Though this appears simple, the challenge here lies in identifying what constitutes an MVP, and how best it can be made appealing to the target market. The solution is rather simple.
If product features can be categorized into two; “the must haves” and “nice to haves”, and focus can be put on defining the product based on the former, the process of defining the MVP becomes easy. Use cases/ user stories or business/ functional requirements specifications are ideal to define the MVP. It is equally important to capture the non-functional requirements (performance, scalability, security, etc.) of the product right at the beginning.
Validating the Idea Internally
Once the MVP is defined, it may be prudent to internally validate the idea before investing into actual development. Depending on the need and complexity of the product, creating UI mock-ups, a clickable prototype, or an actual application prototype, would help provide clarity on how the product will look like and function. The focus of UI mock-ups is on the visual appeal of the application and that of clickable prototype is on screen navigation. An actual application prototype on the other hand, builds out a small, but critical part of the solution as a proof-of-concept and validates technical feasibility. This enables stakeholders or a focus group to get a first-hand feel of the product under consideration and use it as a basis for further discussion, deliberation and decision making.
Upon completion of development, piloting the MVP helps externally validate the product on a sample customer base. Before going for a full-fledged market launch, especially for a consumer-centric application, a controlled release to a smaller focus group provides early feedback from live sample customers. Simulating real-life scenarios can also be done using testing tools, which can put the product through peak load and stress. This can provide inputs on issues, if any, related to application functionality, technology, performance and hidden bugs. Once such issues are identified and corrected, the MVP can be considered fully fit for release to a wider market.
The advantage of MVP is that the new products are not rejected by users. It saves a lot of time, effort and resources for startups as well as mature businesses.
Over the past 10 years, Experion has helped over 80 start-ups and Independent Software Vendors (ISVs) develop their product and take it to market successfully. Even though the eagerness to develop the product can be tempting to skip some or all of the above three steps, our experience has shown that it is hugely beneficial in the long run. It helps avoid rework at later stages of development and deliver a stable & well-built product to the target audience in the first go itself. And these are some of the key differentiating traits of almost all successful software products.