My first computer was a Commodore 64. It was somewhen in the early ’90s and I was using it mainly for one purpose - games. They were available either on special cartridges which were expensive and hard to get, or standard cassettes. And you could obtain those cassettes by borrowing and copying them on your own or buying them in regular shops. They were not official releases though - they were “pirates”. So you got like thirty games on a single tape. Usually however only few of them were worth to play and it sometimes took a couple of days to know the rules, moves and commands. That was part of the fun and back then I felt almost like a hacker after I had found how to play on some game my colleagues hadn’t figured out.
So what it has to do with being a real hacker? A lot. Cause hacking is also testing and experimenting. And it happens in the same way I was discovering my games then - without any documentation.
Agile manifesto states explicitly:
“Working software over comprehensive documentation”
So do we really need it?
Embrace the world without ridiculous amount of docs!
What you need is a working software, solution that will provide values for your clients, colleagues and other people. Don’t waste your precious time on writing instructions that probably nobody will ever read. Instead do some experiments, test new software and have a lot more fun! Real hackers don’t write documentation, they explore, they are elite and are known for their skills and achievements, not for documentation they write.
Besides you know what and how you’ve done something and if need you can do it again or tell somebody to do it. You’re like a monk who saves precious knowledge and that way you become valuable for your company - for things you’ve done, as they were done fast, clever and just work!
I wish I knew that before, but hey - I guess you don’t born as a hacker, maybe you become one with age and gained experience. Or maybe you just hack and hack, you’re like Elliot from Mr. Robot tv series saving the world from evil corporations who exist and feed with documentation - they especially love paper books describing every single bit and dozens of colorful diagrams and graphs. Hell no!
Part 2 - real hackers won’t like it much - you’ve been warned!
For those of you who noticed a cynical style of above descriptions I actually have a quite different view on that matter.
Show me how to play
I mentioned that only a few of games that were on a single cassette were fun to play. Do you know why the rest were not? One can say that it because I wasn’t clever enough to figure out the system of play, but I have other explanation - they were pirated versions which did not include any instructions or guides. Probably if I had had a game guide I would have known how to play and I could have tell if they were cool or not after I had played. I guess I missed a lot of cool games because of that stupid reason. I remember a few that looked awesome (if some game can look awesome on 8-bit computer), but I couldn’t play, because I didn’t know why and I felt frustrated.
Agile doesn’t reject need of documentation
Read once again the excerpt from agile manifesto - the last part states, that you should avoid comprehensive documentation, and not to avoid writing any documentation at all! I’ve heard that many people thinks that Agile is cool, because you don’t need to document your work. That’s not true. You don’t need write books about your application or work you’ve done, but there should be a trace for others who will probably use it or continue to develop.
Don’t repeat yourself
Without any documentation, even the most simple and short you’ll probably end up repeating tasks that could be easily done by others. You could then use your time for other activities - you could for example observe how other struggles with your tasks. Or just chill out and enjoy, because you’ re so awesome :-)
Essential ingredient for learning
There are many ways you can teach somebody to do something. Doc saves plenty of time during process of onboarding new employees. Instead of explaining everything in person you can always refer some part of documentation. For me it’s been always the best method to get to know new things. I’m not saying that classical peer-to-peer teaching/learning is bad - quite the opposite, it’s builds social bonds and is beneficial for both sides. And I guess you used some textbooks when you learned new stuff after all. At least in a place that did give us huge amount of knowledge - school.
Now that’s the real power of documentation. I know that we like to put our names and individual approach, but when it comes to managing big systems you can’t have that. When task is to be done dozens of times by many different people you’d rather want to expect the same results and not only close or similar.
Last, but not least. If you have documentation for particular tasks then it’s just a short step from automation. Just wrap it with some available tools and watch it running just as you wish it to run. By using automation tool you can also document your changes - by recording them you can always check what they affected or even do rollback in case something went wrong.
And finally - yes, hackers do also need and use documentation. Linux kernel has documentation in plain text files and as well many comments inside its code. It’s like with backup - you don’t do it until you first time lose data. You don’t write documentation until you notice that nobody around knows how something works and total chaos and frustration is becoming ubiquitous.
So, are you a “real” hacker or rather a smart one? Cause I personally believe the latter is the better one.