You know why I love working on Kiln every day?
Because we’ve got a mission, dammit.
Mission, not mission statement. The Kiln team doesn’t have a mission statement, and I’ll fight to keep it that way. Mission statements, no matter how well intentioned, become these trite little soundbites that you parrot indefinitely until they just become a meaningless jumble of syllables—kind of like what happens if you just say the word “marmalade” about 40 times in a row.
But that’s totally different from having a mission. Everyone who works on Kiln knows what we’re trying to accomplish. They’ll phrase it in their own way, but no matter who you talk to on my team, we’ll all tell you why Kiln exists: we believe that distributed version control is so much more awesome than old-school centralized crap that we have an obligation to bring that awesomeness to as many developers as possible. Every time I write a line of code, I have in my head that I’m trying to further that goal.
Distributed version control is having trouble making inroads at companies, you say? Fine. We’ve make Kiln an awesome system for companies: we’ve made a kickass project-centric workflow, given teams a way of handling large numbers of repositories, added asset management, permissions models, code reviews, rich APIs, and piles more. People having trouble leaving their old system behind? No problem: we’ll draft Joel into writing awesome tutorials, we’ll give talks on distributed version control all over the world, we’ll provide training services to help bring people up to speed, and we’ll make an importer to help you get your existing code moved over. We’ll even create a StackExchange just for helping people figure out Mercurial, Kiln, and distributed version control, so that there’s a good, central location to get answers about tools, workflows, and everything else. These things probably all help Kiln, but we’re not doing them because of that; we’re doing them because we have to do them to achieve what we believe we need to do. The rest is a footnote.
I feel like I can tell you any good product’s mission really easily for similar reasons. iPhone? Make using a smartphone fun. The App Store, iBooks, and so on are just fall-out.
Kindle? Make digital books completely pervasive. And you know that’s the goal, because you can read Kindle books on practically any device in wonderful, intuitive applications.
Google? Make it possible to find good, relevant data, quickly.
Facebook? Keep people from losing touch.
There’s a common theme here: in all of these cases, the mission isn’t about the product as such. The mission is “just” something that, if you’re really serious about, requires that the product become absolutely amazing, so you make that happen. If you prefer: these missions are all the answer to, why did we just add that new feature?, not, what new feature are we adding?
What the hell is Windows' mission in life? The best I can come up with, at this point, is to keep Windows from getting too dated, but not breaking backwards compatibility, so that Microsoft can make money while they find something that actually sticks. That’s…pretty pathetic. Not to single out Microsoft here; I’m not really convinced the OS X team has a terribly coherent mission right now, either. They have a clear goal—they want to bring the experience of the iPhone and iPad to OS X—but I don’t quite grok why they’re doing it, and I would argue that the somewhat haphazard mishmash of app UIs in the Lion previews (compare Address Book with the new Mail, for example) is a pretty good indication that they don’t quite know, either.
When you don’t really know why you’re doing something—when it’s just a goal that you’ve got and you’ve lost track of your original motivation—it’s really tough to have a good product, or to be excited when you come into work every day. Yes, someone has to fix Windows. But why me? Why can’t I be making something awesome? So you’ll do the minimal amount necessary to achieve your best understanding of the goal, rather than everything required to maximize your chance of actually achieving your mission in life.
Don’t just latch onto something because it’s neat. Latch onto it because you really fucking believe that you have something to accomplish here, and since no one else is going to do it, it’s going to have to be you. That’s your mission.
Make it happen.