February 10, 2010
Instrument your business. It's like instrumenting your code, but profitable.
If you're a developer or a sysadmin, periodic optimization is a fact of life. As more people use your code, you'll see performance issues. Unoptimized use cases bubble up. Systems get strained by continued or heavy use.
On the technical front, there are a lots of instrumentation tools available. We've used ruby-prof, Request Log Analyzer, Scout (of course), MySQL Tuner, httperf, and Rack::Debug. Not to mention low-level tools like top, vmstat, iostat, etc.
The point is this: anything that gets used a lot can be optimized. To optimize you need visibility. To get visibility, you need tools.
If you're a developer-run business, you should take the same attitude towards optimizing your business as you to do optimizing your code. It's a good sign when you get to this point, because it means you have traction (e.g., something to optimize). How can you instrument your business? Start by asking questions:
What sites are sending traffic? Our biggest referrer to Scout by far is organic search. During a typical time period, we will get 30-35% of our traffic through Google searches.
How well does referral traffic convert to paying customers? The best way to measure this is through Google Analytics. See my previous post on registering goals through Rails' flash methods for a technique that works well for us.
How often are emails being read? Third-party email services offer this metric, but it's also very easy to implement yourself. A small image containing an id or GUID in its route can provide the info you need.
What percentage of free accounts upgrade to paid accounts? We wrote our own tracking mechanism for tracking upgrades. Google analytics could also work for this, but we wanted to keep these records close to our own internal data.
What feedback do canceling accounts give? It's pretty trivial collect some qualitative feedback. We have a simple form that asks canceling accounts if we could have done anything differently. The key to getting feedback is to make it as lightweight as possible; one freeform field is all it takes.
What are people saying about you on twitter? Twitter should be a given these days for gathering passive feedback on your business. Monitor mentions of your twitter username
What features do users want? We use UserVoice to field suggestions and feedback from users. It's a simple tool that aggregates user feedback via an upvoting mechanism.
What will users say directly?. Don't be afraid to arrange calls with customers. Not everyone will respond to your requests, but some will.
These questions don't stand alone. Just as instrumenting your code won't make it run faster, gathering information on you business operations won't magically generate more revenue.
That said, it's amazing how just gathering the data steers you towards greater profitability. As a developer, you are naturally driven to solve the problems in front of you. Get the right information in front of yourself, and I bet you're revenue will increase.
This is a key difference between technical optimization and business optimization. In technology, it's often said that optimization is the root of all evil:
In business, exactly the opposite is true. Business benefits from instrumentation & optimization early. Can you even imagine being accused of making too much money, too soon? In business, instrument early and optimize early.
A positive note if you're a hacker: instrumenting a business can be really, really fun. Think about it: your aim is create a life-sized positive feedback loop of data collection, analysis, optimization, and results. And you'll frequently get to write code to glue it all together. Best of all, a job well done means more money is generated, which enables you to pursue more optimization. You really can't beat that!