Monthly Archives: January 2010

The CEO is responsible for the outcome

This just in… The CEO is very, very important to successful businesses. I know, it seems very obvious and certainly not news worthy. But here’s the deal. I’ve been interviewing quiet a bit lately and I’m constantly thinking about, taking about this simple and obvious issue. It comes up a surprising amount of times – so I wanted to write it down and get it out of my head. You see, many people ask me what I want to do next because I’ve held several different roles – CEO, VP of Professional Services, VP of Operations and CTO. Over the years, I’ve settled on the notion that my actual role is pretty far down my list of search priorities as I believe I can lead from numerous roles. I also read a ton – plenty of business advice books, startup blogs, social network posts, thoughts from venture capitalist, etc… it seems like there is more and more discussion about what makes successful companies successful – stuff on mentors, tenacity, communication, fiscal responsibility, passion, etc… all true stuff, more or less.

My simple observation and experience – the number one most important thing that makes successful business successful is a great CEO. I think it is more important than the actual business idea – especially in the startup world, because most often the initial business idea is not correct and it takes real leadership to navigate to the compelling business proposition.

I’ve worked with different types of CEO, and there is no single exact formula that works across the board – but I’ve noticed some common trends that have succeeded in different economic environments, cultures and times. Probably the attribute that stands out the most is their personal focus outside the four walls of the company – selling, forming important partnerships, evangelizing in emerging markets and listening to the market. This in combination with a deep, earned, trust in the team to operate the business inside the four walls of the company appears to be a killer combination. Sure, the rest of the team is important of course – but the CEO builds the team and trusted culture. If the team isn’t right, the great CEO is aware and makes the decision to change. If the business value isn’t right, again the CEO is aware and lead the team through the course correction, inflection point or reset. Bottom line, if the company is successful or not – the CEO is responsible for the outcome. If there is a superstar in the back office creating all the value – that’s cool, make sure there is a CEO that knows how to leverage that asset and lead the company to capitalize on it.

Finally, there always seems to be a fair amount of jockeying around the CEO in startups. I see many technology startups with a technical founder who is the original CEO. This is a common tactic to avoid big cash burn and equity disbursement when a company’s value is young and low. There is often a plan to wait until there is some market place traction before hiring the CEO because high scalability CEO are not good in very early startup stages. My observation is that all of this is nonsense. Companies should always, and I mean always, take their best shot at the moment. If it turns out that someone doesn’t scale, you can make changes as needed. Too often I see companies fail because they don’t have a real CEO from day one so it never matters that they save equity, cash or scalability responsibilities. On the other hand, there are numerous examples of day one CEO that have built multi-billion dollar companies.

Check the record books, you’ll see – there are no successful companies at all that haven’t had a great CEO and almost all of them have spent most of their time on the outside.

Reblog this post [with Zemanta]

Using JMeter and Firefox to load test

I spent some time recently building an application using AJAX technology – which simply means a collection of client side JavaScript and XML that asynchronously retrieves data from the server in the background only when needed so as to minimize the impact on the user experience. Once the basic application was up and running, I wanted to run some performance test and thanks to the abundant availability of cloud based compute resources, it was easy to quickly and inexpensively put together a performance testing environment. The trouble is that it isn’t so easy to automate a load test on a dynamic AJAX based application, especially if there are no static DOM identifiers to include in the scripts. So, I came up with a quick hack to push AJAX actions through Firefox’s proxy configuration to record a JMeter script.

Here are some simple steps for recording an AJAX session using Apache’s JMeter.

1. Create a new JMeter Test Plan

2. Add a HTTP Request Defaults config element
# This can be used to specify defaults for you entire test suite
+ Specify your Server Name or IP address and any required port #

3. Add a HTTP Cookie Manager config element
# This can be used to control and manage the cookie policy across the test

4. Add a Thread Group
# No need for multi-threaded recording, so:
+ Specify 1 thread, 1 sec ramp up time and loop count of 1

5. Add a Once Only Controller
# My application has a user login that also generates a session, cookie
# If your application does not, you can skip this step and the next

6. Add a HTTP Request Sampler to the Once Only Controller
# Here you specify the protocol method (put/get), path to the request and any parameters

7. Add a Recording Controller to the Thread Group

8. Test Plan > Add > Listener > Aggregate Report

9. Under Workbench, Add > Non-Test Element > HTTP Proxy Server
+ Port 9090
+ Target Controller: Thread Group > Recording Controller
+ Patterns to include: Click Add then enter “.*”

10. Under HTTP Proxy Server, Add > Timer > Gaussian Random Timer
+ Set Constant Delay Offset (in milliseconds): ${T}

Now, lets set up Firefox to proxy actions. Bring up the Firefox browser and under Tools/options/advanced tab/network tab/settings button/”Manual proxy configuration”
+ Set 127.0.0.1 port 9090
+ Enable the “Use this proxy for all protocols” check box

And when ready to start recording the browser action just bring up the HTPP Proxy Server within JMeter and click Start. Everything that is done within Firefox will be recorded in JMeter’s recording controller. When done, just click the Stop button on the HTTP Proxy Server within JMeter.

That’s it, the JMeter script that was created above now has all the AJAX data recorded and it ready to replay. JMeter has built in capacity to run the script and generate a load. I recorded a few different JMeter scripts and using a couple of cloud instance and the JMeter command line interface, I simulated the AJAX action of many thousand of clients with offset timing.

Reblog this post [with Zemanta]

Follow

Get every new post delivered to your Inbox.

Join 168 other followers