Rise of the Smartphone
For some time I've been travelling with a cell phone, small video player and GPS. About 2 months ago I upgraded my cell phone to a Droid X. I was at Verizon looking at the slew of available smartphones I had the Droid X in hand) when another customer approached me and started praising the phone. He said he was an application developer (freelance or hobbyist I suppose) for the Android OS and had tried out many of them and ended up with the Droid X for his own use. I was actually sold on the phone even before he approached me as I wanted a single unit to take the place of the multiple devices I was carrying around. Though all of the smartphones posses my desired qualifications, the Droid X had the biggest screen. So I took the plunge and bought the phone. Since then I've been reading any article I come across that catches my eye with words such as "Droid", "Smartphone", or "Android".
It is interesting to read the articles on sales of the phones. Currently according to a recent Nielsen survey, over the past 6 months, 40% of the smartphone sales went to those with the Android OS. There are statements and statistics regarding the overall market share between Apple, RIM, Android and Windows 7 phones. The point I want to make is that progress is moving us in a certain direction; and that direction is changing how we as a people interact; and that interaction is changing the landscape of my home turf in performance testing.
No matter where you go, there are people on their web-enabled smartphones accessing some site. I went to the theatre last weekend to see a movie and as I'm making my way from the ticket line to the concession stand to the theatre, I commented to myself the number of people staring at their phones. Heck, After getting to my seat, I was checking email and browsing web sites. I could jest that they didn't need to have the lights on in the theatre because of all of the light being emitted by everyone's cell phones.
Back to my point. With millions of smartphones being sold, people are accessing web sites more often, and that is changing the dynamics of the digital world. I came across an advertisement on smartphones while on line at the post office that wasn't specifically about this topic, but spurred the thought. How do we take this into account when testing comes into play? This new class of users needs to be quantified. How quickly is their population rising? Are they changing the characteristics of the already existing users? Are there enough current statistics or are there even measuring tools in place to gauge the changes?
As these questions can only be answered on a site by site basis, if you have been dealing with these new parameters, I'd like to hear about it.
Posted by Jonathan Harris on Tuesday, January 04, 2011 12:10 PM EST
Leave a comment | View Comments (0)
Don't be that guy
Speaking of social, I am sure that if you have not been hiding under a rock you have heard of Chatroulette (no link; if you're at work, you can thank me later). The 17-year-old creator had this to say about the phenomenal growth of his site:
from Brad Stone's New York Times weblog, by way of Andy Baio
Each time the user count grew, I had to rewrite my code completely, because my software and hardware couldn’t handle it all. I never thought that handling the heavy user load would be the most difficult part of my project.
Imagine having to re-write your whole architecture from scratch each time you want to scale to the next level. That may be fine for a one- or two-page site, but think about your own infrastructure, and how much an entire re-write would cost you. Andrey Ternofskiy is 17 years old. What's your excuse?
Posted by R. Allan Baruz on Friday, March 19, 2010 3:51 PM EDT
Leave a comment | View Comments (0)
Help Wanted: Certified Public Accountant - No Skills Necessary
Jon Harris' most recent blog posting reminded me of many conversations that I have had with colleagues regarding software quality assurance as applied to automated performance testing. Jon’s blog posting questions whether programming skills are required for a successful automated performance testing initiative. It reminded me of how I always get weary when I encounter marketing campaigns or sales pitches for automated performance testing “solutions” that claim "No technical skills are necessary!", "Start testing your application within 30 minutes!", "Click, Record, Test, Done!", etc. These claims are very misleading and quite frankly undermine the perceived level of effort and qualifications required for value-added performance testing. How comfortable would you be if someone offered to do your complicated federal income taxes, if they simply had an electronic calendar in their hand? Would you feel comfortable with the claim that this can be done in 30 minutes? Heck, it takes a lot more knowledge than knowing how to use a calculator to submit that federal tax return and it certainly takes more than 30 minutes! So, simply having a tool accessible is not going to provide added value; it actually can cause more trouble (i.e. think tax audit). Education, training, mentoring, and experience will provide the foundation of managing a wide cross-section of varying income portfolios; it's not a one-size-fits-all solution. Even when software packages, such as TurboTax, are provided to streamline the process, there is almost always a unique situation that requires the tax preparer to adapt. So, what does this have to do with using tools, such as HP LoadRunner, IBM Rational Performance Tester, Microsoft VSTS, Apache JMeter, Micro Focus QALoad, etc.? It's just that; these products are all just tools. They become a solution when used in conjunction with an adaptive methodology that meets both the business goals of the target application and its technical requirements. And the combinations of business requirements and technical requirements are limitless and can’t be grouped into a single turn-key solution. Technical skills are necessary to manage constantly evolving technology and non-technical skills are needed to address the business requirements of the application. These are skills that don't come in shrink-wrapped boxes or an electronic download. And they definitely don't evolve in the time it takes for a Domino's Pizza Delivery. How can we start to dissuade this negative perception towards automated performance testing and set better expectations?
Posted by Matthew Adcock on Friday, July 17, 2009 11:07 AM EDT
Leave a comment | View Comments (1)
Do testers need Programming Skills?
Does the sun rise in the morning? Ok, that's not fair unless I am more specific. I've been reading articles/blogs/opinions/comments, etc on whether testers need programming skills. All of these articles make sound arguments and all are logical and on and on. I agree that testing skills and programming skills are two totally different things and that a good tester may not necessarily be a good programmer (or vice versa). The context of all of these is in regards to functional testing. When it comes to performance testing, the answer must be that the tester has to have programming skills. They do not need to be a rocket scientist in the language, and I tell everyone who asks and who I teach, that they need to be proficient in string manipulation coding. Every tool I know and use has a programming language behind it (C, C++, C#, Java, JSP, VB, VB.NET, and a few proprietary) to extend the tool, which at some point in every engagement comes into play. The only way around programming would be if someone came up with a performance testing tool that used artificial intelligence so that you did not need custom coding to get an automated transaction to work - and they would corner the market.!
Just one additional skill that is needed in conjunction with programming expertise is the ability to analyze and find patterns. Without these you would not be able to use your programming skills to manipulate a server response to get what you need.
As usual, if you have any comments or anything to add, please feel free to do so.
Posted by Jonathan Harris on Thursday, June 25, 2009 2:27 PM EDT
Leave a comment | View Comments (0)
Getting It Right The First Time
When Microsoft released Visual Studio Team System (VSTS) 2005, I was excited to take a look at the new web testing component. Over the past 20+ years, I have used most of the performance testing tools on the market, so typically I first look at the basic functionality; how to record, how to playback and what numbers it gives me. I was pleasantly surprised at the ease of use and depth of functionality I found. The only awkward feature I mucked around with was pulling data from external files (datapools). The setup of this was not straightforward. The newest release, VSTS 2008, makes this task simple and very straightforward, so kudos to that enhancement. RTTS has performed numerous highly successful engagements utilizing VSTS because of its rich feature set and the price is attractive for clients. I am looking forward to the next release in 2010.
For anyone out there using VSTS, how do you like the tool?
Posted by Jonathan Harris on Wednesday, March 11, 2009 11:52 AM EDT
Leave a comment | View Comments (0)
Building a Reliable Scripting Framework
Every performance engagement I do is both unique and repetitive. Unique in regards to a new application in a new test environment. By new I mean that it's different from any other test I've done before, even if some or many of the components are similar. They are brought together and used differently from site to site. By repetitive I am referring to the methodology I use to get the job done. Even though the process is the same, the details of getting the tasks completed change.
In every engagement I do, during the scripting phase when I create the automated test scripts, I automatically think of ways to make the scripts robust and reliable. Robust in the way it is scripted so that if changes are needed, it would have the least amount of impact on time and complexity to make the changes. Making the script reliable means handling known and possibly unknown conditions that would otherwise hang or stop the user. There are other factors in making a script reliable as well, such as after detecting issues having the ability to report on them. This way you can roll it back into the reliability of the script for next time it occurs.
This is something I have been doing for a long time, but recently put a name to it; a "Reliable Scripting Framework." Here is an example. Let's say you are testing a Citrix application and there are issues when running large numbers of virtual-users from a single test driver. This has something to do with the ICA middleware not being written to support many connections from a single machine. Sometimes typed characters get lost. This can cause the script to get an unexpected response. You have two options: (1) add code to detect that something went wrong and attempt to correct it, or (2) add code to test that what you typed was correct and avoid the error in the first place. Both approaches are acceptable, but it would take less thought and code to avoid the problem in the first place.
Here is a second example. In web testing there are times when a request fails intermittently due to a network or application glitch. If you try the same call again, it works perfectly. Though these are serious issues to attend to, when you performance test, having the ability to report on the error and retry would be nice. In most test tools you need to handle this yourself in code. If you do not explicitly handle it you may end up getting cascading errors which muddy up the waters when you try to analyze what happened. So putting a framework in place to handle something like this would make the script robust and more reliable.
If you have any form of scripting framework you use, I'd like to hear about it in the comments. Take a look in the near future for a whitepaper I'm writing about creating a Reliable Scripting Framework using these two examples.
Posted by Jonathan Harris on Wednesday, February 11, 2009 2:21 PM EST
Leave a comment | View Comments (0)
Rational Performance Tester Tips for use with ITCAM
I've been using IBM Rational Performance Tester (RPT) since it was the Prevue tool long ago. I've used it in many ways, outside of the box, so to speak, for things other than performance testing. One of those things is for monitoring, specifically for production monitoring to verify the target system(s) are up and running correctly. Currently I am involved in an engagement utilizing IBM's ITCAM (IBM Tivoli Composite Application Management) product. As part of its use, we are creating RPT tests (tests is the term used in RPT for automated scripts). For those who may use ITCAM in the future, here are a few up-front working tips.
(1) After creating tests in RPT, you upload them to ITCAM. ITCAM will only see tests located in the root directory of the project, so you must place the final working versions there.
(2) ITCAM will only see custom code located in the "src\test" directory, so make sure you keep them in this default location.
(3) ITCAM does not currently see additional Java classes you create and import into your custom code (i.e. utility/reusable functions). You can get around this by creating a new custom code file and adding it to the beginning of the test. Don't add any executable code to the "exec" function. Place all of your utility functions after the "exec" function. ITCAM will now upload the custom code and since it is located in the default "src\test" location, you do not need to "import" it into the other custom code you create.
I hope this helps some. If anyone has similar tips regarding RPT use in ITCAM, please feel free to share in the comments.
Posted by Jonathan Harris on Monday, January 26, 2009 12:02 PM EST
Leave a comment | View Comments (1)
Tools that make consulting a pleasure
Over the years I have had many different laptop computers that I used on client sites. One of the nicer ones was a Dell Inspiron with a 15-inch screen and a 1600x1200 screen resolution. The drawback was it weighed over 10 pounds. In recent years I downsized my machines to a 12-inch screen with a 1280x800 resolution. I did this for a few reasons. First was that they only weighed about five pounds and second is that on my numerous plane trips I could actually open it up without having it pressed against my stomach; especially when the person in front of me reclined their seat.
Well, over the past year and a half I flew enough to attain platinum level status in the frequent flyer program for US Airways. I am getting upgraded to first class ahead of the hordes of gold level people. So I upgraded my laptop from a Dell XPS1210 to an Inspiron 1720. This baby rocks. It has a 17-inch screen with a 1900x1200 resolution. Here is the kicker; it has a full keyboard with a numeric keypad. It is a pleasure to use on client sites. I outfitted it with VMware so that I can create a virtual machine and load whatever tools I need in a matter of minutes, and when I'm done I just blow it away.
For added toys of convenience I found a USB powered network hub with four ports. I can't tell you how many times I was in a room with other consultants and there was only a single network cable. I also purchased a USB mobile battery to power USB devices (and my cell phone) and a USB fan and light. To round it all off I got a 320 GB mini drive. With all of this cool stuff I bought a rolling laptop case that also fits nicely on top of my suitcase for the airport (until I check my luggage). Now I have my sights on a mobile printer. I'm looking at a Cannon BJC85.
Does anyone have a BJC85 that can share their opinions of it? What about any cool gadgets or software?
Posted by Jonathan Harris on Thursday, August 28, 2008 11:46 PM EDT
Leave a comment | View Comments (0)
Not seeing the forest for the trees
Seeing the bigger picture is an important skill in all aspects of business (and life). Many times I see someone performing a task a certain way over and over, while I’m thinking “Why not do it this way?” or, “If you do this part of the task this way once, the rest would be easier and repeating it would be more efficient.” What makes me smack my head and proclaim "Doh!" is when I'm the recipient of such advice. Sometimes when you are down in the thick of detail, you don't see the forest for the trees. In my last blog entry I talked about statements-of-work (SOWs). Because creating them is a significant component of my work, here is one head-smacker to add; and by the way it also falls under the heading of Evaluation and Improvement, both part of the RTTS methodology (Doh! times two).
Usually, after creating and submitting the SOW we have a follow-up call with the prospective client to discuss the document. We seem to always get into a conversation on process, needs, requirements and tools. Even though I enjoy talking about performance testing and tools, it would probably be a good idea to include an explanation of the previously mentioned topics within the SOW itself. For example, regarding process, describe the steps and artifacts; what is involved, setup and requirements, etc. Since there are a number of performance and scalability test tools available, the SOW could include a generalization of what the available tools are; how they work; and what they can and cannot tell you.
Fitting title for the subject. Have you had any head smacking Doh's lately?
Posted by Jonathan Harris on Monday, April 28, 2008 5:19 PM EDT
Leave a comment | View Comments (0)
Following Directions and Asking the Right Questions
I write quite a few Statements of Work (SOW); some call them proposals and I'm sure there are a number of other terms as well. The RTTS format I follow fits perfectly with its intended response; acceptance by the client or winning the project in a competitive situation. I take the client’s information and requirements, sift through them for relevance to the project at hand, and match the details against what can and cannot be done with automated performance and scalability testing. When communicating with potential clients and putting together the SOW, there are two aspects that must be covered even before getting to the “how long” and “how much” part. The first is that we understand their business motivations and have the methodologies in place to address them successfully. The second is that we understand their technical requirements and have the tools, skill sets, methodologies and a plan to successfully address them. However, I have found that not all companies maintain relevancy to the project at hand.
Recently, a prospective client issued a Request For Proposal (RFP) and supplied quite a bit of information regarding the testing environment, the application, business transaction volume requirements, expectations and instructions on what to include and exclude from the proposal and strategy presentation. Following the initial RFP was the opportunity for all responding vendors to ask questions. The unusual part, or at least out of the ordinary as I have not had this occur before, is that all of the questions and their answers were combined into a single response document and returned to all of the vendors. I believe this was in response to one of the questions asked by another vendor asking for access to all of the questions and answers (maybe to size up the competition, huh...).
After going through all of the questions and answers, I can surmise that there were maybe four or possibly five vendors involved. Some of the questions were duplicates that I had asked as well. Some of the questions, though valid, were coming out of left field from my perspective. One of the questions referred to additional services and tools when the RFP explicitly stated to include only tools and services needed to test the application. Another question asked for the procedure for reporting issues. As I can see it is an important point once the project starts, I cannot see its relevance in forming a testing strategy. One of the questions asked if the demonstration was against the client’s application. One of the requirements of the presentation was to do a demonstration of the tools selected for the testing with an overall length of the strategy presentation and demo not to exceed two hours. If you've ever performed a demo against a live application you have never seen before, it can take hours if not longer just set it up, not to mention the possibility of discovering the nuances of the script modifications needed to get it to play back correctly. There were a number of questions asked where the answers referred vendors back to information contained in the RFP. I can only guess whether the people asking the questions were testers or salesmen.
Anyway, from my perspective, it's all about decoding information, inferring, making educated hypotheses and putting together the best SOW possible. And, there are always good questions to ask, just make sure they are the right questions.
Posted by Jonathan Harris on Sunday, March 23, 2008 12:04 PM EDT
Leave a comment | View Comments (0)
Architecture vs. Design - An Artificial Distinction?
I recently read a blog entry by Jason Gorman on "Architecture vs. Design - An Artificial Distinction?" where he talked about the scope of architecture and design being arbitrary and the meaning ultimately resides on your point of view. I agree 100% that almost anything is arbitrary based on your point of view, but being in the software testing arena, architecture and design are two totally different things. The distinction comes into play based on a timeline. In the beginning, software and systems are designed (conceptualized) as to what they are intended to do and what they are supposed to support. The architecture of these applications and systems denote their implementation. Many definitions of design talk about planning. Definitions of architecture talk about structure. It makes me think about the comic strip that came out many years ago where each cell in the strip shows the interpretation of a tree and swing by each of the producers.

As proposed by the project sponsor

As specified in the project request

As designed by the senior analyst

As produced by the programmers

As installed at the user's site

What the user wanted
From conception to delivery you never really know what you'll get. In the end in my world, the proof is in the pudding. Design is one thing, but what you end up with can be something entirely different. When I teach methodology, my definition of architecture is that it defines how components work, how they interact with other components and how we interact with them. Ultimately, architecture determines how well or poor a complete solution will work. There are so many ways to put today's technologies together and depending upon the circumstances, needs, resources, requirements, etc., a system with an elegant design may or may not be put into architectural practice to yield the best possible results. Again, my position on architecture and design is that there is a definite distinction.
Now you know my position on architecture and design, what's yours?
Posted by Jonathan Harris on Wednesday, February 06, 2008 1:53 PM EST
Leave a comment | View Comments (0)
Happy New Year! (Error Code 2048)
I’m sure I am not the only one that brings my career experience into my daily non-work life. So, when I attempted to send several text messages to friends and family members shortly after midnight this past New Year’s Eve (12/31/2007), I was not surprised to encounter messages on my cell phone stating System Busy or Failed to Send Message. It seems that many of us in the larger metropolitan areas had the same idea at the same time and there was just not enough capacity to handle the volume of calls and text messages. So, it was at this point in the evening, over a glass of tasty sparkling white wine, and after wishing good tidings with my newlywed wife, that I had some thoughts pertaining to the technologies and challenges that I will probably encounter within the upcoming year, similar to a press release that RTTS distributed discussing similar concepts.
Here were some of my thoughts before resuming my social engagements for the evening:
- RIA Rises - Rich Internet Applications using Web 2.0 technologies will probably make performance and scalability testing more challenging due to the dispersion of physical and logical data sources, the complexities that are now being pushed onto the web clients and the quick paced evolution of communication protocols, including SOAP, REST, JSON, and XML-RPC, amongst others. I don’t think that the Click-N-Test Methodology is going to be very effective in this arena.
- Enter the Enterprise - Lately I’ve been seeing corporations creating Intranets that go way beyond the role of providing static documents. Intranets are starting to be integrated into the role of the business, providing process workflow, enabling access to corporate applications, establishing social networks, and facilitating collaboration via Wikis. If providing this functionality to a business with hundreds or thousands of employees, performance becomes a critical factor in determining the success of the application, the productivity of employees, and in some cases corporate morale. Again, applying the principles of Performance-Testing-In-30-Minutes-Or-Less will not work to one's advantage.
- Meet the Mainframe - No, I don’t think that Mainframe systems are on the rise again. However, with the momentum of server virtualization picking up, the Mainframe paradigm is taking hold again. Server consolidation will mean that great care needs to be taken when establishing application capacity and assigning system resources to components that are going to share a physical platform.
So, if I had to sum up my thoughts, I would say that performance testing will become even more critical as business and technology continue to merge, and automated performance testing will become even more challenging as result of the increasing complexity of this generation of applications.
What are your thoughts pertaining to these technologies and challenges? Which other ones do you expect to encounter within the upcoming year?
Posted by Matthew Adcock on Wednesday, January 30, 2008 3:24 PM EST
Leave a comment | View Comments (1)
The Holidays Have Gone Plaid: Prepare for the Back-To-School Season
Black Friday. Cyber Monday. Green Monday. What's next, Plaid Friday? I don't think I could ever slip in a reference to Spaceballs, but hey I'll try anything for a laugh, or two.
Anyway, it's been quite some time since my last entry, but it's not due to lack of eagerness. I have simply been engrossed in a couple of time-sensitive customer engagements, during which we assisted with holiday e-commerce preparations and an enterprise rollout of a Microsoft SharePoint solution. So, my free time has been costly and as a result this holiday season is rushing past me at ludicrous speed. And I have for the first time purchased all of my holiday gifts through online vendors. There are lots of reports out there publishing positive news for this 2007 Holiday Shopping Season and sales seem to be projected to grow by 20% when compared to last year's online purchases. I have heard of several e-commerce vendors that have experienced significant customer dissatisfaction due to sluggish responses and/or the inability to complete the checkout process due to some form of application error. However, it seems that the vendors that had issues during the 2006 Holiday Shopping Season have prepared themselves very well. One of my personal favorites, Overstock.com, was featured in several articles discussing its investment of almost ten times the amount of resources in previous years towards the goal of better application performance management. And yes, I did shop there this season. For the most part I have had few issues with the large online vendors, most of which occurred on Black Friday. From a personal experience, what I do see is that some of the brick 'n mortar vendors may be experiencing an unanticipated deluge in sales. Many of these smaller web sites have been slow, but even more significant, the order fulfillment process has been painful; I am still waiting for several gifts from these smaller vendors.
So, why did I make the Back-To-School reference? Well, there was a published report this past September 2007 that Online Back-To-School Sales were ranked second in volume when compared to the holiday shopping season. If there were any vendors that experienced issues this past Back-To-School shopping season, I urge them to see what Overstock.com has accomplished. Their plans took some time to implement, but I feel it was well worth it, since I continue to be a return customer.
Happy Holidays!
Posted by Matthew Adcock on Friday, December 21, 2007 11:54 AM EST
Leave a comment | View Comments (0)
Road Warrior-ism
This may be a little off the blog topic as it does not refer to technology, but since I've have been away from home a lot lately on assignment, thought I’d say something about it. All hail the Road Warrior; those that get to travel all over the world to new and exciting places, and do all sorts of fantastic things. I've been a Road Warrior since I started consulting in the field of testing back in 1988 and whenever I talk with someone about where I've been and for who and what I did there, I get questions like "did you go see this?" or "did you go do that?" Of course they are referring the attractions somewhere within a hundred miles of where I was. In most cases the answer is, "no, I didn't really have time to, but I'll make time for it the next time I go." Now don't get me wrong, I do get to do some fun things. I've visited the airplane graveyard and the Biosphere in Arizona, taken the underground city tour in Seattle, dug for gold and gems in the north-east, gone to countless amusement parks, museums, visited famous beaches and have eaten at many high class restaurants; all of which have been made possible in conjunction with business trips. First and foremost I service the client who has contracted to have me there and in many cases I continue to work back at the hotel. For me this is great since my personal view of my career is that I get paid to play; the work is very challenging and I'm always getting into new situations and devising new solutions.
One of the greatest things about traveling is the frequent traveler programs. When I lived in New Jersey I flew out of Newark and used Continental Airlines since Newark was their hub. I made Gold level status year after year (almost), a couple of them I almost made platinum. Continental had a promotion that if are Gold for 5 years in a row, you stay gold for life. Wouldn't you know it, the fifth year I was on a long term assignment locally and didn't make it. Now I live new Phoenix, so I use US Air (formerly flew America West but bought out by US Air). I've made gold all five years since I've been here and this year will make platinum (RTTS has been busy). One of the benefits of the frequent flyer program is that you get to board the plane before non-frequent flyers, thus ensuring overhead space for your roll-aboard luggage. Others include, depending upon the status level you are, space available for free upgrades to first class and a tag added to any checked luggage marking it as priority so that it comes up on the baggage carrousel first. Also, depending upon your status level you accumulate a percentage of flight miles above and beyond the actual miles flown, which are good towards free flights.
Then there is the hotel frequent stayer program. I like staying at Marriott brands. There are status levels depending upon the number of nights you stay. I've been Gold on the Marriott Rewards program forever. You get points depending upon the amount of money you spend at the hotel that can be used for free nights and they even have a catalog of merchandise you can use your points on. Two of the perks of having elite status at Marriot are the free upgrades to bigger and better rooms and at the full service hotels, admittance to the concierge level and free food (continental breakfast and cocktail hour at night).
Then there are the frequent renter programs for vehicles. I typically use Avis. There aren't any formal status levels, but you get additional flight frequent flyer miles when you rent from them and free upgrades to better class cars. The biggest perk is that you don't have to wait on line. When you arrive, your car is ready with your contract inside.
The points I accumulated over the first 3 years as a road warrior, I was able to take my immediate family (my wife, 5 kids and me) to Cancun, Mexico. All of the flights and the 2 hotel rooms were free. Now that the family is spread out between Arizona, Florida and New Jersey, we use the points to visit the kids and for the kids to visit us. Priorities change over time.
Enter the demons. I was waiting at the gate for a flight recently, watching all of the people and started thinking about traveling. What I find is that when its getting close to boarding time I automatically migrate as close to the jet way door as I can get without crowding anybody, knowing I am elite status and can get on the plane sooner than most. This particular time I was upgraded to first class. The normal process is that those needing assistance are called to board, followed by first class customers, then it’s by boarding zone number. I start to get irritated by the zone 4 person standing between me and the jet way door. Why are they in the way of me and the others who can board before them? Don't they know the boarding sequence? I plan my route on how to get around them when they call first class to board. I'll say "excuse me" and proceed around to their right. Then a woman behind me asks if I am in first class. I say "yes" thinking to myself "first class and elite, thank you very much!" She was in first class as well, but it made me think that you really cannot judge by looks since I see all kinds of people in first class dressed in the full range of attire.
When arriving at my destination airport, my checked bag was one of the last to come up onto the carrousel; so much for tagging it priority. Irritated, but outwardly showing it, I headed to the rental car shuttle. What I've learned is that some airports appear to honor the orange "Priority" tags and some don't. Case in point, US Air at Newark airport never does.
OK! I have an "Avis First" priority reservation. I've had it for a week now. I was here last week and the week before without an issue. I'm dropped off at the "Preferred" counter and have to show my driver’s license and credit card, etc. Hello! Where's the consistency?
I am assuming for the most part that you probably don't know me personally and have not met me personally. I am not one that tends to get stressed or irritated as I mention here. I believe things happen and we just have to navigate our way around them and through them. I have always enjoyed traveling as part of my job and have no plans to stop. The benefits, both for career and personal endeavors, make those momentary demons seem insignificant.
Posted by Jonathan Harris on Sunday, December 16, 2007 9:56 PM EST
Leave a comment | View Comments (0)
The Holiday Season is Coming! So is Microsoft's Patch Tuesday!
Are your applications prepared for the Holiday Season Shopping Blitzkrieg? How about Microsoft’s Patch Tuesday? Recent events regarding Skype’s two day system outage again revealed that we must take into account how an application and its infrastructure perform under expected and manageable conditions, in addition to proactively responding to excessive demand during unpredictable scenarios; the latter always seeming to be the most challenging and subsequently news worthy.
The systemic computer restart that occurred on Patch Tuesday revealed another set of conditions that organizations should be prepared to handle; a very large number of clients all requesting application services within a very short time frame. In the case of Skype, a fairly stable system was suddenly barraged with a large demand for access to its systems. Although the type of chaos that occurred due to the proprietary retry algorithms was unique to Skype, the behavior is similar to an e-commerce application that offers special on-line sales for a period of fifteen (15) minutes or an on-line news site that provides high-profile breaking news stories. The result is a seemingly infinite number of user visits, when compared to system capacity, which quickly overloads your application and/or its infrastructure. And in extreme cases, the demand can knock your systems off-line. So, what can be done to prevent this? First, performance tests can be orchestrated not only to validate the expected behavior of your application, but out-of-the-box performance scenarios can be devised to determine if there are potential scenarios that need to be accounted for. Second, determine the performance characteristics and limitations of your application. Third, enable mechanisms that intelligently determine when your application is reaching its limitations and subsequently govern/throttle access to the application’s services. In it's simplest form a message that says your application is busy is much better than allowing an unfettered number of customers vying for access to scarce resources and potentially undermining the stability of the application.
Although it’s not optimal to turn customers away from your application and possibly diminish immediate financial returns, sometimes it may be beneficial to be the Grinch, minimize your losses, and reassess your application’s needs for moving forward. It's better than making the news for all the wrong reasons.
Posted by Matthew Adcock on Tuesday, September 18, 2007 10:32 PM EDT
Leave a comment | View Comments (0)
Point, Click, Done!
How far from the truth is that? When it comes to sophisticated performance testing tools, and even the not so sophisticated ones, how many times has anyone been able to just use the out-of-the-box functionality of a testing tool to accurately and thoroughly test an application? Let me guess at this... (thinking) (thinking) (thinking)... None! Ok, in all fairness, there are rare instances when someone tests a simple application, really simple (like a static web site). Anyway, here is my thought as I was flying home from a recent mentoring engagement.
Actually, this applies to all of the tools I use or have used. They all pretty much have the same base functionality. They record, they play back, and they have some form of programming language (compiled or interpreted). The implementation of these functionalities differs, of course. Regarding programming related functionality, in most cases if a specific functionality is not there, you can usually program around it (yeah, right!). For the newbie’s out there, programming around it only applies if you know it is something you need. This is all well and good, but what I was thinking about was the fact that I need to keep programming (or using) the same custom functionality.
Specifically, since the mentoring I was just doing was against a web application, I needed to use custom code functions that are typical and customary to doing web testing. For instance, pulling a list of values from a listbox, randomly picking one and using it in the next request. What about a function to randomly pick a link on a web page? Wouldn't it be great if there was a function that performed this act that comes with the test tool? Of course there are always unique situations for each application that will require custom coding, but the typical things like I just mentioned would serve 2 purposes. First it is code you do not need to maintain or carry with you (importing) and second if it is coded into the test tool itself, it would probably be just as efficient or maybe even more efficient than your custom code (assuming the tool vendors have the right programmers and/or you’re not dealing with interpreted script code).
This blog entry was geared towards newbies since I was recently training people new to these tools. They were all programmers in some form or other (very technical, which is always a pleasure when teaching a technical subject). So for typical code neccessities, let’s have the tool functionality built in. But for custom code – hey, all die-hard programmers out there, we all love our own code creations, right? (wink, wink)
Posted by Jonathan Harris on Monday, July 16, 2007 5:58 PM EDT
Leave a comment | View Comments (1)
The LIRR and Microsoft Task Manager? Perfect Together
No, I am not the New Jersey Governor. And what could I actually be talking about regarding application performance and scalability? Well, without going into a Dennis Miller-like rant (or maybe I will), I’m simply referring to the rather disappointing manner in which the Long Island Rail Road (LIRR) or any mode of public transportation (e.g. airlines) manages to inform its customers of delays, changes, and cancellations. Have you been to LaGuardia Airport recently? Anyway, we’ve all been there, frustrated, standing in seemingly pointless lines, parked on the runway, or sitting on a stalled train that inertia has for all intentions prohibited the train from ever moving again. "Why?" I ask the train conductor. Cue the shoulder shrug…
Well these days it seems that you are even lucky to get that apathetic acknowledgement of what is happening. It’s very frustrating to know that “something” is happening, but not to get any feedback or information pertaining to your delay. If someone, please someone just stand up and explain to us what is happening. Inform us. Set expectations. Manage my satisfaction. Keep me as a customer. That’s fairly simple, uh?
Segue to application performance and customer satisfaction…
So, this morning when I boot up my computer and try to load any program, such as Firefox, nothing happens. I try again. I still see nothing. Gees, I just want to see if that flat screen TV that I ordered had been shipped. Nada. Niente. Nothing. I see nothing except my Desktop and its lineup of icons, but I can hear the hard disk churning away. What is happening? Cue Microsoft Task Manager. Exit stage left LIRR (for now). Microsoft Task Manager is a nifty program that allows me to quickly glance at how my computer’s resources, such as the memory utilization and CPU utilization (amongst other things), are being used. When Task Manager finally loads, I can start to poke around and see what is causing my hard disk to spin like the dickens. I look at the process list. I sort the list by CPU to see what process is currently requiring the most horsepower on my computer. Low and behold, it’s one of the well known antivirus programs. As it turns out, it was performing a system wide scan on my computer. OK, that’s why I have this software; to look for virus and spyware that might be lurking in the depths of my computer. But again, just like the gate agent on my most recent flight who couldn’t seem to manage an answer why we were still waiting to board the plane after 2 hours, why couldn’t this program actually inform me what it was doing? Why couldn’t a simple notification that it was scanning my computer be produced? Maybe a simple message box could have sufficed? Let me know what’s happening. Managing customer expectations goes well beyond running load and volume tests in order to determine application bottlenecks. In the more holistic process of software performance engineering, providing feedback is a key attribute in keeping end-users satiated.
So, I’m not here to pick on this antivirus program, but the lack of feedback from software is more of a norm, rather than the exception. When I submitted my credit card for that flat screen TV the e-commerce web site that I was using gave me no indication of what it was doing while I waited for 20 to 30 seconds to get a confirmation web page back. I think that flag or globe in the Internet Explorer toolbar was waving or doing something to indicate that I actually did submit my payment information. Or did it? I tell you it was not comforting knowing that I just made a large financial investment over the internet as I waited for some clue of what was going on. All I did know is that I just clicked a button to send my credit card information to some remote location and I all had to show for it so far was a blank screen in my web browser. I was thinking, “should I hit the back button and tried it again?”. I’m sure I’m not alone in thinking this way. And I’m sure that non-technical people are even more perplexed on what to do. What could have been done? Perhaps the web application that I was using could have launched a little progress window stating that it was doing something, rather than relying on the web browser’s flashy toolbar as a progress indicator. Perhaps rather than relying on the mouse cursor to change to an hourglass, the application could have provided feedback that was pertinent to the operation it was currently processing. Perhaps the next time I won’t have to rely on Microsoft’s Task Manager to tell me that my antivirus program has taken over my computer to run a system scan. I am betting that this not-so-groundbreaking realization of software performance engineering is much easier to implement when compared to getting some clue why my train is not moving. And I’m sure that the customer perceived performance of your application will be well revered, unlike applications that require people like me to use Task Manager to figure out what is going on.
END RANT
Posted by Matthew Adcock on Wednesday, June 13, 2007 3:59 PM EDT
Leave a comment | View Comments (0)
Houston, We've Had a Problem
"Houston, we've had a problem." This is a well known quote from Tom Hanks (??); no - it was really James Lovell during the Apollo 13 Mission in 1970, which was supposed to be the 3rd manned lunar-landing mission under NASA's Project Apollo. Although the mission was catastrophic at the time and almost fatal, this particular quote has lived on in infamy to be used in humorous contexts or in my case when I am commercially using or testing an application that starts behaving badly, prompting me with cryptic error messages, taking what seems like eons to respond to a request, or even just refusing to respond to me at all whatsoever. And for some reason this has occurred to me quite often within this past year. This past Black Friday 2006, both Wal-Mart’s and Amazon's e-commerce web applications experienced significant outages and performance-related issues. Well, I didn't want that Microsoft Xbox anyway! On Christmas Day 2006 I could not even create a new account for my nephew on Apple iTunes, so that he could download songs for his brand new Apple iPod. Thankfully we were able to download songs from Green Day the following weekend. Even more recently, using Turbo Tax, 2006 tax returns could not be electronically submitted to the IRS starting several hours prior to the tax deadline. Well, I guess I deserved it for waiting until the last minute. That flat panel TV that I was going to buy using my tax refund would just have to wait a little longer. What's going on here?! Well, as it turns out, these companies just did not anticipate the large demand for their services and merchandise. Whether it was due to stellar marketing, an outstanding sales force, or drastic price slashing for 20-minute sales, their computing infrastructure was just not sized and/or configured properly to sustain the subsequent onslaught of their customer’s demands. So, why am I here? Well, hopefully moving forward we can start to use this Blog to start discussing issues related to the ones I've highlighted here and conversing about better ways to manage the life cycle of application performance. I'm looking forward to see where this is going to lead us.
Posted by Matthew Adcock on Thursday, May 31, 2007 5:04 PM EDT
Leave a comment | View Comments (0)
Thank God You're Here
Thought I'd start off with a little thought dump. I just watched a few episodes of "Thank God You're Here", a comedy show where actors are dressed up and thrown into a scene with absolutely no knowledge of what they are getting into and have to improvise in front of an audience and home viewers until a judge has had enough and stops the scene. Some of the actors do quite well, stealing the scene and making it work (mostly through comedy). Others get thrown for a loop and struggle through it (gets boring). This is not too far from my world. There are largely two situations I find myself in. First is when a company has performance testing as part of their pre-deployment in which case my job is to help them “make it work.” Second is when a company encounters a performance problem and calls upon RTTS to help them resolve the problem as quickly and efficiently as possible. That’s the “Thank God You’re Here!” This is the time when we (RTTS) are thrown into the scene, and find out if we have the knowledge and experience to make it work. I’m going to write about many things here, including experiences of mine, perplexing and philosophical questions, methodologies, interesting occurrences, issues and resolutions. I hope some of what I do here will elicit responses and participation or all to share.
Posted by Jonathan Harris on Thursday, May 31, 2007 3:12 AM EDT
Leave a comment | View Comments (1)
|
|