Product Vision

If you have ever taken a Software Engineering course, one of the first discussions was waterfall (planned through) vs agile (iterative) development.

The new, agile, development process described (in a nutshell) as:

  1. Gather requirements (requirements engineering)
  2. Design
  3. Implement
  4. Test
  5. Validate
  6. Repeat

Sounds reasonable? It does.

But hidden in the very first step is, what I would argue, a subtle relic from way back when the only software developed were specialized corporate or governmental projects, such as custom processing software for banks or air defence systems for the military. These projects started with a thorough requirements specification, that would become part of the contract between the software development company and the customer.

But what to do if you want to develop a software product (e.g., the next Uber for catching unicorns)? After all, this is the type of software most of us interact with and aspire to develop.

How do you engineer requirements? There is no customer to list them.

The situation is even worse with innovative ideas. Hell, did the users know they want internet before it became ubiquitious?

No one will pay you if you get the requirements wrong. And you can bet a proper requirements specification is time-consuming and expensive.

Product Vision

A simple and practical alternative is to build a product vision.

A product vision is an informal description of the product that outlines key characteristics.

Geoffrey Moore’s template:

FOR (target customer)

WHO (need / have a problem)

THE (Product-Name) is a (Product-Category)

THAT (key benefits)

UNLIKE (primary competitor)

OUR (competitive advantage / differentiating factor)

A concrete example generated by ChatGPT:

FOR small and medium-sized e-commerce businesses

WHO struggle with managing their inventory effectively and efficiently

THE InventoryMaster is a cloud-based inventory management software

THAT streamlines inventory tracking, order fulfillment, and stock optimization

UNLIKE traditional spreadsheet-based inventory systems

OUR system integrates seamlessly with popular e-commerce platforms, providing real-time data synchronization and automated order management.

Conclusion

Do not misinterpret me. A user-centric approach gives you the best chances for success.

But it is hard, and expensive, to compile a traditional requirements specification.

So the leaner approach is to take an informal shortcut, at least in the beginning, while you test the muddy waters of the market and are likely to pivot many times before you get it right.

References

Engineering Software Products by Ian Sommerville

The Lean Startup by Eric Ries - Google Talk

Written on July 16, 2023