Documentation for Developers

Ammar ShresthaAmmar Shrestha
2 min read

Introduction

Documentation is key to any project's success. When team members move to different projects, the Tribal Knowledge will be lost, and it would be hard for new maintainers to keep the project on track as per the original Roadmap. Let's follow Docs as Code philosophy and keep related documents close to code in the same repository.

Docs should be organized under the docs folder at the root of the repo.

  • Readme File - Should contain project goals, big picture, list of features, and developer's workflow to contribute to the repo.

  • Project Boards to keep tracking releases, milestones, features, and project status.

  • Roadmap should include short and long-term goals.

  • Changelog - Automatically generate changelog as part of the release process.

  • Style Guide - Every project should have a coding style guide.

  • Code Owners - CODEOWNERS file contain resources who own specific module in the repository and who should review before PRs are merged.

    Example CODEOWNERS file

    image.png

  • Architecture Decision Record (ADR) - is a document that captures an important architectural decision made along with its context and consequences.

    Style Guide

    • This folder should contain all ADR docs
    • We followed ADR file name conventions from Joel Parker
    • Markdown Architectural Decision Records template

    ADR example templates

    Some ADR example templates on the net:

    Sample document: timestamp-format.md

    # Timestamp Format
    
    Contents:
    
    * [Summary](#summary)
        * [Issue](#issue)
        * [Decision](#decision)
        * [Status](#status)
    * [Details](#details)
        * [Assumptions](#assumptions)
        * [Constraints](#constraints)
        * [Positions](#positions)
        * [Argument](#argument)
        * [Implications](#implications)
    * [Related](#related)
        * [Related decisions](#related-decisions)
        * [Related requirements](#related-requirements)
        * [Related artifacts](#related-artifacts)
        * [Related principles](#related-principles)
    * [Notes](#notes)
    

Reference

Sample Project Docs link

20
Subscribe to my newsletter

Read articles from Ammar Shrestha directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Ammar Shrestha
Ammar Shrestha

Hello! My name is Ammar and I am a software developer with over 7 years of experience. I specialize in the Laravel framework and have a passion for building high-quality, scalable web applications. I have worked on a variety of projects using Laravel, from small startups to large enterprises, and have a track record of delivering successful, well-designed solutions. In addition to my expertise in Laravel, I have a strong background in Vue and Angular Frontend frameworks and am always looking for new challenges and opportunities to learn and grow. If you are looking for a reliable, experienced Laravel developer, please don't hesitate to contact me.