For years I wrote software with the absolute certain knowledge that nobody would ever see my code. I was a solo developer. Who besides me would ever see the code?
That certain knowledge turned out to be completely wrong, as I discovered when we sold MarsEdit to Daniel Jalkut back in 2007.
In other words, all of my code (except for my current app) has ended up in other people’s hands.
Like (hopefully) every developer, I work hard to get better every day. (For good developers, I think there’s a kind-of Moore’s Law: your code quality doubles every 18 months. Not that I would know how to measure that, but it feels about right.)
But now I write code with the absolute certain knowledge that it will end up in somebody else’s hands. I could be wrong, yes, but I’ve learned that it helps me write better and more-maintainable code if I just assume from the start that somebody else, most likely a friend, will end up working on that code base.
In theory, I shouldn’t have to think that way: I should do the same good job no matter what. But I don’t care about theory: if it helps me to think that way, if it helps remind me to go the extra mile to make it good, then it’s a useful way to think.
You’ve heard it before, that future-you is also a different person. While that’s true, it doesn’t have the emotional weight of an actual different person working on your code.
So the lesson I’ve learned is this: that other person is out there, and there’s a good chance I already know him or her. I want that person to be happy when they go to work on my code. I want them to not curse my name and the horse I rode in on.