Releasing early and often... how it failed for us
behindtheclock.timmyontime.com
behindtheclock.timmyontime.com
However you need to control events and not let events control you. If you react to every tiny issue reported you will end up in a cycle of release-issue-fix-release.
If the issue is only affecting a minority of customers and it's not critical for security - park it - and keep on with the feature plan.
You can't please all the people all the time.
Example: http://danieltenner.com/posts/0005-starting-up-with-a-friend... (still on the HN front page)
Sorry -- I'm still getting that out of my system.
Seriously, as smombat points out, posts are much better if you tell the story of how you got to where you are and why you made the decision you did. That gives the rest of us some context. For the most part, broad, sweeping statements are false. Especially in IT, where there's too many edge cases. So the details of your particular situation are what adds value to the reader.
It's all good stuff, no doubt, but without a frame to pull the reader in it loses a lot of impact.
It's a style thing. Do what comes natural to you. I didn't like your post, because to me there was nothing there. I already know that teams that don't think about the big picture and just push to release get caught in a tweak-debug-release cycle. That's just me, though. Personally I would have enjoyed learning if you started off with a design, what happened to it? Who was driving your release cycle? How often was too often for you? Did you have a master release plan that you threw away, or did you never think that far ahead? Etc. It's the details of the thing that matter: everybody already knows the one-liner (or think they do)
That's just me. No worries here. Glad to see you writing and submitting. Look forward to reading more of your work.
I'm a big fan of keeping things as brief as possible, but from what I can tell it's not the best format for the web. I've only seen it work for people who have huge followings already (e.g. seth godin). Even there, most of their posts don't take off...
I could be wrong of course! Good luck to both of us :-)
But you're right that longer posts are more likely to 'catch' the reader
The goal isn't "short". It's "concision". You still need to have something to say.
It sounds like the author's team got stuck in a bug-fixing cycle where each release caused enough new bugs to fill the next iteration with bug-fixing work. Were they using automated testing? Was the development team good enough to adapt to a rapid release cycle (not everyone can do it)? Too many unknowns to comment on the author's experience...
It's also worth pointing out that nobody said a rapid release cycle was easy. It's hard to keep the vision and the details in mind. As they say, "Programming is hard, let's go shopping".
As for #1, I just think that it matters very much because the group of early adopters is going to be very small anyway, unless you do some hyped launch like Cuil. Therefore, loosing a couple of users for good can be a small price to pay for the highly valuable feedback that you are bound to get.
#2 is something you have to be concerned about but that doesn't mean that you have to let it control you. And once something is launched, you are bound to get feedback anyway, so it really only applies to the "release early"-part.
You released, you saw what the problems were, and now you hopefully have learned from the experience, and can go in a better direction. Just be sure to evolve, do not scratch and try to start afresh.
(Forgive me, but I like using numbers as a basis for decisions)
It works especially well if you have a model to copy: Microsoft Windows 1.0, 2.0, 3.0 was based on the Macintosh. Linux was based on Unix.
Or you can have clear vision that you are working towards - in this case, the model you are copying is imaginary.
I guess that's the "Grand Scheme" the article is talking about. You do have to have a way to keep that in mind, and build towards it. You can do this by giving selective attention to the feedback (bug reports, feature requests, complaints) that leads towards your Grand Scheme. This also builds a user base that is aligned with what you want to do (by encouraging those people, and turning off the others). Then your user base supports your vision, instead of undermining it.
You are the captain.
There is definitely a danger to release early and often : You have less time to think about your core idea. If you embark yourself in a quick release cycle without precautions, you have greater chances to forget about the product as a whole and its evolution. This is what happened to us. Now you could say that it happened to us just because we are stupid, but it would be more productive to start cogitating on the implications of bold statements like "Release early and often".
The 37signals guys are great marketers but about the only thing unique to come from them, the only practice they actually created, was convention over configuration as a core principle. Everything else they just picked up and repackaged from existing extreme programming principles.
http://www.research.ibm.com/journal/sj/323/ibmsj3203E.pdf [PDF]
There's such a thing as releasing too early. If the idea is not fully developed, and or its architectural ramifications still being explored, releasing early can trap you and make it far more difficult to evolve your concept.
If you're absolutely sure of what you're doing, what you want it to look like, how it will work, and you're just building gradually towards this well-defined final goal - great, release early and get users on board.
But if you're not sure, don't! Once you get a few users who trusted you and put their time into your project, no matter if it was free or not, you can't just walk away. Well maybe you can but I can't.
When you release something, you ask users to commit to your project. It's unfair to do that unless you're equally committed.
I'm a big fan of private betas, where you can flesh all this stuff out before asking strangers to put their time into your app. Very private betas, if need be - just you. Release early and often - to yourself. Maintain a runnable state at all times. Use your app intensively, eat your own dog food, evolve it that way. I like this kind of advice, not 37Signal's cookie cutter platitudes.
I'm sure you and your team are well versed in everything to do with Timmy, but please understand that no-one else has any idea what you are talking about. Uh-huh. I see a lot of lightning. That's a nice slideshow you put together there. Very impressive. I might look at the source to see how you did it. WTF is Timmy?
Imagine I pointed you to a link called Michael Evolved, with a nice slideshow and music, telling you that now, Michael is moving to the Next Level! Sign up now for the Michael private beta! You visited the link. You gave it several minutes of your attention. You have no fucking idea what it is talking about. You'd be posting the exact same thing back to me. Who, or what, is Michael? Who knows! Maybe ask Timmy!
By the way, are you angry or something? I don't understand why you are pissed off like that.
(then again, it might not matter since I never knew what the old site did)
I don't see how this is ad. That shit is DATA. Data informs your future decisions. You're free to incorporate it or ignore it at your will.
Why, you can even act as if the "release" never happened in the first place.
Release often is about getting exited with your product, I about bugfixing as exiting.
apparently, you released too early, too often