Software Products
Project vs Product Dev
"One-off" vs flexible systems: flexible is harder
Lack of reuse makes systems expensive
Entirely customer-driven requirements are harder
- Contract-driven dev is harder
Product customers experience mismatch, friction, lockin
Products are ridiculously more profitable
Requirements Are Still A Problem
Maybe the problem
See text figs 1.1, 1.2:
Customer defines problem, collabs on reqs vs
Developer does reqs / features
The Product / Service Split
The Internet has changed everything
Standalone products / Software as a Service (SaaS) spectrum (see text fig 1.3)
For standalone components, network updates are expected
SaaS = web / mobile app
Product Vision
"Whitepaper" to scope requirements
"Three fundamental questions" about the product:
- What is this? What differentiates it?
- Who are the target users / customers?
- "Why should customers buy this product?"
Template from Moore
- FOR customer
- WHO need
- THE name IS A category
- THAT benefit
- UNLIKE competitor
- OUR PRODUCT differentiation
Aside: Software is mostly not commercial
Most software written today by volume is business-specific or highly-customized enterprise apps
Of the remainder, much is open source
Result: take this "product" vision with a grain of salt
Example: Sugarmantra
My open source anagrammer written in Rust
- "Bart Massey" → "as by Master"
- "Barton Massey" → "Satan's embryo" (eww)
Moore statement
- FOR computer puzzle-solvers
- WHO need anagrams of a list of letters
- Sugarmantra IS AN anagram generator
- THAT is easy to build, fast, and complete
- UNLIKE free web-based solvers
- OUR PRODUCT does multi-word anagrams and can be used with UNIX tools