Code and Creative Destruction
dangrover.com
dangrover.com
My primary job isn't writing software, but from time to time I do still end up writing software. My unofficial approach has been to solve a given set of problems, without adding complexity or new problems.
I wrote one piece of software that automated a process that had previously been 1/2 of a person's full-time job. The software I created was !@#$%^&. Part of the reason my software was so bad was because I was a relative novice programmer. But the biggest reason it was so bad was that the person who did the job had been so non-specific and inconsistent about requirements. While my software blew, I captured and solidified the underlying processes.
About 3-4 years after I finished that piece of software, I heard that a "professional" software programmer was hired to rewrite it from scratch. My first thought was, "OMG, some poor slop is going to have to wade through my !@#$%^& code!!!". But then I realized that I was actually grateful. I knew my code blew and it was going to get replaced with code that hopefully doesn't blow. More importantly, I knew that I had left the next programmer so much more of a foundation than I had when I had started working on the problem.
In the 3-4 years prior to the rewrite, I had been ashamed of what I had done. Since I found out about the rewrite, I've actually been really proud of my contribution. Because my biggest contribution wasn't code, it was the analysis and detailed documentation of the underlying processes.
One genre of history book that fascinated me was what I call the "ordinary biography". Biographies written about people who lived interesting lives, but never really did anything that would put them in a history textbook. I'd really like to see more of these.
The example that comes to mind is a book I once saw about a communist labor organizer in the 30's. Not a particularly famous one, just a guy (or was it a woman?) who went around helping workers form unions. It sounded interesting but I passed, and now I can't remember the title.
Steve Jobs reflected upon this notion back in 1994, and provided a great analogy. He said that each generation of tech, like sediments of rock, adds a new layer to our history. That's something I've carried with me through project cancelations and shifting in the industry, and has helped bring a lot of perspective to my career.
Here is the video, if you are interested. http://youtube.com/watch?v=zut2NLMVL_k
The point is that even if you don't write 100% good quality software, it'll still be valuable. As long as it serves its jobs for the time being. Just like an old building, ready to be wrecked, has created a home for hundreds of families. It served its purpose even if a new shiny & eco-friendly building is replacing it.
I find this to be true - though I think it may correlate to the size of the organization. Huge places favor crazy specialization.
From here: http://www.taoism.net/articles/what_tao.htm