I made a simple resolution. I wanted to work on stuff that people would actually use.
If you walk the halls of Sun, AOL, HP, IBM, AOL, Cisco, Siebel, Oracle, any university, many startups, and even Google and Yahoo, you’ll find people working on stuff that isn’t going to ship. Or that if it does ship, it won’t be noticed, or won’t move the needle.
I made the same resolution after I left FIM.
Ugly code and awful products win all the time.
Because the world, full of competitors and networked humans with their set of behavior patterns, is part of the spec. If you’re designing a product, but don’t understand how the system of networked humans will work around it, you really can’t understand how your product will work either.
We wrote some of the ugliest code I’ve seen at ESPN. But our customers loved us, and we made money. Lesson learned: you don’t always need 90% code coverage and elegant solutions (although they’re satisfying to build and maintain). Figuring out the human is the most important problem; the code should support that as most appropriate.