staticspark

PerfDan's Blog

Wordpress iPhone app!

It’s so rad that you can update a Wordpress blog from your iPhone with their slick new app! Maybe I’ll update more often now!

PerfDan. That’s kind of catchy.

PerfDan… it’s a lot like IronMan.  Or SuperMan. Or Kikkoman.  It’s a lot of responsibility ensuring that the world’s most critical applications provide a good customer experience…  however, somebody has to do it.  Won’t you join the performance engineering army?  We need good engineers to make some real change in the software world.  Let’s make some performance enhancements today!

I’m feeling a little bit nutty this afternoon.  A little bit crazy if you will.  I think I’ll go throw a few thousand virtual users at some code and see what happens.  I’ll wager on bad performance and poor scalability.

I suck at blogging.

Not really.. I just haven’t had a lot to write about lately.  Somebody please email me with an idea for something to write about.  Got questions about performance problems?  Anything goes… something performance engineering related, management related, leadership related…  Ill even entertain questions about how I’m able to make a head of hair with a receding hairline and widows peaks still look cool.

You’re right, it doesn’t look cool.  But I like it.

Differentiation Among Teams and Employees

It’s review time.  The economy has been tough this past year, but there’s always a good market for top talent.  It’s the time of year when you need to reward your highest performers and retain them, and when you need to deliver a hard message to those who aren’t helping your company perform.

Most people have heard of ‘differentiation’.  This concept comes from the Jack Welch school of leadership.  You can read more about it here (http://www.welchway.com/Principles/Differentiation/The-Case-for-20-70-10.aspx), but the general gist of it is that you reward your top 20% of performers with way more than your middle 70% and make them stand out.  You train and grow your middle 70% because they are the next highest performers, and the bottom 10% should be managed out (in no uncertain terms).

But how should this be applied to large companies?  That’s what I’m struggling with today.  If you have a 10 billion dollar company with 1000 people, and 100 of those employees generate 8 billion of your revenue, should you reward them more than the other 900 employees in the company?  Like Mr. Welch said, the TEAM with the best players should win, right?

In my opinion, if you want to practice differentiation, you should:

1)  Define your policies and be consistent in their application

2)  Be transparent about how the process really works so everyone knows what’s going on, how people are really graded, and what it takes to get to the top.

Differentiation can be a complex topic.  As a leader, I have seen many high performers not being rewarded nearly as much as they should be, and many under-performers getting off easy because of poorly applied standards.  Managers should be responsible and be clear about how performance is assessed.

What if some managers build teams that have have 80% of the team as the best performers in the company?  Should you be able to truly reward 80% of that team as outstanding or does that leave too much manager discretion?

This is a challenging area.

A Few Traits of High Performing People

Yesterday I took part in a project 360 where all of the leaders on a committee reflected and talked about what went well and what could have gone better.  The project being discussed was our annual technology conference that we had organized.  It went off without a hitch, and in tough economic times we actually met the drastically reduced budget numbers that were set for us.  Folks are calling it the best technology conference in our company’s history… and we did it with reduced budget and 175 less attendees then we had last year.

As each committee member talked about what went well, the resounding theme that stood out was that we had people with the right talent and mindset on the team.  The particular conference is organized by volunteers, including the committee leads and their teams.  Yet over and over I heard about what people were doing to make this ‘volunteer’ effort go off and it really reminded me of how important top talent really is.

Top talent can be relative to your industry and to your company, of course.  However, some traits really stood out to me during our 360 that helped make this conference the best ever.

  • Resourcefulness – With reduced budget, people are forced to be creative.  This usually means even more work for individuals to make something happen instead of paying for it.  The type of people who are willing to take the road less traveled to get it done with great results are hard workers that don’t stray away from a challenge.  Which leads me to…
  • Energy – We need people with energy!  Laziness is out.  Who has the energy to put in the extra work required and do it with a smile? Energy can be fueled by passion…
  • Passion – People need to enjoy what they do.  If they don’t, it shows, and it affects everyone around them.  Get people truly on-board for a cause and they will put their hearts into it to deliver big results.  Choose people who are passionate about what they do.
  • Generosity - People who are NICE!  You need genuinely nice people.  Find people who care about other people a lot.  This will show through in so many ways and be so valuable to a team.
  • Creativity – Different than resourcefulness, this is about coming up with creative solutions to problems and being able to design cool things.  Take care of creative people, foster creativity, and be open to the types of things these valuable team members bring to the table.

These traits were so instrumental in making this volunteer effort produce a world class conference.  We had an all volunteer committee with very important day jobs at one of the world’s largest software companies.  Yet this conference which was for employees only was better than most industry conferences I’ve been to!  It had virtual broadcasting around the world to our offices, a cyber cafe, a full stage with a great design, killer audio, tons of breakout sessions and tracks, badges, maps, registration process that rocked, everything!  For 3 days!

Think about the type of people it takes to pull something like that together in their spare time.  Those same qualities are the ones I would look for to build any team.  People who truly embody these traits, along with some solid leadership, will always produce great results.

Performance Engineering is NOT Complicated!

I figured that a great place to kick things off here at staticspark would be with my own personal point of view on performance engineering in general (naturally, since I’m really self-centered anyways and enjoy listening to myself talk).  As I’m sitting here glancing over some of the more popular websites and organizations dedicated to performance engineering, I have to ask myself “why in the world do all of these folks make performance engineering sound so complicated?”

I’ve deployed over 100 sites that I would call pretty big names and played the principal performance engineer role on most of them.  Among those are sites that do billions of dollars in online revenue.  Doing this did not require an advanced degree in statistics, strict discipline in QA with respect to code coverage and McCabe complexity analysis and yada yada, membership in MENSA, or any of that noise.  Most of performance engineering is common sense.

Many organizations have absolutely no performance operation at all, and I truly believe that with a little common sense and some baby steps, you can make a huge impact on your software performance and reliability.  This may sound overly simplified, but I believe that it truly is simple:  Identify some critical areas in your application to test, test and record the results in a good solid performance lab that gets you repeatable results, and repeat that cycle build-to-build and during scaling activities.  As requirements grow, you can built on that foundation, but every element I’ve ever used and reported on in performance testing has had obvious importance.

I would wager that 90% of all applications out there have simple metrics that need monitored, simple functional areas of the app that need performance tested, and you can go from nothing to a solid and reliable performance operation pretty quickly.  I failed algebra my freshman year in high school…  performance analysis isn’t that difficult.  If I can do it, anyone can do it.  It’s not important to generate an intricate report that shows the rolling standard deviation of every page during every second of a performance test if you can’t answer the simple questions that performance testing should answer.  Questions such as “do I have a bottleneck at certain levels of load?”, or “can I scale to 2x the expected load”, or “is my performance getting better or worse between releases?”  Even the most basic reports from LoadRunner or SilkPerformer can’t be shown to your managers, directors, or heaven forbid a VP.  Performance engineering results and the value of performance engineering needs to be framed simply in terms of how it impacts a company’s engineers and customers.

Test in a straightforward way, frame the results with respect to the customer experience, and you’re on your way to world class.  Start small.  If you don’t have anything at all, then getting something simple in place is better than where you were before.  Many times in performance engineering, that small amount of effort is all you need to make a huge difference.

Everything is finished – content to come!

So if you’re here, and you’re thinking to yourself “wow… looks like a brand new site, there isn’t much here”…  then you’re absolutely right!  I just brought this online, but don’t lose hope.  Bookmark it or grab the RSS feed, and check back here often.  I will be adding performance engineering content at a pretty good clip starting this week so it should beef up pretty quick.

Thanks for coming by!  Comments, questions, and discussion topics are totally welcome.  See the about dan page for contact methods.

Cheers!

staticspark.com is live!

Oh snap.  It’s definitely on, now!  I am really excited about getting the site and running.  It only took me 9 years in performance engineering to finally get around to making this happen.  Hopefully I haven’t forgotten all of the useful stuff I learned along the way.

More to come very soon!