Hey all, I’m still a junior dev with years of experience in IT. One of the things I’ve noticed since making the switch is that (at least where I work) documentation is inconsistent.

Things I encounter include incomplete documentation, outdated documentation and written process details that have assumed knowledge which makes it difficult for junior Devs to pick up.

I’ve had a search and a lot of what is out there talks more about product and how to document that SDLC rather than best practice in writing and organising documents against the actual software engineering and its processes.

Does anyone have any good sources or suggestions on how I could look to try and begin to improve documentation within my team?

  • FizzyOrange
    link
    fedilink
    arrow-up
    3
    ·
    3 months ago

    This is the sort of thing you have to learn by experience, like how you can’t really learn good coding taste from reading a list of rules (though some lists are helpful).

    Anyway in my experience documentation is quite different in public (i.e. seen by customers) and private (inside your company). For internal stuff there’s a much smaller incentive to document things because:

    1. documentation tends to be inconsistent (as you discovered), so people give up looking for it. Instead they just ask other people. This actually works fairly well inside a company because you can generally easily access whoever is responsible (as long as they haven’t left).
    2. there aren’t customers to keep happy and away from support.

    I think the best thing to do is to accept that people aren’t going to expect documentation internally. There’s zero point writing guides to tools on your company wiki or whatever, because nobody will even try to look for it - they’ll assume it doesn’t exist.

    Instead you should try to keep your documentation as close to the user as possible. That means, don’t have a separate docs folder in your repo - put your docs as comments in the code.

    Don’t put deployment instructions on your wiki - add a ./deploy.sh script. It can just echo the instructions initially.