The Untameable Mindset
9. Concise and Accessible Documentation

Written by: Edgar Ravenhorst, 24 mei 2024
Maintain concise and accessible documentation to provide an overview of the software, its components, and critical business logic. This approach ensures that product owners, managers, and team members have access to essential information, supporting effective use and development without consuming excessive time.
Clear documentation is essential for understanding the overall picture of the software, including its purpose, components, and key business logic. It aids in onboarding, development, and maintenance. While detailed information for specific tasks can be included in user stories or other documents, general documentation provides a foundational understanding without becoming overly time-consuming.
Key Principles
Document the overall architecture and purpose of the software, including its main components and how they interact. Ensure critical business logic is clearly described. Provide essential information for onboarding new team members. Use standardized formats and templates for clarity and efficiency. Focus on high-level documentation while referencing detailed documents like user stories for specific tasks.
Benefits
Clear documentation improves communication and knowledge sharing among product owners, managers, and team members. Done well, it reduces onboarding time for new developers and helps users understand the software’s capabilities and structure. Comprehensive documentation of business logic ensures that critical information is preserved and easily accessible, aiding in troubleshooting and maintenance.
Implementation Strategies
Create high-level documentation that covers the software’s architecture, main components, and their interactions. Focus on concise descriptions that provide essential information without overwhelming detail. Include descriptions of critical business logic and its implementation. Provide onboarding guides that help new team members quickly understand the software and their role. Use documentation tools and platforms like Confluence, Notion, or GitHub Wiki to create and maintain this documentation. Reference detailed documents, such as user stories, for specific tasks and detailed information. Schedule regular, brief review sessions to keep high-level documentation current without overwhelming product owners, managers, and team members. Leverage AI tools to assist in writing and maintaining documentation, ensuring consistency and quality in writing style, grammar, and clarity.
Examples
A development team maintains a high-level architectural diagram in Confluence, along with concise descriptions of the main components and their interactions. They include sections detailing the critical business logic and provide links to user stories for specific implementations. The onboarding guide includes an overview of the software, key processes, and links to further resources, helping new developers quickly get up to speed. Regular, short documentation review sessions ensure the information stays accurate and relevant without being overly time-consuming.
--
Read about other Aspects of the Untameable Mindset:
This page is part of a series on The Untameable Mindset. Explore the other aspects to learn more about the principles that guide our development practices and behaviors.
1: Unified Vision and Goals
Ensure everyone understands the project's vision and goals. This shared understanding guides decisions and actions across the team.
Learn more2: Cross-Functional Collaboration
Foster collaboration among all roles by encouraging open communication and teamwork. This approach leverages diverse expertise and perspectives to solve problems and innovate effectively.
Learn more3: MVP Driven: Start Small, Grow Big
Begin with a Minimum Viable Product (MVP) and scale up through iterative development. This approach allows for rapid deployment and user feedback while ensuring the product evolves robustly and sustainably.
Learn more4: Release or Disable Features Through Configuration
Use feature toggles and configurations to release or disable features quickly. This approach allows for flexible adjustments without extensive code changes, enabling controlled rollouts and quick responses to feedback.
Learn more5: Continuous Integration and Continuous Delivery (CI/CD)
Integrate and deliver code changes frequently with automated testing and deployment to ensure code quality and functionality. This approach promotes collaboration, reduces integration issues, and maintains a stable, deployable codebase.
Learn more6: Pragmatic Testing of Code
Focus on tests that provide real value and insight. Identify critical paths and concentrate testing efforts on the most important areas to ensure high code quality and performance, avoiding over-testing.
Learn more7: Automate Repetitive and Complex Tasks
Automate complex or repetitive tasks across the organization and for end-users to improve efficiency and free up time for more valuable work. This enhances productivity and ensures consistent execution.
Learn more8: Prioritize Needs of the End-User and (Future) Developer
Prioritize both the end-user experience and future developer needs to ensure the product is user-friendly and maintainable. Involve users in design, maintain clear documentation, and follow best practices for code maintainability.
Learn more9: Concise and Accessible Documentation
Maintain concise and accessible documentation to provide an overview of the software, its components, and critical business logic. This supports effective use and development without consuming excessive time.
Learn more10: Continuous Feedback and Improvement
Foster a culture of continuous feedback and improvement. Regularly collect feedback from all stakeholders to refine processes and products, ensuring the development process is always evolving and adapting.
Learn more
Coffee time!
Interested in learning more about Untameable and how we work?
Reach out and let's discover how to become Untameable together