3 ms·
What usually happens in those bigger projects is that for every distinct piece of functionality there is a person, let's say Igor, that knows it inside out and
by WesolyKubeczek 5y ago
What usually happens in those bigger projects is that for every distinct piece of functionality there is a person, let's say Igor, that knows it inside out and to whom everybody comes when they have a question. Sometimes one Igor is in charge of several subsystems, or there is one Igor per subsystem, but I'm yet to see a subsystem that has more than one Igor with a real, significant, working knowledge of it.
How exactly Igors come in possession of such knowledge is irrelevant to this empirical fact. Some may build up security by obscurity and make themselves indispensable; some might have accrued the knowledge by either being the one who designed it, or having had to debug its guts because a change had to be made. An Igor can be a bottleneck or a godsend. The defining trait is that whenever there's a weird issue in a subsystem or more than a cosmetic change needs to be made, everyone goes, "let's ask Igor" or "let Igor do it". Again, doesn't matter if Igor is good or evil.
Even when Igor is open towards the idea of knowledge sharing, even eager about it sometimes, everyone else is lukewarm at best, and all non-Igors just hope they don't replace Igor at his job. It's just damn convenient to have Igor around. When Igor departs the company, knowledge transfer sessions usually consists of Igor working hard to explain everything, and everyone else quietly hoping that somebody else will listen and take notes. No one will remember where the notes are, though, and where the recordings of the sessions are stored, or whether they indeed are made and stored at all.
When Igor gets hit by a bus, even the most documented system he was tending to will likely be replaced by something else, because reading is too much work already, and comprehension is even more so. There also may be an emerging larva of Igor who wants to put some cred onto his résumé, so he will obviously want to redesign everything in the coolest technology du jour.
- mtVessel 5y agoA very apt description. IDD (Igor-driven development) is probably the most common software engineering methodology in use, at least in the enterprise.
- WesolyKubeczek 5y agoIgor-Driven Development. I think the late Sir Terry Pratchett would be proud of the concept, indeed. :-)
- a9h74j 5y agoThreat model: IHBBB -- Igor hit by big bus.