Archive

Monthly Archives: November 2012

The holiday shopping season has begun and E-retail sales are up more than  15% from last years’ traffic for post-thanksgiving sales. Retailers are driving more customers to their web sites with deals and special offers exclusively for the web customer. I know a few people who finished their Thanksgiving dinner, washed some dishes and logged onto their favorite site for some early season purchases.  Using their iPads.  According to a recently released IBM report (Thanksgiving day) 27% of the traffic is coming from tablets and smartphones.

Knowing your tiers and application performance management

The Software performance engineering body of knowledge has five knowledge areas;  the Knowledge Area most relevant for monitoring your production web sites is Application performance management (APM).  This area is critical to a successful holiday season, for retail websites. Because, at this point in the calendar year for Retail websites, its money time and freeze time.  Many companies minimize the changes to production systems, so as not to introduce instability and problems during their businesses peak time.  During the year design and development occurred to enhance the web site and now it’s the play-offs for Retail web sites. This is where software performance is directly tied to revenue.  A direct ROI for all the software performance engineering tasks and activities in the Enterprise. There are numerous studies out there that directly correlate web site performance to increased revenue.

By implementing an Application Performance Management solution you can be proactive when it comes to your customers’ web site experience. These tools can monitor every transaction that goes across your web site.  You can enable early warning alerts for transactions that are slowing down and react before they become a problem. They will show you all the points between your order database and your customers Safari browser, Chrome browser, Internet Explorer or iPad. Do you know all the components in your order entry process?

This new generation of APM tools is very powerful and fast.  They can install very quickly and discover what is going on in your system.  Usually, the biggest hurdle to adopting these tools is the processes within the companies.  I have seen and continue to see companies in the situation where there are performance issues, where they have partial  APM solutions that are a combination of COTS tools and custom developed scripts, ,they are time consuming and problematic.  This partial solution cannot see when the user experience is slowing down, they can only react when there is noticeable issue.  So, the companies have a problem that repeats, and they will not install these new generation tools, until the budgeting process occurs.  As an aside, many companies claim they are Agile, their processes say otherwise. Getting tools into production takes paperwork, testing and vetting, and planning and training.  But, this should not be a reason to wait until the next quarter.

In one of my papers “Consequences of poorly performing systems” I attempt to quantify the cost of these unforeseen and unplanned production issues.  I believe the performance engineer is able to justify the purchase of these new tools.  The costs of using an incomplete APM solution can be calculated, people and time, unplanned capital expenses, missed sales, etc.  The benefits of a full APM solution can be quantified.

More than technical

A performance engineer has a multi-disciplined skillset.  They start out as a strong technician in a programming language (C++, Java, C#, etc.), they expand with deep operating system knowledge, then add a database or two (focusing on the physical aspect), and continue to grow.  In addition to the technical skillsets, they grow non-technical skills.  Communications skills, how do describe the problem, the impact, the solution.  One of the key skills the software performance engineering possesses is the ability to learn new skills!!  They are self-motivated in pursuing new areas of expertise and trying to stay ahead of the technology curve. I think they need to be very pragmatic in their approach.

As a performance engineer you must develop outstanding problem-solving skills and how think more analytically.  In years past I may have been very good at problem creating.  The systems you work with are very complex with many different subsystems; mobile device, web services, queues, databases, versions of Java, etc.  There are typically different teams of people for each subsystem that require strong interpersonal skill and the ability to have influence on people who don’t work in your group.  Another skill you need to develop and may not want to admit is project management. I know I have grown to greatly appreciate a solid project manager.  But, myself and other Performance engineers can, in a pinch, take on the limited PM role, just enough to be dangerous.

You develop a strong understanding of the business functions and business problems. Often times, the performance issue crosses several business functions. For instance, marketing, sales, business analytics, billing and invoicing, the call center.  Over time the Performance engineer gets a broad picture of the business.

Understanding the business leads to better workload models for capacity planning and performance testing. You understand the key business transactions and how the customers are using them. This can require forecasting skills, how do you predict the increase in user transactions and how does it translate to system utilization. You must have a solid understanding of statistics as well and know why the average is useless.

The amount of work, experiences and time that is required to become a Sr. Performance Engineer cannot be underestimated.  It must also be recognized by the companies that hire, grow and manage software performance engineers. I think this makes a good case to recognize the profession of Software Performance Engineering.

The Software Performance Engineering Body of Knowledge

The overview

The Software Performance Engineering Body of Knowledge is a collection of key knowledge areas, supported by underlaying competencies for delivering in those knowledge areas, and includes a set of techniques for each knowledge area. The BoK also addresses the career path of the performance engineer for formalizing the profession.  Most people who describe themselves as a performance engineer arrive in a familiar pattern.  They are technical problem solvers, who througout their career ended up on the problem projects. Asked to help on production systems that are having user experience problems (too slow), instability problems (stops working), and missing the batch window.

The goal of the BoK is to clarify roles and responsibilties. Many people interchange performance engineer and performance testing. They are not aware of the differences in skillsets. Some of the roles or titles found;

  • Performance architect
  • Performance engineer
  • Capacity planner
  • Performance analyst
  • Automation technician
  • Troubleshooter or problem solver

Within many organizations the actual title of Performance Engineer does not exist in the Human Resources (HR) talent management process.  They try to fit them into developer, architect, or quality assurance roles.The career of the performance engineer is not managed.  People are left on thier own to figure out how to improve or move up the ladder.  Finding and growing software performance engineers is a challange for every organization. By not having a formal role description in the company, each division or group within the company determine there own description. One group calls them performace testers, another Sr. developers, or performance engineer. The it takes to develop one can vary greatly, with the right experience and guidance, you can be a very good performance engineer in ten years. This begins the discusson on your skillset pyramid, growing the base (technical competency) and  the height (communication, management, leader) to acheive a Sr. Performance Engineer role.