One of the great things about the Internet is how it has made it easier to put great ideas into practice. Whether the ideas are about improving people’s lives or a new way to sell and old-fashioned product, there’s nothing like a good little startup tale of creative disruption to deliver us from something old and tired.
We work with a lot of startup firms and we love being part of the atmosphere of optimism and ingenuity, peppered with a bit of youthful zeal – something very indie-rock-and-roll about it. But whether they are just starting out or already picking up pace every startup faces the same challenges to scale a business. Recently, we were reminded of this when we watched Inc’s video interview with Birchbox founders, Hayley Barna and Katia Beauchamp.
Birchbox is a service that delivers a box of cosmetic samples to its subscribers each month for them to try out before they decide to make a full size purchase through the Birchbox site. To encourage its members to buy those lipsticks and mascaras, Birchbox produces product editorials and How-To videos on their site. By many yardsticks, the startup has been successful in less than a year from its launch but as Beauchamp puts it, they have a long road ahead of them.
Listening to Barna and Beauchamp talk about their scalability issues, we thought about how we would help a business in their position.
First some notes about the business
- Not just a service & tech company; have a physical product
- Rapid growth and relentless feature changes
- Doubling in size monthly
- Doing something new – trailblazing & disruptive
- Building a platform – must match customer & brand partner needs
What we would recommend:
1. Embrace Agile Software Development
Agile Software Development means more frequent but smaller code pushes, better change management, and a development process that’s more responsive to changing business needs. We’d all like to have a fully formed scope, list of features, and blueprint before we begin development. But the real world things are rarely so cut and dry. Agile speaks to this need in a successful and proven way.
2. Deploy applications in the Cloud
Web applications experiencing rapid growth and high seasonal traffic are especially suited to cloud hosting solutions. Scaling up or scaling out on a moment’s notice becomes the norm (Kate Moss could reveal her favorite lipgloss of the season tomorrow and cause a surge in orders). On-demand computing resources are thus a natural fit for Birchbox.
3. Build and deploy code with feature flags and operational switches
As new features, and changes are planned, operational switches should be included in the mix. Like what the term suggests, this allows the web operations team to flip any new features on and off when required or make them available only to their administrative or beta users. This gives flexibility for Birchbox who runs a customer loyalty program. If they hit a performance snag and find they can’t cope being knee-deep in orders, they can turn that new feature off temporarily until they address the problem.
4. Perform basic capacity planning
As their user base grows, Birchbox would want to monitor metrics and server utilization. Database capacity is at 25% with two web servers and 40% when you add a third? Do some basic calculations to figure as you hit five or six web servers you’ll need to scale out your database tier horizontally.
5. Anticipate barriers to scalability – Processes and Services don’t have to share the same bed
Start with two web servers not one. Birchbox may want to keep their database and web server on separate servers. When you split them up they won’t have to share resources so each can do the job much faster. Something this simple may not be obvious to businesses that want to be ready to scale from the very start. Use message queues to avoid serialization bottlenecks. Use object and page caches, and be prepared to move them to their own servers if needed.