SB03: Challenging Assumptions
My first breakout blog on individual concepts affecting product development
Today’s tech landscape requires teams to go faster constantly. Assumptions are silent killers, either paralyzing teams or sending them down the wrong tracks. When left unexamined, the lower productivity causes wild customer sentiment swings.
Extreme Programming (XP) and Lean Product development philosophies can help scaffold teams to systematically challenge and validate their assumptions, resulting in better, more resilient products that cater to customers and real users.
The Role of Assumptions in Product Development
Every product begins with assumptions, a natural part of any discovery or ideation. Product developers naturally make assumptions about users, market needs, technology choices, and their teams’ capabilities. With experience comes the belief that we are experts in assessing all these variables, so these assumptions often serve as the foundation for planning and decision-making.
But what happens when assumptions turn out wrong?
Relying on outdated beliefs can lead to wasted resources and missed opportunities, so any facilitator worth their weight in Miro templates will have strategies for recognizing, cataloging, validating, and destroying assumptions as they occur. The earlier you start this, the better off the product lifecycle will be.
Throw your own riskiest assumptions exercise!
Extreme Programming: Embracing Feedback and Adaptability
XP is built on rapid iterations, with continuous feedback and frequent releases (daily or weekly). Extreme Programming provides ample opportunities to break incorrect assumptions. The more chances you take, the more feedback loops you observe, and the more pivot points you have to correct the direction of your product.
Frequent Releases: Regularly delivering small increments of functionality provides immediate feedback on what works and what doesn’t.
Test-Driven Development (TDD): By writing tests before you code but also writing behavioral or user-emulating tests, developers can quickly validate technical and flow assumptions. Every test execution can assist developers in validating their assumptions about system behavior.
Pair Programming: Through continuous peer review, collaborative work improves code quality and challenges individual developer assumptions. Merge/pull requests provide similar benefits without pair programming. Design-developer pairing offers immediate feedback on assumptions about user experience, design polish, and general visual professionalism.
Embracing Change Over Following a Plan
The only constant is change. Extreme programming champions this idea and the inevitability of all change. Instead of a rigid plan, often based on assumptions made at the kickoff of that project, teams should remain flexible:
Continuous Refactoring: As new insights emerge about experiments, architecture, and new dependencies, developers can refactor their code to better align with continuously validated product requirements.
User Research, Interaction, & Collaboration: Constant interactions with real users ensure the product evolves to meet real needs rather than relying on assumed ones.
Lean Product Development: Building on Validate Learning
Hypothesis-Driven Development
Lean Product borrows principles from Lean Startup methodology, emphasizing the importance of learning through experimentation. Relevant principles for assumptions are as follows:
Formulate Hypotheses: Clear assumptions or hypotheses (correct spelling, weird mouth sound) about user behavior and market demand. The distinction here is that you’re building assumptions to test right into your core product vitals.
Minimum Viable Product (MVP): Prototype, ship early and often, and go to production as soon as a slim MVP is ready so you can test all assumptions/hypotheses quickly and observe everything early.
Measure and Learn: Use analytics, data-driven decisions, and direct user feedback to validate which assumptions are valid. BUILD-MEASURE-LEARN is key to continuously refining your product through MVP and, more crucially, beyond.
Reducing Waste Through Early Validation
Lean is all about eliminating waste. Assumption validation, mainly when it’s done early and consistently, helps in these ways:
Avoid Over-Engineering: Focus ONLY on what’s necessary for each feature, story, prototype, experiment, etc. Ship precisely what you need to (and nothing more) to validate your assumptions or gather your data.
Resource Efficiency: You can save time, money, and effort by pivoting or persevering based on empirical data from your tests rather than instinctual/gut feelings.
User-Centered Innovation: Every development cycle (iterations) should be aligned and focused on actual customer/user needs, not assumed or perceived ones. If you can’t refer to data, re-validate.
Bringing Both Together
Extreme Programming provides the framework for technical excellence upfront AND over time, along with team norms to boost team chemistry and cohesion. Lean Product focuses on product-market fit and user feedback. Integrating both gives you a holistic view of what you’re building, why you’re building it, how you’re building it, and for who you’re creating it. Don’t ASSUME any of these without proper data.
Start Small: Develop small, testable increments, ship each time, and gather rapid feedback for immediate validation.
Iterative Experimentation: Use short, iterative cycles to test hypotheses, gather required data, and refine product features and underlying assumptions.
Collaborative Learning: Foster an environment where every team member, from developer to product manager, is encouraged to question and learn from assumptions. While an assumption-free team and product are not attainable, constantly challenging assumptions are.
Data-Driven Decisions: Automated tests (XP) and customer/user analytics (Lean) help make informed decisions about product direction, giving any team exponentially more pivot points to respond faster to their users, customers, or stakeholders.
Ready to challenge your assumptions? Share your experiences or tips in the comments below, and let’s continue the conversation on building better products using Lean and Extreme Programming principles!



