4 ms·
> Your job is to put yourself out of work [...] any software that you create is to be written in such a way that it can be picked up by any developer and under
by tomxor 6y ago
> Your job is to put yourself out of work [...] any software that you create is to be written in such a way that it can be picked up by any developer and understood with a minimal amount of effort.
This is a potentially dangerous one, my opinion is (when misinterpreted) this notion will make your product as disposable as your employees.
While the examples given to achieve this are not themselves bad, in the wrong hands the notion of ensuring minimal effort is required to understand any code produced can be used to enforce mediocrity, to make difficult writing good code by reducing everything to the lowest common denominator out of fear of something being too difficult for everyone to understand... within reason, it's important to embrace and exploit qualities not shared by all employees - there is a risk in certain employees becoming difficult to replace, but it's better than the guarantee that nothing of value will be produced.
- ChrisSD 6y agoAlready this is essentially the ethos of large software companies like Google, et al. An employee is a cog that can be moved to any project or replaced/discarded as needed. [Exceptions are of course made for a handful of people they actually do value for one reason or another]. Software is treated the same if it's not a primary revenue source (even if it is profitable). Heck, if you want a controversial opinion then arguably "disposable engineers" is an openly stated goal of programming languages like Go. [I'm not sure I'd entirely agree with this opinion but I wouldn't entirely disagree either].
- tomxor 6y agoYou're not wrong... I think the irony in this is that it likely produces very large codebases in an attempt to maximize legibility - in such a way that devs new to the code will spend an equal amount of time traversing it and trying to find things as they would have trying to understand a more minimal but less boring codebase while also potentially improving their abilities. In other words it's lose lose for all.