"Can someone tell me what skill set should a Performance and Capacity Analyst have and develop throughout his career?"and I realized that, although I have a kind of list in my head, and I talk about such skills in my classes, I have been too lazy to write them down anywhere; which is pretty dumb. I must try to do something about that (New Year resolution? What are the odds?). In some ways, my fallback is the online Guerrilla Manual. Anyway, here is my (slightly edited) response to the LI question, and let it therefore constitute my first attempt at writing down such a list.
Unlike the usual set of computer-based skills needed for programming or app dev or kernel dev or being a network engineer or a sysadm, CaP (Capacity planning and Performance analysis) is more like a physical science, in my view.What did I miss? Comments, corrections, additions, refinements: all welcome.It all starts and ends with the data.
Physical sciences involve such skills as:
Scientists usually don't like to acknowledge (5). "Marketing" is a dirty word, but they do it anyway. :)
- Collection and observation of raw data
- Controlled experiments in the lab to find clearer relationships in the data
- Use of tools to create and analyze data
- Development of models to both explain data and predict effects
- Publishing/marketing results and budgeting for experimental equipmentIt's all marketing!I'm also including the biological sciences here; the main difference being that bio systems can up and die on you when testing. Rebooting is not an option, and that can really ruin your data.
Translating the above skills list for CaP:
To make each of these skills manifest requires:
- Collection of raw data using monitoring tools
- Load testing simulations to determine stimulus-response relationships
- Use of Excel, R, visualization, etc., to analyze data
- Development of models to both explain and predict
- Marketing/publishing your analysis and knowing the financial ramifications
It's also important to have a clear and unambiguous understanding of performance metrics. But even more important than that, is understanding the relationships between those metrics. Those relationships are typically nonlinear and that's what makes CaP both hard and interesting. And that's what makes all the above skills not only important but vital.
- understanding the relevant technologies
- understanding of good deal of math and statistics (without being a mathematician)
- being able to communicate technical concepts to mere mortals (e.g., the CEO)
- ability to perform diagnostic experiments
- being a generalist vs. a specialist (Get your face out of the bit bucket)
- ability to spot patterns and analogies (e.g., UNIX load average acts like an RC electric circuit)
- paying attention to the right details (Put that kitchen sink down!)
- cross-checking your conclusions (e.g., Therefore: lightweight heavy processes sleep furiously)
- constantly watching market trends (to avoid being run over by the technology train)We are data scientists too!The nonlinear relationships are often best expressed using queue-theoretic paradigms because all complex computer systems can be represented as a network (or circuit) of buffers (queues). QED
The good news here is, you will not be replaced by software or a computer any time soon.Watson won Jeopardy. Pfft! Big deal.
Models, e.g., queueing models, are not only useful for prediction (the usage most people think of), but they are often more useful for explaining data.A good model is better than a crystal ball (which is just a piece of glass).Beyond the technical skills, CaP also requires connecting it all up with financial constraints/budgets in purchasing/procurement cycles, etc. That aspect varies enormously depending on the type of business and its operational requirements.