Sadly I have rarely seen people doing this. These shadow knowledge usually went away with their owners when they left the company, left other people scratching their heads.
> Sadly I have rarely seen people doing this. These shadow knowledge usually went away with their owners when they left the company, left other people scratching their heads.
Some of that's inevitable, but I'm continuously surprised about how unconcerned people are about it day to day.
I document why stuff in comments, commit messages, and other documents all the time. It's super easy since 1) I've been there when that shadow knowledge goes away, 2) I can think about future-me when I write that stuff, because I know I'll forget a lot of it. I don't know why so many people have a problem with doing the same, and need to be constantly reminded to do it.
Probably a big part is letting the perfect be the enemy of the good. I don't consider anything to be definitive, it's all clues to be pieced together later, and I just like to leave as many clues as possible.
I think people simply stop caring once it's just a 9-5 job, plus it is never rewarded anyway. So you get random results.
That's why I always believe the following two points:
1. Engineers are trained on-job. This means, if you want to be a good engineer, a really good one. You need to be very picky about what you do. Most of the "engineer" positions out there, like 95% of them, do NOT promote, or even go against the best principles of true engineering, so you are basically fighting against the objective that is to be the best engineer you can be.
2. Engineers should NOT deal with complicated business rules -- that is, it can exist in code, but the stakeholders are the one to provide and explain it. We should want NOTHING of it.
Serving business interest, and keeping our jobs ≠ doing whatever the business stakeholders want, that means we have to be very picky about the kind of job we do, the kind of team and company we want to be part of it.
> I think people simply stop caring once it's just a 9-5 job, plus it is never rewarded anyway. So you get random results.
I can kind of see that, if you're so disengaged you don't care if your job is hard or easy. Then you just see it all as slogging for a certain number of hours a day.
But I don't get that. I don't like things being unnecessarily hard, and writing stuff down makes it easier to actually get things done in the future. And at some point you're going to get judged on your performance, so wasting a bunch of effort uselessly slogging doesn't make you look good if someone paying attention to if you're actually getting things done or not.
The biggest reward is me making my own life easier, and when I do that I can always later pretend to slog a big to grab some time for myself.
People who don't care already probably would take less work now instead of less work in the future. Like, they could just rage quit at any moment. I guess that's the mindset.
I had similar mindset about other things. My wife always wondered why I need to slice chores into pieces and do them one by one. "Why don't you just do them in one shot? It's a bit easier". "Honey, I really hate chores, and I might get hit by a truck in the next hour, so if I push as much work to the future, I maximize my happiness function at the moment."
Why would anyone ever do this? You run the risk of losing your job. I've yet to work at a single corporation where they truly cared about documentation, best practices, mentoring, rigorous testing; everyone always rewards the wrong incentives (pumping out features) and this is the result you get.
Frankly I don't blame workers either, it's not their fault they have to play a stupid game that helps no one so they can continue to have health insurance and not become homeless.