I’m currently writing a novel. I have a ton of scattered plot notes, some written, some in my head. Since the novel is an active project, I don’t need a ton of notes—I remember most of it. In 5 years, these notes would be less useful to me. If someone else took over and didn’t have the benefit of my presence, they’d probably be totally lost.
Equally, I use a lot of archaic programs on my home computer. I could spend a week converting my entire music collection to MP3, but right now it only works with Winamp and a suite of custom plugins to handle obscure formats like “raw SNES music files”. For me, this is trivial upkeep, since I replace computers every ~5 years, and it takes 15 minutes to re-install the plugins. There’s no reason to convert the collection UNTIL I decide to switch away from Winamp, or hand it off to someone else.
In other words, “mainstream, up to date tools” are not necessarily better, even if they’re more likely to be FAMILIAR to someone new to the project. Writing code in COBOL might make it 10x more maintainable and faster, as long as you have a COBOL programmer on staff to handle it… The whole Y2K bug speaks well to that.
So, no, I don’t see any reason to conclude that replaceability and usability go hand in hand :)
Eliezer Yudkowsky gets hit by a bus. Do you want his unfinished ideas to be in a text file on his cellphone, in a pile of handwritten sheets, or in his head?
Eliezer keeping his notes where I can access them is altruism. It does NOT make him more efficient as Nornagest was claiming, and might actually waste quite a lot of his time.
I’d want him to keep them in whatever format he feels is best—keeping them in his head might drastically increase his productivity, and we’d all benefit. Even being altruistic, it’s still a risk-reward tradeoff, and I trust him to make that decision better than me (he knows the factors better, and I’d wager that he’s smarter and more rational than I am about such things anyway)
Documentation in a corporate environment, or even in something like an open-source project, serves several purposes: to make it easier to get new team members up to speed (which can be used to train replacements, but also serves an expansibility purpose), to reduce coordination overhead, and to make it easier to remember what the heck you were doing after spending five months tasked with something else. Most of these motivations aren’t purely altruistic.
Obviously this is going to be quite different for a solo project, and it does look like the downsides to defection are less severe in situations where you have a unique skillset and your company isn’t expecting a need for other people with the same skills. But the point remains that there are performance-oriented reasons for doing a lot of things the OP describes strictly in terms of affecting your replaceability, and in any case the problematic situations seem too limited for cooperation in their context to be called a major virtue.
Can we agree that f your goals are “don’t get replaced, but help the company grow” it’s a risk-reward tradeoff to do things like documentation? And sometimes documenting won’t help growth at all, and sometimes it won’t affect how replaceable you are?
My point wasn’t meant to be a generalized “documentation NEVER helps”, just that it’s entirely possible for an action to be primarily a risk-of-being-replaced without much personal gain :)
Documentation seems largely altruistic:
I’m currently writing a novel. I have a ton of scattered plot notes, some written, some in my head. Since the novel is an active project, I don’t need a ton of notes—I remember most of it. In 5 years, these notes would be less useful to me. If someone else took over and didn’t have the benefit of my presence, they’d probably be totally lost.
Equally, I use a lot of archaic programs on my home computer. I could spend a week converting my entire music collection to MP3, but right now it only works with Winamp and a suite of custom plugins to handle obscure formats like “raw SNES music files”. For me, this is trivial upkeep, since I replace computers every ~5 years, and it takes 15 minutes to re-install the plugins. There’s no reason to convert the collection UNTIL I decide to switch away from Winamp, or hand it off to someone else.
In other words, “mainstream, up to date tools” are not necessarily better, even if they’re more likely to be FAMILIAR to someone new to the project. Writing code in COBOL might make it 10x more maintainable and faster, as long as you have a COBOL programmer on staff to handle it… The whole Y2K bug speaks well to that.
So, no, I don’t see any reason to conclude that replaceability and usability go hand in hand :)
Eliezer Yudkowsky gets hit by a bus. Do you want his unfinished ideas to be in a text file on his cellphone, in a pile of handwritten sheets, or in his head?
Eliezer keeping his notes where I can access them is altruism. It does NOT make him more efficient as Nornagest was claiming, and might actually waste quite a lot of his time.
I’d want him to keep them in whatever format he feels is best—keeping them in his head might drastically increase his productivity, and we’d all benefit. Even being altruistic, it’s still a risk-reward tradeoff, and I trust him to make that decision better than me (he knows the factors better, and I’d wager that he’s smarter and more rational than I am about such things anyway)
Documentation in a corporate environment, or even in something like an open-source project, serves several purposes: to make it easier to get new team members up to speed (which can be used to train replacements, but also serves an expansibility purpose), to reduce coordination overhead, and to make it easier to remember what the heck you were doing after spending five months tasked with something else. Most of these motivations aren’t purely altruistic.
Obviously this is going to be quite different for a solo project, and it does look like the downsides to defection are less severe in situations where you have a unique skillset and your company isn’t expecting a need for other people with the same skills. But the point remains that there are performance-oriented reasons for doing a lot of things the OP describes strictly in terms of affecting your replaceability, and in any case the problematic situations seem too limited for cooperation in their context to be called a major virtue.
Can we agree that f your goals are “don’t get replaced, but help the company grow” it’s a risk-reward tradeoff to do things like documentation? And sometimes documenting won’t help growth at all, and sometimes it won’t affect how replaceable you are?
My point wasn’t meant to be a generalized “documentation NEVER helps”, just that it’s entirely possible for an action to be primarily a risk-of-being-replaced without much personal gain :)
Yeah, that seems reasonable.