HOW TO BUILD SOFTWARE (MVP)

6. MAINTENANCE & CONTINUOUS IMPROVEMENT

After your software is deployed, the work doesn’t stop. Maintenance and continuous improvement are essential to keep your application running smoothly and to ensure it evolves to meet user needs. This phase involves not only fixing bugs and releasing updates but also maintaining clear documentation, ensuring scalability, and leveraging feedback loops to guide future iterations. A well-maintained software product is reliable, scalable, and adaptable, making it crucial for long-term success.

6.1

BUG FIXES & UPDATES

6.2

Documentation

6.3

Scalability

6.4

Feedback loops & Iteration

 

6.2 DOCUMENTATION

KEY TERMS: DOCUMENTATION, SUPPORT, USER GUIDE, PROCEDURES

"The difference between tolerable and great documentation is that tolerable documentation tells you what to do, but  great documentation tells you why."

- Joel Spolsky

Keeping your documentation up to date is vital for maintaining clarity and continuity, especially for new team members. Documentation helps avoid technical debt and ensures that everyone understands design decisions and system logic. It helps explain how the system works, which is important for avoiding risks and managing future changes. Build it gradually and ensure it remains current and accessible.

Format & Tools

Use text documents, videos, and other media to explain different aspects. Tools like wikis, Confluence, and Google Docs can make documentation easier to access and update. Ensure that it is searchable, versioned, secure, and allows for feedback.

Types of documentation

For startups, focusing on essential documentation is key to maintaining agility without overloading the team. Here’s a list of what’s absolutely necessary:

End User. Doc-Demo

Guides for those using the final product.

  • Walk-throughs and Demos. Capture product demonstrations to help with team onboarding and understanding of the product’s features and usage.

Support. Doc-Support

Instructions for support teams to assist users effectively.

  • Support Documentation. Clear instructions and troubleshooting steps for assisting users.

IT/DevOps. Doc-DevOps

Details for backend maintenance and system management.

  • Deployment Process. Outline the steps for deploying updates and handling failures.
  • Architectural Diagrams. Visual representations of major system components and their connections, helping understand the overall system architecture.

Developers. Doc-Dev

Information for those building or fixing features.

  • Source/Code Comments. Include comments in the code to explain its purpose, functionality, and any non-obvious logic; enhances code readability and helps with future maintenance.
  • API Documentation. Provide detailed information about APIs, including endpoints, parameters, request and response formats, and examples; essential for integrating and using APIs effectively.
  • Code Standards and Guidelines. Document coding conventions, style guides, and best practices to ensure consistency across the codebase.
  • Development Environment Setup. Instructions for setting up the development environment, including tools, dependencies, and configuration; helps new developers get started quickly.
  • Testing Procedures. Document the methods and practices for testing code, including unit tests, integration tests, and testing tools; helps maintain code quality and reliability.

Doc-DevCommentSource: StackOverflow

 

In Summary:

  • Create Clear User and Support Guides. Develop simple walk-throughs and troubleshooting documentation to assist both end-users and support teams in using the product effectively and resolving common issues.

  • Maintain Essential DevOps Documentation. Document critical deployment processes and architectural diagrams to ensure smooth updates and clear understanding of system infrastructure.
  • Prioritize Developer Documentation. Ensure API documentation, code comments, and development setup guides are detailed and up-to-date, enabling faster onboarding and more efficient collaboration for your team.