As most everyone that reads this blog knows, I recently announced formation of my new startup company named Hashrocket. (We are named after the ubiquitous key/value => operator in Ruby.) One of our two principal offerings is called 3-2-1 Launch, and this post aims to tell you a little bit more about what it means and how we came up with it.
The idea for 3-2-1 Launch was born during Rails Rumble. Our app, PretendPeople, won honorable mention and the team had a great time. Afterwards, none of us could shake the idea that working under the huge time constraints of a 48-hour deadline brought out the absolute best in us. It's like the 37signals Getting Real philosophy, charged up on adrenaline. As far as we're concerned, one of the best ways to only "build half a product", is to only give yourself enough time to do that and nothing else. Embrace constraints!
Instead of freaking out about these constraints, embrace them. Let them guide you. Constraints drive innovation and force focus. Instead of trying to remove them, use them to your advantage.
After Rails Rumble we especially wondered if institutionalizing the embrace of constraints in a consultancy would be commercially-viable -- an appealing option for other "Getting Real" believers wanting to quickly churn out 1.0 versions of their new web application ideas.
We put the concept through its paces on internal work, and came to the conclusion that a span of 3 days is just enough time to get a new project off the ground - enough to nail down some distinguishing functionality, without sacrificing quality and good looks. Of course, it's not applicable to all projects -- our team of developers is 4-6 people (mostly working in pairs) which limits the amount of complexity we can tackle in one 3-day iteration (which we've taken to calling "orbits").
Here's a quick list of factors that empower us be ultra-productive in 3 days:
- Expertise in Ruby, Rails and BDD (using RSpec)
- Heavy automation of common tasks (pretty much anything repeatable is automated, including our initial application bootstrap which includes basic functionality such as authentication)
- Smart use of web services such as Amazon's EC2 and S3
- Reliance on Rails-based web 2.0 tools such as Basecamp, Highrise, Lighthouse, and Beanstalk
The 3 scheduled days (always Mon-Wed) refers strictly to implementation work, specifically the first iteration, ending with a public release of the software. Prior to the 3 days, our contract specifies a time period of 3 weeks during which we agree on detailed specification (RSpec Stories ftw!) and high-fidelity mockups. What we're looking to achieve is a high level of confidence that we'll be able to launch in 3 days, and that necessarily involves locking down requirements prior to implementation. We've talked about an abort mechanism if anybody on the team thinks we're not going to achieve a successful launch (unveiling) on Thursday. If an abort were to occur, we'd postpone the launch for the next available date (probably the following week) at no additional charge to the client.
Right now we're doing Rails exclusively, although we're keeping our eyes on Merb and other up-and-coming competitors.
The cost model for the 3 weeks + 3 days (including deployment and post-support) is fixed-price: 30,000 USD. An essential value of the offering involves client mentoring: our curriculum, which will probably be marketed separately within a few months teaches new web entrepreneurs the essentials about the development process, recruiting and vetting technical people, as well as evaluating hosting options and costs. We want to give our clients everything they need to establish accountability from their technical resources and not get ripped off "in the ghetto".
Our first public 3-2-1 Launch is clean-undies.com and we are planning on blogging a more extensive description of what it is along with a feature roadmap later this week.