Our primary aim for documentation is to provide clear and comprehensive guidance for our internal developers. Good documentation ensures that our team has a thorough understanding of our codebase, enabling them to develop features and debug issues efficiently.
Project-Specific Documentation: This is maintained directly within the code repository. This ensures that our documentation stays in sync with our code and facilitates versioning.
Global Documentation: Our overarching company documentation resides in a VuePress application. This can be accessed and contributed to at our InnoGE GitHub repository.
To ensure clarity and professionalism in our documentation, we utilize Grammarly for grammar checks and stylistic improvements. Developers are encouraged to use Grammarly to review and refine their documentation contributions.
Given that our documentation is integrated with our code, versioning is inherently managed through git. As such, when we tag a release in our software, the corresponding documentation for that version is effectively tagged as well.
Code Comments: We expect developers to only comment on more complex parts of the code. If the code's purpose and functionality are evident at a glance, it doesn't need commenting. However, intricate logic or non-obvious implementations should be thoroughly commented for clarity.
Higher-Level Documentation: For broader topics and overviews, documentation should be stored in the /documentation folder within the project.
We rely on Postman for API documentation. This provides a hands-on, interactive way to understand our API's capabilities and constraints.
Developers engaged in the projects bear the responsibility for updating documentation. When introducing or modifying features, it's crucial to ensure the documentation is updated correspondingly. This practice ensures that our codebase and guidance stay in sync, providing a reliable reference point for the entire team.
Documentation updates undergo a review process similar to code changes. This review takes place during the usual code review phase, ensuring that our documentation maintains its clarity, accuracy, and relevance.
To maintain consistency in documentation across various projects and teams:
Every project documentation should at least cover:
Setup Instructions: A clear guide on setting up the project for development, including dependencies, configurations, and any other prerequisites.
Architectural Decisions: An overview of significant decisions made regarding the system architecture, the reasons behind those decisions, and their implications.