Startup code velocity
Posted by: emptyspaceads on: December 17, 2009
Startups are supposed to be places where things happen quickly – right? Wrong! Many startups struggle with getting things done. In this post, I’ll talk about some lessons David and I learned which helpedĀ us deliver better code, faster. Caveat emptor: these are lessons that worked for us:
- Move fast and break things: Simply, check in and deploy code every single day. Keep your sprints short, preferably to less than a week. If something breaks (in production, gasp!), think about why it broke and try not to do it again. Pat yourselves on the back for shipping quickly, and do it again the next day.
- Don’t mix platforms: In fact, I’ll repeat it – stick to a single modern language and platform. Early in the development of v2, we started using Python (for our data mining) and Ruby (on Rails) for the application. If you have met us, you know how much we love Rails. Well, Python pales in comparison to Rails when it comes to almost anything – the language is cleaner, it has a better package management system and there are new packages being developed for it every day. Even if you like Python a lot, there’s a simple reason for sticking with the most modern platform – no integration costs! If you stick to Rails (or PHP), you have to deal with just one object-relational mapping layer instead of two, and a single logging mechanism instead of two or more.
- Invest in your deployment technology: We use Engine Yard instead of naked Amazon EC2. Yes, there’s a management premium, and yes, it’s a pain to configure custom deployment scripts on it, but the easier deployment and scale-up are worth it. Deployment can be a tax if you use hand-crafted scripts that are held together with duct tape.
- Copy-paste: Yes, you’re a fantastic developer, but someone has probably already done it before you. Microsoft probably has a persona for these types of developers. Put aside your pride, and log on to a chat room or forum. Copy-paste. Rinse. Repeat. Ship.
- Use mockups: Before you write code, use a tool like Balsamiq to show mockups to your customers. The hour you spend creating mockups is much better than a day or two you spend coding features no one uses.
Advertisement
Like this:
Be the first to like this post.