So what is it about Software Performance Engineering that gets us so excited. What is the buzz all about and why should you as a Practical Performance Analyst get exicted about the work we are doing. Let’s start off by taking a look at what Software Performance Engineering stands for including the roles played by a Practical Performance Analyst within the Performance Engineering team across an enterprise. We will then move onto some of reasons why we think a career as a Systems Performance Engineer is truly challenging and ultimately fulfilling.
This article was initially published at Practical Performance Analyst (at the older website) on the 6th of June 2012.
Performance Engineering is the science which deals with the design, build of system performance across the Software Development Life Cycle. Software Performance Engineering (SPE) is defined as a systematic and quantitative approach for the cost-effective development of software systems to meet stringent Non Functional Requirements (Performance, Capacity, Scalability, Availability, Reliability, etc). Software Performance Engineering can also be defined as the set of tasks or activities that need to be performed across the Software Development Life Cycle (SDLC) to get the system to meet the documented Non Functional Requirements. Software Performance Engineering is also often viewed as the art of building systems that meeting Non Functional requirements within the allocated time frame and budget constraints.
We have blogged about Performance Engineering (PE), written numerous articles about it in our fundamentals section and if you are keen to learn more about Performance Engineering please feel free to visit the SPE or Systems Performance Engineering fundamentals section here at Practical Performance Analyst. If you are interested in learning the fundamentals of Systems Performance Engineering please head over to the SPE Fundamentals section to learn more about the fundamental equations and strengthen your understanding of the various SPE related concepts.
As a Systems Performance Engineering you will be called up to perform different roles across the Performance Engineering life cycle. These roles can vary depending on the nature of the program, the business objective that needs to be addressed and the performance / scalability issues your customers are facing. While i am keen to write up a separate article on career options for a Practical Performance Analyst, for purpose of this article i will provide a summary of the different roles a Practical Performance Analyst will be called upon to perform.
Here’s our view on some of the critical roles that a Practical Performance Analyst could be called up to play -
- Performance Modelling Engineer
- Capacity Planner (also responsible for Capacity Management)
- Performance Testing Engineer
- Performance Monitoring Engineer
- Application Diagnostics & Tuning Engineer
- Performance Engineer (Jack of all but master in one of the above)
- Performance Lead
- Performance Archictect
Here are some of the reasons why we are convinced that being a Practical Performance Analyst is awesome and really cool.
Combination of Technical Skills & Business Acumen required - As a practicising Performance Engineer you are called upon on a daily basis to help customers address Performance / Scalability / Capacity issues across different applications in the enterprise. To be able to understand the performance issue at hand you need a good understanding of the underlying application and system architecture which requires sounds technical skills and there is no escaping from that.
But to able to truly help the customer you and do a great job you will need to invest in building good understanding of the customers business. Having an appreciation of the business model, the actual business challenges, the operations side of things gives you a better appreciation of the challenge at hand and helps you define the problem statement from a business perspective and not purely an IT perspective. Looking at performance from a business perspective is key to being a successful Practical Performance Analyst and its also what makes this such a challenging and exciting profession to be in.
How many other roles that you have been in can truly give you the opportunity to go and learn the client’s business model before actually focussing on the performance / scalability / capacity issues at hand.
Wide Spectrum of Technical Challenges you will encounter on any assignment - The nature of being a Practical Performance Analyst is such that you will encouter Performance / Scalability / Reliability / Capacity issues across different types of applications and different tiers on those applications. This can be both an advantage and disadvantage as well. On a positive note you have the opportunity to look at performance across the board, learn about different application stacks, learn about different hardware stacks and keep abreast of new technologies that hit the shelves all the time. The challenging part is staying on top of your game by making the time to keep yourself updated on the latest concepts and technologies from a Performance Engineering standpoint. The ability to look at different concepts, different tools, different applications and work with customers with diverse business models is in itself a huge payback from a career perspective. How many others you know have the opportunity to work with such a diverse range of applications and customers with diverse business models. You might have heard the proverb, “Rolling stones gather no moss”.
Combination of Theory & On the job experience required - Being a Systems Performance Engineer is sure fun since it requires a good combination of theory and on the job experience. In my experience most Systems Performance Engineers start off with good on the job experience and then are forced to pick up on the relevant theoretical foundations i.e. if they see value in doing so. Practical experience is great and thats how most us build our niche skills in a particular domain but the theory is important as well and is a killer combination along with practical experience. Knowing what’s happening, designing the relevant experiments and analysis/reading the outcomes is defintely important. However, knowing why something is really happening can also be really handy when troubleshooting complex system engineering issues. This is where knowledge of the fundamentals of Systems Performance Engineering really comes handy.
It is the excellent combination of practical experience and a strong understanding of the theory behind Performance Engineering that makes the role of a Practical Performance Analyst so much more interesting and challenging. Ask yourself, how many other professions you have seen that require you to have a strong understanding of theory and then give you the opportunity to apply the theory in your day to day life.
Applicability of skills across multiple business verticals - The beauty of being a Systems Performance Engineer is your ability to apply your skills to business and IT challenges across different domains. As a Systems Performance Engineer you are “mostly” domain agnostic, application agnostic, architecture agnostic and technology agnostic. This is what makes the profession of a Systems Performance Engineer so much more exciting. How cool is it to be able to apply your skills you have gained in Performance Engineering to address problems in domains that are completely un-related to each other. The opportunity to learn and keep growing all through your career is phenomenal. Ofcourse, there is a lot to be said about being a Systems Performance Engineer with niche skills and mastery of a particular domain and thats something our profession definitely needs. Few careers would give you the opportunity to move across business verticials and domains such as that of a Systems Performance Engineer.
Opportunity to break systems that others have designed - This is where things get really interesting. This is the technology version of “Myth Busters (Nat Geo)” where you have the opportunity on a daily basis to disect the work being done by others and break their code in pre-production environments before it breaks in production. How awesome is that!!!!. Performance benchmarking projects are possibly the most interesting engagements i have ever worked on and the opportunity to break applications by determining their breaking point (before end users do) is an exciting challenge that very few others have the privilege of doing or getting involved in.
Opportunity to help others look into the future - As a Systems Performance Engineer you have the opportunity to help your clients look into the future. You have the opportunity to take lessons from the past, historical data from the past and use your predictive modelling capability and techniques to forecast into the future. This by itself is an exciting value proposition since most other professions are consumed by addressing the challenges of today. As a practicing Practical Performance Analyst you have the ability to influence tomorrow and help predict the impact on the customers business due to change in business workload across their production environments while recommending appropriate solutions. How cool is that!!!!
Being a Systems Performance Engineer is both challenging and highly rewarding. There is so much to learn on a daily basis and the opportunity to gain business and technical skills across different business domains. This is truly what makes being a Practical Performance Analyst such a rewarding experience. I hope you have enjoyed this article and find another reason for sticking around and may you enjoy a rewarding career as a Practical Performance Analyst…..oops as a Systems Performance Engineer.
Hope you have enjoyed this piece here at Practical Performance Analyst. Drop us a note with your comments, inputs and feedback at trevor at practical performance analyst dot com. If you are interested in learning the fundamentals of Systems Performance Engineering please head over to the SPE Fundamentals section to learn more about the fundamental equations and strengthen your understanding of the various SPE related concepts.
Drop us a note if you have any questions, comments or input.