How many costly mistakes started with everyone nodding along in a review?
If you only read one line
Small questions asked early are the cheapest design review you will ever run, and AI agents make them more important, not less.
Monday move: In your next review, ask one short confirmation question every few minutes: "When you say X, do you mean Y?"

The Spark
In most design reviews, people nod along. The plan sounds reasonable, the speaker is senior, and nobody wants to slow things down. Then a small misunderstanding from minute three turns into rework in week three. Asking questions is not a sign that you are behind; it is how you actually understand the plan. With AI agents writing more of our designs, it is now a core leadership skill. Today's piece builds on staff engineer Sean Goedecke's essay "You should all be asking way more questions" (Sep 25, 2026).
Turn AI into Your Income Engine

Ready to transform artificial intelligence from a buzzword into your personal revenue generator? Our groundbreaking guide "200+ AI-Powered Income Ideas" is your gateway to financial innovation in the digital age.
Inside you'll discover:
• A curated collection of 200+ profitable opportunities spanning content creation, e-commerce, gaming, and emerging digital markets—each vetted for real-world potential
• Step-by-step implementation guides designed for beginners, making AI accessible regardless of your technical background
• Cutting-edge strategies aligned with current market trends, ensuring your ventures stay ahead of the curve
Download your guide today and unlock a future where artificial intelligence powers your success. Your next income stream is waiting.
Get Your Guide
The Costliest Mistake in Engineering? Agreeing Before You Understand
It is easy to leave a technical discussion feeling confident that everyone is on the same page. The architecture sounds reasonable, the proposed solution appears straightforward, and the person explaining it seems experienced enough to know what they are doing. So the conversation moves forward, tasks get assigned, and implementation begins.
Then the problems surface. A service cannot access the data it needs. An authentication method is unsupported. A new subsystem duplicates functionality that already exists. A design that looked elegant in a meeting turns out to violate a requirement the team cannot afford to break.
These problems are not always caused by poor engineering skills. Sometimes, the missing piece is much simpler: nobody asked the right question at the right time.
Understanding a technical plan requires more than listening to a confident explanation. It means checking assumptions, connecting the details, and identifying what could go wrong before those gaps become expensive changes. With AI tools increasingly involved in software development, this habit matters even more. A convincing explanation, whether it comes from a senior engineer or an AI agent, is not proof that the proposed solution will work.
Small Questions Prevent Expensive Misunderstandings
A technical misunderstanding rarely stays small for long. If someone describes a component incorrectly and the team accepts that explanation, every decision built on top of it may inherit the same mistake. By the time the problem becomes visible, several implementation choices may already depend on an assumption that was never correct.
Consider a discussion about storing customer information. One engineer says that a particular service will handle storage, and everyone moves on. If that service only communicates with a temporary Redis store rather than a persistent database, the plan has a missing piece. Where will the information actually live? Which service is responsible for keeping it? What happens when the temporary data disappears?
A short clarification at the beginning can expose the gap before it affects the architecture, the implementation, and the testing process.
This is why questions such as “When you say storage, do you mean persistent storage?” or “Is that the same component we discussed earlier?” are valuable. They may seem obvious, especially when everyone in the room is experienced, but they establish a shared understanding before the conversation becomes more complicated.
Waiting until the end to ask every question is not always effective. By then, the discussion may have moved through several layers of reasoning, and an early misunderstanding may have shaped the conclusions that followed. Asking for clarification as soon as something becomes unclear keeps the conversation grounded in what is actually known.
Tip: Ask short confirmation questions whenever a term, dependency, or assumption is unclear. Clearing up one detail immediately is usually easier than correcting several decisions built on a misunderstanding.
Do Not Just Listen to the Plan. Build It in Your Head.
A useful way to evaluate a technical proposal is to mentally walk through how it would actually be implemented. Instead of stopping at the high-level description, imagine the code, the services, the data, and the interactions required to make the solution work.
If a feature requires two services to exchange information, consider what information moves between them, how the communication happens, and how each service establishes that the other is authorized to access it. If the feature needs to preserve information, identify where that information is stored and which component owns it. If a request must travel through several systems, trace the path from the original request to the final result.
This exercise turns abstract descriptions into concrete questions.
For example, a proposal might say that Service A will retrieve customer information and pass it to Service B. That sounds simple until the implementation details are examined. Does Service A already have permission to retrieve the information? Can Service B accept the data in the proposed format? Does the communication cross a network or security boundary? Is the information allowed to move between the locations where those services operate?
Each question tests a different assumption. Together, they reveal whether the design is complete or merely sounds complete.
The goal is not to challenge every sentence or force every discussion into a detailed code review. Some problems have established solutions that the team can reuse. The important distinction is between details that are already understood and details that remain vague, unsupported, or inconsistent with the existing system.
When a description does not match what is known about the architecture, pause and investigate. A vague statement such as “the service will save the data” deserves closer attention if the service has no persistent storage. That discrepancy may reveal an overlooked dependency, a misplaced responsibility, or a design that needs to change.
Tip: Trace the proposed solution from beginning to end. Identify the data involved, the services that handle it, the communication methods, the permissions required, and the place where information must persist. If any step depends on an unexplained assumption, ask about it before implementation begins.
An Elegant Design Can Still Be the Wrong Design
Technical quality is not measured by elegance alone. A system can be sophisticated, well-structured, and impressive to engineers while still failing to satisfy the product's most important requirements.
Imagine a company whose promise is that each customer's data remains within a single geographic location. A team develops an event-driven architecture that distributes work efficiently across multiple components. The design may offer clean separation of responsibilities and an appealing way to process events. But if the architecture makes it impossible to keep a customer's data confined to the required location, the system conflicts with the product itself.
The issue is not necessarily that event-driven architecture is a bad choice. It is that the proposed implementation fails a constraint that matters more than architectural elegance.
These conflicts are particularly difficult to spot when a team focuses on whether individual components work correctly rather than whether the complete system satisfies its requirements. Every service might behave as designed, yet the interactions between services could violate security, privacy, deployment, or operational requirements.
That is why technical discussions must include questions about constraints, not just functionality. Can the design support both cloud and on-premises deployments if both are required? Does the proposed data flow respect customer isolation? Will the system continue to behave correctly when a dependency becomes unavailable? Does the new architecture preserve capabilities the existing product depends on?
These questions connect engineering decisions to the actual needs of the business and its customers. They also help teams recognize when a seemingly small technical choice creates a much larger product problem.
A design review should therefore evaluate two things: whether the components can be built and whether the resulting system will still meet the requirements that justified building it in the first place.
Tip: Write down the non-negotiable requirements before approving a design. Test the proposal against those requirements explicitly, because a technically elegant solution is still a failed solution if it breaks a core product promise.
Seniority Does Not Eliminate the Need to Ask Questions
Experience is valuable, but it does not give anyone complete knowledge of a complex software product. A principal engineer may understand the architecture deeply while overlooking an operational constraint. A team lead may know the business requirements but misunderstand how a particular service behaves. A well-respected colleague can be correct about most of a proposal and still miss one dependency that changes everything.
The same applies to people responsible for implementing the work. When you are the person who must turn a discussion into working software, assumptions become much more consequential. You cannot simply trust that a plan is correct and expect the implementation to resolve every uncertainty automatically.
This is where asking questions becomes a form of ownership. The person who will carry out the work has a practical reason to understand what is being requested, what constraints apply, and what success actually means. The goal is not to prove that someone else is wrong. It is to discover problems while they are still relatively inexpensive to address.
Good questions can also improve the original proposal. A missing dependency may lead to a simpler architecture. An unclear requirement may reveal that a feature is solving the wrong problem. A question about an existing subsystem may eliminate unnecessary work altogether.
The manner of questioning matters, too. Productive clarification is specific and grounded in the work. “How will this service authenticate with the other service?” is more useful than “Are you sure this design is good?” The first identifies a concrete issue that can be investigated. The second challenges the proposal without giving the team a clear path toward resolving the uncertainty.
Technical leadership does not require knowing every answer in advance. It requires creating the conditions in which missing answers can be found before they become expensive problems.
Tip: Question the assumption, not the person's intelligence. Keep discussions focused on evidence, requirements, dependencies, and consequences so that clarification improves the design rather than turning into a contest of authority.
AI Can Write the Code and Still Get the Design Wrong
AI coding agents make this discipline even more important. They can generate code, modify files, explain technical approaches, and complete implementation tasks with impressive speed. But producing code that appears to fulfill a request is different from understanding whether the proposed solution fits the entire system.
An AI agent may assume that two services can communicate when the required connection does not exist. It may introduce an authentication method the target service does not support. It may overlook a requirement to run the same software in both cloud and on-premises environments. It may build a new abstraction when an existing component already solves the problem.
These mistakes can be difficult to recognize because the resulting code may be syntactically correct and internally consistent. The agent can successfully complete the implementation it imagined while still solving a slightly different problem from the one the team actually needs to solve.
One reason is that AI systems do not automatically acquire the same ongoing, lived understanding of a particular codebase that an experienced engineer develops through repeated work. They can inspect available files, use supplied context, and sometimes retrieve information from tools, but their understanding remains dependent on what they can access and correctly interpret at that moment. Missing documentation, incomplete context, and hidden operational constraints can all lead to flawed assumptions.
The most useful response is not to reject AI assistance. It is to examine its decisions with the same care applied to a human proposal, particularly when the work crosses service boundaries or affects important requirements.
Ask whether the codebase already has a component that performs the requested function. Check whether the proposed authentication mechanism is actually supported. Challenge changes to files that appear unrelated to the task. Ask which requirement justifies a new subsystem and whether the implementation satisfies that requirement or introduces additional behavior that was never requested.
Then verify the answers against the code, tests, documentation, and system constraints. A confident explanation from an AI agent is a starting point for investigation, not independent evidence that the design is correct.
Tip: Before accepting an AI-generated change, ask what requirement each major modification satisfies, which existing components could be reused, and what assumptions the agent made. Verify important claims against the actual codebase rather than relying on the explanation alone.
The Best Questions Often Lead to Less Work
Asking more questions does not mean creating more meetings, slowing every decision, or reviewing every line of code indefinitely. The objective is to reduce uncertainty where it matters most.
A quick clarification can prevent an unnecessary abstraction. Checking an existing interface can avoid a breaking change. Identifying a missing dependency can stop a team from spending days implementing a feature that cannot work within the current architecture. In each case, a small investment in understanding can prevent a much larger investment in rework.
The key is to ask questions early enough that the answers can still change the plan. Once the implementation is complete, the database has been migrated, or several services depend on a new interface, changing direction becomes more expensive. The same correction that would have taken a few minutes during planning may later require code changes, regression testing, coordination across teams, and a revised deployment.
Not every uncertainty needs to be resolved before work begins. Some details can be investigated during implementation, and some decisions can be reversed at relatively low cost. But assumptions that affect data integrity, security, privacy, service boundaries, or fundamental product requirements deserve attention before the team commits to them.
A useful engineering discussion should leave everyone with a clear understanding of the problem, the intended solution, the assumptions being made, and the conditions under which the design will succeed. If those things remain unclear, agreement in the meeting may be premature.
Tip: Prioritize questions that could change the architecture, violate a requirement, create a security issue, or cause substantial rework. Resolve high-impact uncertainties early and handle low-risk details in proportion to their consequences.
Better Understanding Is a Leadership Skill
The habit of asking questions is easy to underestimate because the questions themselves are often small. But the underlying discipline is significant: it requires active listening, technical curiosity, willingness to challenge assumptions, and enough ownership to discover whether a plan can succeed.
The strongest engineers are not necessarily the people who speak most confidently or produce the most elaborate designs. They are the people who can distinguish what is known from what is assumed, identify the missing pieces, and help the team reach a solution that works under real conditions.
That ability becomes especially valuable as software systems grow more interconnected and AI tools contribute more of the implementation. More code can be produced faster, but speed does not automatically create shared understanding. Without careful questioning, teams can accelerate toward a solution that is technically polished and fundamentally unsuitable.
The practical lesson is straightforward: do not wait for a problem to become obvious before investigating the assumptions behind it. Ask when a description is vague. Trace the data. Check the dependencies. Confirm the requirements. Challenge AI-generated decisions with evidence. Make sure the team understands what it is building before committing substantial effort to build it.
Tip: Treat every technical explanation as an opportunity to build a more accurate mental model. The goal is not to ask the most questions. It is to ask the questions that expose missing information while there is still time to do something about it.
Try this week (for EMs and Directors)
One question every few minutes. In your next design review, ask a short confirmation question whenever a term or dependency is unclear. Keep it neutral: "When you say cache, is that the same Redis we use for sessions?"
Build it in your head. For each plan, sketch three things: where the data lives, how it moves, and how services authenticate. Any blank is your next question.
Go last, but ask first. Let the team speak before you give your opinion, but model asking a simple question early so others feel free to follow.
Question the agent. Before approving AI-generated changes, ask: Do we already do this elsewhere? Is this new piece actually needed? Why does this file change at all?
Count the catches. Example: for one week, keep a simple tally of how many questions uncovered a real gap. That number tells you whether your team's review habits are working.
Read Sean Goedecke's full piece (Sep 25, 2026): You should all be asking way more questions
Your 5-minute action
☐ Open a note called Questions I didn't ask. After your next design review, write down three things you assumed but did not confirm: one about data, one about service communication or auth, and one about a requirement. Ask the owner about each before work starts.
A rough first version is enough. That is your first spark.
Hit reply and tell me: when did a single "how does that work?" save your team from a costly mistake, and what made it safe for someone to ask it? I read every answer.
One more from today's sponsor, which helps keep Tiny Big Spark free:
Compare Annuities With A Licensed Advisor In Three Steps

Leverage Planning simplifies annuity shopping with advisor led recommendations and quotes from major carriers like Athene, Allianz, Nationwide, And Pacific Life. Get options aligned to your timeline, risk comfort, and income goals.
• Request A Custom Quote
• Review Curated Options Virtually
• Get Help With The Application
Minimum investment: $50,000
Get Your Custom Quote
Keep going, one small spark at a time.
Erwin
PROMO CONTENT
Can email newsletters make money?
As the world becomes increasingly digital, this question will be on the minds of millions of people seeking new income streams in 2026.
The answer is—Absolutely!
That’s it for this episode!
Thank you for taking the time to read today’s email! Your support allows me to send out this newsletter for free every day.
What do you think for today’s episode? Please provide your feedback in the poll below.
How would you rate today's newsletter?
Share the newsletter with your friends and colleagues if you find it valuable.
Disclaimer: The "Tiny Big Spark" newsletter is for informational and educational purposes only, not a substitute for professional advice, including financial, legal, medical, or technical. We strive for accuracy but make no guarantees about the completeness or reliability of the information provided. Any reliance on this information is at your own risk. The views expressed are those of the authors and do not reflect any organization's official position. This newsletter may link to external sites we don't control; we do not endorse their content. We are not liable for any losses or damages from using this information.
