Build Features and Foundation in Parallel

Core Concept: To deliver a valuable product, both key features and a solid foundation (architecture, design, infrastructure) must be developed. The challenge lies in balancing the construction of these elements to maximize product value and minimize waste.

Incremental Build Approach: Rather than attempting to build the foundation entirely before starting on features, or developing complete features one by a time, a more effective strategy is to construct simple yet functional versions of each feature along with just enough foundation to support them. This method, known as building a minimum viable product (MVP), ensures a solid yet flexible base that grows with the feature set.

Minimize Early Overbuild: Focusing first on a solid design foundation can lead to a shortage of deliverable features by the deadline, potentially reducing revenue and user satisfaction. Conversely, developing features without an adequate foundation can lead to a flawed product that is difficult to improve or expand.

Iterative Refinement: Features should be enhanced in multiple iterations, with each cycle introducing improvements based on priority and available resources. This approach allows for continuous assessment and adjustment, ensuring that the product remains aligned with user needs and business goals.

Optimal Resource Use: By building foundational aspects incrementally—as needed for each feature—the risk of overbuilding and resource wastage is minimized. This strategy not only conserves resources but also keeps the development team focused on delivering tangible value at each stage.

Decision Making and Skill Development: Successful implementation requires skilled decision-making, particularly from the Product Champion, who must prioritize features effectively. Frequent decision-making rounds help refine this skill, fostering better outcomes with each iteration. Developers also need to adapt, moving away from traditional upfront comprehensive designs toward a more iterative, responsive development methodology.

Deliver Best Possible Product Continuously: With each iteration, the product should represent the best possible version of itself given the current features and foundation. This continuous delivery readiness also allows for the possibility of shipping the product earlier if advantageous.

Conclusion: Iteratively building a product’s features and foundation in parallel ensures that development efforts are both efficient and aligned with strategic goals. This approach avoids the common pitfalls of either excessive preliminary design or rushed feature development, leading to a balanced, adaptable, and high-value product.