Two programmers, an old sage and an ambitious, competitive novice, worked within a company on many things. For one project, their manager assigned them to write a script to handle some accounting. As was their custom, the novice listened to the manager and passed the request on to the old sage, who wrote it in about two hours. The novice tested it for a few days, hoping but always failing to find the sage napping, and passed it back to the manager, who ran it, and found it good. Time passed, and eventually the manager came back and noted that he'd like the software to do something else. The novice passed it to the sage, who extended it, and it was tested again and passed back. This happened several times, and each time the manager was happy with the program. Eventually, the manager asked the novice if they could write the software so it'd be flexible enough to do anything, so he wouldn't need to keep asking them to rewrite it. The novice left the note on the desk of the old sage, and came back later, only to find that the sage had provided merely an empty file with no code as his product. The novice tracked down the sage, who was at a local coffeshop, and asked him why there was no code. The sage replied, "the only real flexibility is emptiness. Solutions require constraint, and the very act of specifying is, to an extent, programming. For goodness sakes, don't tell the manager that -- make something up instead". The ambitious novice saw an opportunity to get ahead of the sage, and explained to the manager why the software could not be written. The manager, not understanding the answer, thought the novice to be lazy and fired him. Lessons:
- Managers who don't do and never did what they're asking the people they manage to do tend to be clueless
- It's often best not to remind them of that, or to interact with them on work terms much beyond doing what it takes to take assignments and handing back completed results
- The most flexible software is a combination of a compiler and the binaries it produces (or a script interpreter, if you prefer). A holy grail of software flexibility doesn't much resemble what people would think
Tonight, after spending much of the day at home designing a system to manage a certain kind of experimental data for work, I went to India Garden, and really am struck by how, in many ways, I'm almost back to square one again. It seems such a shame. Further, I have really old memories that were quite vivid that I managed to forget that are coming back.
Maybe its just that I've been watching bits of it with friends recently, but recently the end and meaning of the anime series Serial Experiments Lain again. The particular choice made at the end of the series makes me wonder if faced with a similar situation, I would do the same. Sometimes I daydream about what it would be like to be there, imagining a slightly shuffled reality. It wouldn't be very difficult to achieve a poor man's version of it -- by moving someplace new, and making certain social choices there. The mind is a complex thing -- some part of me wants that, and could deal with the consequences.
One of my cats is just beginning to learn the joys of draping themselves around my neck -- I hope that they'll continue it, because that really makes me happy. On the other hand, I'm noticing that both of them have a significant amount of pudge to them. I guess as they get older, things get saggy. Shrug.