← Back to context

Comment by GarnetFloride

2 days ago

Not Just Bikes did a YouTube on Seoul South Korea that brought this point up. They’ve got costs down because they’re working on it continuously.

As a tech writer people have a lot of experience but they never turn it into institutional knowledge because it’s never written down. Ay best it’s tribal knowledge passed by word of mouth.

I know some people refuse to document things because they are hoping for job security but that never happens. Or sometimes for revenge for getting rid of them. But many companies survive despite those efforts.

I'm not good at writing documentation, and you can't pay me enough to care about it, sorry. I've tried enough times, and nobody reads it, or it becomes out of date by the time anyone reads it, and I don't see the personal ROI. I'll write notes for future me, and put them somewhere others can read it, if you don't make that onerous. Otherwise, if you want documentation from me, you need to have someone else drag the information out of me and write it down. But, I've only rarely been in organizations that care enough about documentation to do that, so there you go.

There's always a lot of talk about how documentation is important, but there's never budget for a tech writer (well, you must have found some, as you've taken tech writer as a title, but it's not often available) or a documentation maintainer.

  • Writing / English were my worst subjects in school. Yet I have written internal, dealer, and customer facing documentation because I was the only one knowledgeable on the subject and there was no tech writer.

    Now I work where there is a tech writer and still create internal, dealer, and customer facing documentation, because I am the only one with the knowledge on the subject matter. Some things are filtered to the tech writer so tech writing has been reduced.

    Simply, don't call me or contact me for simple questions. Give me a real problem that others cannot solve. Some people like customer service or being able to be the one that helps. Documentation allows me to not be that person and focus on other things.

    There is only two ways to communicate to a person on how to use that tool only you created. 1) Showing them how to do it. 2) Giving them documentation so they only contact when needed. Option #2 takes time to save time in the long run that can be diverted else where.

    Documentation is part of any product design and software based solution. That new feature time is design, implementation, QA, documentation, and release.

  • It's not a binary thing... even just a few scattered "why we did it this way" comments in the code base is a lot better than no documentation at all.

  • Yeah. Being a tech writer is tough because few people appreciate the work.

    But the things I really need from devs is what is the feature supposed to do and why did you do it that way?

    I can read the code to know what it does but often that’s not what it’s supposed to do.

    The why can be simple too. We had a dev write an archive delete function that failed but the way was because the CEO pressured him.

    I’d love to know what you think documentation means.

    • The "why" can be so important... like you said, I can read the code, but I can't always divine the original author's intents...

      Anecdote:

      I once (well, many times, but especially this one time) inherited a completely undocumented codebase from a previous "lone wolf", mad genius type of programmer. Most of the stuff he wrote was completely inscrutable at first but really kinda genius once you figured it out.

      But one day I was tweaking one of his heatmaps showing solar production on a rooftop from "off" to "a little" to "a lot" to "this is broken", and his color gradient code was a magical one-liner doing strange math as hex operations. It usually went from blue to red to yellow, but would sometimes "overflow" into other strange colors that made no sense. I spent a few hours simulating different edge cases and getting back colors I could not reasonably explain — and which would confuse our users. I talked to my coworkers about it, who mostly insisted "Well, I don't know, but he was a very smart guy, so we should probably just trust him and move on". That was unsatisfying, and didn't really help me close the customer ticket that I was trying to solve.

      I kept bugging my boss about it, and after a few days of back and forths and seeing my simulation, he finally agreed to let me reach out to the original programmer (who had long since left the team). I finally got my answer a few hours later. He said, "Oh... that was just some random throwaway gradient I thought looked pretty, lol. I was lazy and wrote it in a hurry and, yeah, it probably bugs out on all but the simplest cases, and doesn't conform to any color standards... glad he caught it."

      Sigh, lol... that took several person-days to resolve, when it could've been a simple // #TODO: Use a better gradient system someday

    • > I’d love to know what you think documentation means.

      I'd say effective documentation lets the user know enough about the system that they can work on the system without needing to contact the previous person (or people) working on the system. Or at least, so they can get started and only ask 'good' questions.

      Something like descriptions of what the system is supposed to do, what it actually does if it differs significantly :D, maybe motivations. Descriptions of the data, and like where does it come from, where does it go, where did it come from (Cotton-Eye Joe?). If the system runs into problems often, a list of common issues and how to fix them, etc.

  • My day job is product developer and I have written hundreds of pages of documentation. The key is to write it as you go along. Not to wait until the release is ready to go!

    • > The key is to write it as you go along. Not to wait until the release is ready to go!

      OTOH, if you commit to not writing documentation, you don't need to write it when the release is ready either. :) I usually work on server side software that doesn't escape my org, though.