Lately I’ve been talking to people about some development projects and I keep repeating my 2 tenets of software development. The first is from Brian Hall of Mark/Space. He used to say
Shipping is a feature.
While this sounds quite simple in nature, it’s pretty important to any product. Not only is shipping a feature, I think it is the number 1 feature. My second tenet is something that I came up with when more and more features were added to a project and QA kept finding issues.
Software is never done; it’s just shipped.
Now you’re probably saying that these are either obvious or just plain idiotic. Anyone that has done software development for anything length of time has to agree with the second. How many bug fix releases have you done? I may strive to be a perfectionist, but I’m also a realist. You can spend forever making software perfect, but you’ll never reach the end.
It’s important, in my opinion, for anyone in a software project to be on the same page with these tenets. Without these, you can’t ship a product which means you can’t make money. There aren’t that many companies that I know of that can survive without shipping products and making money (OK, maybe there are companies that only do government contracts and keep taking money without shipping something that works.)