Treat Every Line of Code as If It's Going to be Thrown Away One Day
The Agile Zone is brought to you in partnership with JetBrains. Learn how Agile Boards in YouTrack are designed to help teams plan, visualize and manage their work in an efficient manner, with support for both Scrum and Kanban processes.
It’s incredible to see talented people succeed at building great things.
I met Dmitri through a mentorship program and brainstormed with him during his early prototyping ofBackspaces. I told him to feel free to ignore most or all of what I said, too. So, needless to say I was pleasantly surprised when he attributed an excellent piece advice to me in his recent blog post – Treat Every Line of Code as If It's Going to be Thrown Away One Day – and put it in the context of programming as an art form.
Many have drawn parallels between software and art, but I think that while programming is most certainly a creative endeavor, most of its output is mastery and technique. A piece of art may live forever and offer new generations an updated perspective in their context, whereas a program is ephemeral by design, and is quickly made obsolete with rapidly advancing technology. And, unlike art, the large part of elegance of a program is perceived at the time of the writing (replaced by a new, less beautiful and less buggy implementation the next morning). So, how long should code live, anyway?
For a startup, the answer to that question is not long. A true startup is experimenting and looking for a business model. In that context code is more dead weight than intellectual property. The best we can do is not to get attached to it and treat every line of code as if it’s going to be thrown away
one day tomorrow.
Just this week I deleted a huge and solid piece of functionality that lived for barely three months and took weeks to develop. The complexity of the feature was staggering and the implications of the change reverberated through every part of the system. But I cannot feel bad about it, it has served its purpose and show must go on. We all have to remember that the real goal of software is to empower or entertains an individual, a group, or, in rare cases, society. The editor I am using now is helping me put my thoughts on this blog. The website I work on every day brings art to millions of people. Software makes it possible for an airplane to fly across the ocean to visit your family. It brings planet Mars a bit closer – I hope to visit one day.
Code may be important, but everything else is more valuable.