How do you apply 'working software over comprehensive documentation'?
This tests your ability to balance velocity with maintainability. A great answer defines docs by audience and purpose (onboarding, ops), prioritizes "living" docs like tests, and uses a just-in-time approach. A red flag is treating this as "no documentation."
WHAT THIS TESTS: This question tests your practical judgment and ability to manage trade-offs, not your knowledge of the Agile Manifesto. The interviewer is assessing your framework for balancing short-term development speed against the long-term total cost of ownership. They want to see if you can articulate when documentation adds value versus when it becomes a maintenance liability that creates risk and slows teams down. It's a test of pragmatism, risk management, and communication strategy.
A GOOD ANSWER COVERS: First, correctly interpreting the principle as a statement of priority, not exclusion. The phrase is 'working software OVER comprehensive documentation,' not 'INSTEAD OF.' The goal is value, and documentation is a tool that can either support or hinder that goal. Second, a good answer outlines a framework for deciding what to document based on audience and purpose. This means distinguishing between docs for new engineers (onboarding guides), SREs (operational runbooks), future architects (Architectural Decision Records or ADRs), and external consumers (API specifications). Third, it emphasizes prioritizing 'living' documentation—artifacts that evolve with the codebase and have a low maintenance cost. Examples include well-named test suites, self-documenting code, and auto-generated API specs from tools like OpenAPI. Fourth, it describes a 'just-in-time' approach for static documents. For irreversible or complex decisions, a lightweight one-page design doc or ADR is created, debated, and archived. It captures the 'why' at a point in time, not the ever-changing 'how'.
COMMON WRONG ANSWERS: A major red flag is a dogmatic, binary interpretation, such as, 'Agile means we don't write documentation.' This shows a lack of senior-level experience. Another is proposing a one-size-fits-all, heavyweight documentation template for every story, which creates wasteful overhead. A weak answer also fails to acknowledge that out-of-date documentation is actively harmful, as it erodes trust and misleads developers. Finally, focusing only on code comments is too narrow; it ignores the need for high-level architectural, operational, or onboarding context.
LIKELY FOLLOW-UPS: How would you handle a team that consistently fails to produce even minimal documentation, leading to knowledge silos? Give an example of a time a lack of documentation caused a major problem. What did you do? How do you ensure documentation stays up-to-date in a fast-moving environment? (Hint: Link it to code review, automate it, or make it part of the Definition of Done for specific ticket types).
ONE CONCRETE EXAMPLE: 'On a recent project building a new payments service, we applied this principle in three ways. First, for the internal implementation, we relied on BDD-style tests and clean code, forgoing detailed implementation docs. Second, for the public-facing API, we made writing OpenAPI specifications a required part of the Definition of Done. The specs were version-controlled with the code and automatically generated a documentation site for our consumers. Third, for the critical decision to use a specific payment processor, we wrote a one-page ADR that was reviewed, approved, and checked into the repo. It captured the trade-offs and has saved us hours of debate months later.'
Read the original → en.wikipedia.org
Get five bites like this every day.
Tezvyn delivers a daily feed of 60-second tech bites with quizzes to lock in what you learn.