Application performance/speed is a feature that’s incredibly valuable. Think about it: if a website or SaaS application performs slowly on a regular basis you’re much more likely to start evaluating other options. For a complex, multi-tenant web app the number of moving parts grows over time making consistent, fast performance more and more challenging.
Here are some items to consider doing on a regular basis:
- Evaluate raw database size on the filesystem as well as number of rows in the 10 largest tables (e.g. take a snapshot of this in a table or manually put the values in a Google Spreadsheet once per month)
- Track the amount of time it takes to complete nightly background jobs and record it on a regular basis for time series analytics
- Incorporate in-app tools to measure database query execution time as well as log slow queries
- Measure the page load time of the 25 most important user functions with real browser checks using Rigor.com, or a similar tool, on a daily basis
One of the key factors is measuring the rate of change and growth over time — it’s best to get out of front of potential speed issues rather than deal with them when they arrive. Application performance is a feature and needs to treated as such.
What else? What are some other items to consider for application performance over time for startups?
A couple of dimensions to keep in mind from my days profiling enormous enterprise apps at FedEx and Cox…
1. Real vs. Synthetic transactions: If you are going to depend on synthetic transactions to profile your application you have to make sure you’re covering all your usage patterns in a realistic way. It’s sometimes better to use a tool like NewRelic to profile real transactions than to inject your own synthetic.
2. Measure EVERYTHING, especially your “funnel” so you can detect issues as quickly as possible. If you deploy code and the number of trial to paid conversions drops off then something is wrong with your app or your design.