I am working on a new book project about software failures and I came across this resource from the Center for Technology in Government at the University at Albany especially aimed at government computing projects. The name of the report is Making Smart IT Choices - Understanding Value and Risk in Government IT Investments. You can get this at http://www.ctg.albany.edu/publications/guides/smartit2. In fact, you can download the entire book as a pdf file.
I like this book because it hits at the heart of IT projects - making the right choices based on risk and value. It's all common sense stuff tailored for the government sector. It proves that the answers are in plain sight. Now, the tough part is to actually act on them.
My experience is that the hard part is dealing with the stakeholders who want something different every day and the vendors who are more than happy to promise it to get more money by stringing the project out almost forever. We as taxpayers end up paying the enormous bill for this nonsense.
Doing the research for this even makes me sick, but I am glad there are those out there at least shining a light in the darkness of many IT projects.
Dedicated to thoughts about software testing, QA, and other software quality related practices. I will also address software requirements, tools, standards, processes, and other essential aspects of the software quality equation.
Tuesday, December 23, 2008
Tuesday, December 16, 2008
Book Review - Clean Code by Robert C. Martin
"Clean Code" by Robert C. Martin
Published by Prentice Hall
Buy at Amazon.com -
http://www.amazon.com/gp/product/0132350882?ie=UTF8&tag=randyricessof-20
(5 stars out of 5)
I knew I was going to like this book after I read the Foreword and
Introduction. I know not many people read those and as an author
myself this bothers me, but it gives insight to why the author has
written the book, which is a very important thing to understand. I
was hooked by the affirmation that details are important and that
the only meaningful metric is the number of "wtfs" per minute in a
code review. For a long time I have kept my "profanities per test
session" metric as a way to measure software usability.
Long before I was a software testing guy, I was a coder. Back in
those days it was common for rookie coders to sit next to guys with
gray hair and bad breath (or if lucky next to ladies with better
appearance and who smelled better) to learn the craft of writing
code. Yes, coding was a craft before the attempt to make it an
engineering discipline. Although there was a lot of bad code, there
were plenty of people who took pride in how they coded. This book
reminds me of what it was like to sit next to these intelligent
people as mentors.
I have often lamented that today's young coders don't have this
mentor/apprentice relationship. A reasonable facsimile would be to
read this book and practice these very sensible and helpful lessons
in coding. As a testing guy who has been through those 30 wtf/hour
code reviews, my bulletin to developers is that: Your code can be
better! This book can show you how!
Here's one example: Have meaningful names. Instead of a function
named "int d", how about "int ElapsedTimeInDays;"? There's a whole
chapter about naming things. It reminds me of the coder I knew that
liked to label COBOL paragraphs after towns and cities in Kansas.
Why? So he could write GOTOs that read "GOTO Topeka." He thought
that was cute but the rest of us found it confusing and not-so-cute.
I also appreciated the chapter on Unit Testing. As a tester, I love
it when testing is mentioned, but Martin actually has specific
guidance on what makes for good Test Driven Development and Unit
Testing.
This book is very readable, makes a lot of sense and would make
most coders better. For testers that sit in on code reviews, this
would be a great read for understanding how good code should be. I
wish every coder in college or tech school would read this book
before unleashing their creations upon the world.
Published by Prentice Hall
Buy at Amazon.com -
http://www.amazon.com/gp/product/0132350882?ie=UTF8&tag=randyricessof-20
(5 stars out of 5)
I knew I was going to like this book after I read the Foreword and
Introduction. I know not many people read those and as an author
myself this bothers me, but it gives insight to why the author has
written the book, which is a very important thing to understand. I
was hooked by the affirmation that details are important and that
the only meaningful metric is the number of "wtfs" per minute in a
code review. For a long time I have kept my "profanities per test
session" metric as a way to measure software usability.
Long before I was a software testing guy, I was a coder. Back in
those days it was common for rookie coders to sit next to guys with
gray hair and bad breath (or if lucky next to ladies with better
appearance and who smelled better) to learn the craft of writing
code. Yes, coding was a craft before the attempt to make it an
engineering discipline. Although there was a lot of bad code, there
were plenty of people who took pride in how they coded. This book
reminds me of what it was like to sit next to these intelligent
people as mentors.
I have often lamented that today's young coders don't have this
mentor/apprentice relationship. A reasonable facsimile would be to
read this book and practice these very sensible and helpful lessons
in coding. As a testing guy who has been through those 30 wtf/hour
code reviews, my bulletin to developers is that: Your code can be
better! This book can show you how!
Here's one example: Have meaningful names. Instead of a function
named "int d", how about "int ElapsedTimeInDays;"? There's a whole
chapter about naming things. It reminds me of the coder I knew that
liked to label COBOL paragraphs after towns and cities in Kansas.
Why? So he could write GOTOs that read "GOTO Topeka." He thought
that was cute but the rest of us found it confusing and not-so-cute.
I also appreciated the chapter on Unit Testing. As a tester, I love
it when testing is mentioned, but Martin actually has specific
guidance on what makes for good Test Driven Development and Unit
Testing.
This book is very readable, makes a lot of sense and would make
most coders better. For testers that sit in on code reviews, this
would be a great read for understanding how good code should be. I
wish every coder in college or tech school would read this book
before unleashing their creations upon the world.
Wednesday, December 10, 2008
Skills for Software Testers in the Future
Last month I delivered a keynote address at EuroStar on "Trends that May Impact the Future of Software Testing." There were some interesting questions following my talk, one of which I would like to discuss in this post. "What do you see as essential skills for testers in the future?" Great question.
First, let me say that the list could be long and your list probably will differ from mine and that's fine. In fact, please comment with your answers to this important question.
Skill #1 -Thinking Skills
Too many testers fail to think through what they are doing and why they are doing it. They also fail to use imagination and instead rely on a repository of knowledge somewhere that is probably outdated and incorrect. Sure, we can curse the darkness of bad documentation, but we've been doing that for over 30 years already so let's get over it. Let's light a few candles to illuminate the subject of hidden understanding.
So, for example, when doing a boundary test, ask, "Is this test meaningful?", "What will it prove or disprove?", "Are there more important tests that I haven't done yet?".
As testers we have to be very careful about falling into ruts and thinking the same way all the time. Learn to look at problems from different angles.
I like to play thinking games just to stay in practice. One game that is helpful for test teams is "20 questions for software". I improvised this game in a class on exploratory testing when only I had my computer at the front of the room. Here's how it works. The leader (perhaps you) are at the front of the room with an application projected on a screen. Then, go around the room in order (a u-shaped room or circle is best), with one person starting the questioning of the application. They should ask a question such as "What happends when you...(fill in the blank)?". Then, the person next to them asks a question based on their question. This continues around the room, maybe even multiple times. There are only two rules: 1) you must wait your turn, and 2) your question must be based on someone else's question or answer before you.
You may be surprised about how much you can learn about the application by doing this. You may also be surprised (perhaps dismayed) about the quality of questions. This gives the team leader insight into where to develop the thinking skills of the test team or individuals on the team.
I also like to work Sudoku puzzles because they require deducing, eliminating possible solutions to find the right number(s), and using other thought processes that are the same as used in exploratory testing. I've never tried to work one puzzle together as a group, but that would be an interesting experiment.
Skill #2 - Communication Skills
I believe that communication is the basis for everything else we do in IT. Without good communication, we can't even define the problem to be solved, much less define the solutions to the problem or the testing of the solutions. Ironically, communication is the last thing we take training for, or practice, or apply in the workplace.
Testers especially need to be good communicators in the following ways:
Accuracy - People must be able to trust the accuracy of test results and other information from testing. Once the accuracy slips, so does the credibility.
Timeliness - Timely communication helps people to form good responses to problems, take advantage of opportunities, and generally work together better. Sitting on bad news, hoping for it to become better news, is not a good approach.
Thoroughness - Telling only part of a story is as bad as giving inaccurate information.
Courtesy - How people say things is just as important as what they say.
Helpfulness - Overall, the information a tester provides should help the rest of the project team to fix issues, make improvements and deliver a great project on or ahead of schdeule.
Meaningfulness - The information must have value to the audience, otherwise people will disregard it as "just another report" that may or may not be read.
Skill #3 - Measurement Skills
When you think about it, testing is measurement. However, we as testers often struggle with what to measure, how detailed the measures should be, what to do with the measurements, etc.
It takes skill to know what to measure without going overboard. It also takes skill to make the correct interpretation from the measurements and metrics. But how does one build these skills? I'm going to suggest a radical approach. Don't start by reading books on measurement, unless they are basic.
Like many things, including testing, we are up against Parkinson's Law that says "work expands to fill available time." My variation on this is that simple things can become complex just by writing books, having conferences, etc. As an example, function points started as a fairly simple idea but then evolved into more complex ways to count and apply them. So when you read a book on measurement your first thought may be that you need a large set of measurements to "do it right."
Instead, simply look at what needs to be improved and find two or three things to measure that could show progress in meeting those goals. You can also consider a typical project and what you need to know to stay on track. This is the dashboard concept. Have five or six indicators at the high end.
Then, find ways to measure without being intrusive. This in itself can be a big challenge. That's why simple is good.
Skill #4 - Configuration Management Skills
CM has always been an essential skill for testers. After all, what good is it if you test the wrong version or configuration of the software?
With virtual environments, it is even more important to know how to manage them. At this point, you may be thinking, "Yes, but the tool has features for that." Consider though, that a tool is not a process.
So testers need to know how to control all the items in the environment - software, hardware, data, and any other system components.
Skill #5 - Technical Skills
This is an interesting debate. How technical does a tester need to be anyway? On one hand, it is the lack of technical perspective that gives testers the same view as users. Too much technical knowledge and they may apply workarounds that users would not think of, therefore not seeing problems from a true user perspective.
The term "Technical Skills" is a fuzzy one, so I'll clarify my meaning a bit. The technical skills I refer to here are those that allow testers to use new tools and approaches effectively. I don't believe that testers need to be coders, although sometimes that skill comes in handy. But, if a tester likes to code and they can maintain objectivity, it does open some options.
I believe it is a mistake to eliminate a tester from hiring consideration just because they can't code or work with a particular tool. There are simply too many other needed skills and attributes to limit the decision to technical skills alone.
It's like being in a swimming pool and being able to go in the deep end as opposed to just staying in the shallow end. While we can all be in the pool and have fun. Some will be able to do more advanced things, like diving and snorkeling. It's not about worth or value, but about the ability to experience different things. So, if an inexperienced swimmer gets thrown into the deep end, it's "sink or swim", and that can sometimes be a dangerous thing. You may have experienced that "over my head" feeling.
Another example is owning and driving a car. Some people are happy just driving the car and keeping it filled with gas and having the fluids changed on schedule. Others want to get more involved in their vehicle's maintenance and repair by doing things such as changing the oil, replacing air filters and spark plugs, replacing fan belts, hoses and brake pads, etc. A few braver souls with older cars get into major engine repair or replacement. All of these types of car owners can drive the car well. Some can perform maintenance but due to time issues prefer to have the work done for them. All are valid owners and I would rather be on the road with good drivers who know little about auto maintenance than bad drivers who can replace engines in a day.
At the end of the day, the answer to this question of should a tester have technical skills may be a firm "it depends!" It depends on the person and their abilities, the projects they work on and the types of testing their job requires them to perform.
Skill #6 - Business Skills
Testers need to be able to speak the language of business. How can we as testers expect to be invited into business-level meetings if we don't understand the culture and language of business? This is more than just understanding business processes. We must know what's important to the business - profits, market share, strategic goals, markets, growth, legal, return on investment, and trade issues.
So, these are some of the important skills as I see them. Agree or disagree? I would like to hear your comments and ideas!
First, let me say that the list could be long and your list probably will differ from mine and that's fine. In fact, please comment with your answers to this important question.
Skill #1 -Thinking Skills
Too many testers fail to think through what they are doing and why they are doing it. They also fail to use imagination and instead rely on a repository of knowledge somewhere that is probably outdated and incorrect. Sure, we can curse the darkness of bad documentation, but we've been doing that for over 30 years already so let's get over it. Let's light a few candles to illuminate the subject of hidden understanding.
So, for example, when doing a boundary test, ask, "Is this test meaningful?", "What will it prove or disprove?", "Are there more important tests that I haven't done yet?".
As testers we have to be very careful about falling into ruts and thinking the same way all the time. Learn to look at problems from different angles.
I like to play thinking games just to stay in practice. One game that is helpful for test teams is "20 questions for software". I improvised this game in a class on exploratory testing when only I had my computer at the front of the room. Here's how it works. The leader (perhaps you) are at the front of the room with an application projected on a screen. Then, go around the room in order (a u-shaped room or circle is best), with one person starting the questioning of the application. They should ask a question such as "What happends when you...(fill in the blank)?". Then, the person next to them asks a question based on their question. This continues around the room, maybe even multiple times. There are only two rules: 1) you must wait your turn, and 2) your question must be based on someone else's question or answer before you.
You may be surprised about how much you can learn about the application by doing this. You may also be surprised (perhaps dismayed) about the quality of questions. This gives the team leader insight into where to develop the thinking skills of the test team or individuals on the team.
I also like to work Sudoku puzzles because they require deducing, eliminating possible solutions to find the right number(s), and using other thought processes that are the same as used in exploratory testing. I've never tried to work one puzzle together as a group, but that would be an interesting experiment.
Skill #2 - Communication Skills
I believe that communication is the basis for everything else we do in IT. Without good communication, we can't even define the problem to be solved, much less define the solutions to the problem or the testing of the solutions. Ironically, communication is the last thing we take training for, or practice, or apply in the workplace.
Testers especially need to be good communicators in the following ways:
Accuracy - People must be able to trust the accuracy of test results and other information from testing. Once the accuracy slips, so does the credibility.
Timeliness - Timely communication helps people to form good responses to problems, take advantage of opportunities, and generally work together better. Sitting on bad news, hoping for it to become better news, is not a good approach.
Thoroughness - Telling only part of a story is as bad as giving inaccurate information.
Courtesy - How people say things is just as important as what they say.
Helpfulness - Overall, the information a tester provides should help the rest of the project team to fix issues, make improvements and deliver a great project on or ahead of schdeule.
Meaningfulness - The information must have value to the audience, otherwise people will disregard it as "just another report" that may or may not be read.
Skill #3 - Measurement Skills
When you think about it, testing is measurement. However, we as testers often struggle with what to measure, how detailed the measures should be, what to do with the measurements, etc.
It takes skill to know what to measure without going overboard. It also takes skill to make the correct interpretation from the measurements and metrics. But how does one build these skills? I'm going to suggest a radical approach. Don't start by reading books on measurement, unless they are basic.
Like many things, including testing, we are up against Parkinson's Law that says "work expands to fill available time." My variation on this is that simple things can become complex just by writing books, having conferences, etc. As an example, function points started as a fairly simple idea but then evolved into more complex ways to count and apply them. So when you read a book on measurement your first thought may be that you need a large set of measurements to "do it right."
Instead, simply look at what needs to be improved and find two or three things to measure that could show progress in meeting those goals. You can also consider a typical project and what you need to know to stay on track. This is the dashboard concept. Have five or six indicators at the high end.
Then, find ways to measure without being intrusive. This in itself can be a big challenge. That's why simple is good.
Skill #4 - Configuration Management Skills
CM has always been an essential skill for testers. After all, what good is it if you test the wrong version or configuration of the software?
With virtual environments, it is even more important to know how to manage them. At this point, you may be thinking, "Yes, but the tool has features for that." Consider though, that a tool is not a process.
So testers need to know how to control all the items in the environment - software, hardware, data, and any other system components.
Skill #5 - Technical Skills
This is an interesting debate. How technical does a tester need to be anyway? On one hand, it is the lack of technical perspective that gives testers the same view as users. Too much technical knowledge and they may apply workarounds that users would not think of, therefore not seeing problems from a true user perspective.
The term "Technical Skills" is a fuzzy one, so I'll clarify my meaning a bit. The technical skills I refer to here are those that allow testers to use new tools and approaches effectively. I don't believe that testers need to be coders, although sometimes that skill comes in handy. But, if a tester likes to code and they can maintain objectivity, it does open some options.
I believe it is a mistake to eliminate a tester from hiring consideration just because they can't code or work with a particular tool. There are simply too many other needed skills and attributes to limit the decision to technical skills alone.
It's like being in a swimming pool and being able to go in the deep end as opposed to just staying in the shallow end. While we can all be in the pool and have fun. Some will be able to do more advanced things, like diving and snorkeling. It's not about worth or value, but about the ability to experience different things. So, if an inexperienced swimmer gets thrown into the deep end, it's "sink or swim", and that can sometimes be a dangerous thing. You may have experienced that "over my head" feeling.
Another example is owning and driving a car. Some people are happy just driving the car and keeping it filled with gas and having the fluids changed on schedule. Others want to get more involved in their vehicle's maintenance and repair by doing things such as changing the oil, replacing air filters and spark plugs, replacing fan belts, hoses and brake pads, etc. A few braver souls with older cars get into major engine repair or replacement. All of these types of car owners can drive the car well. Some can perform maintenance but due to time issues prefer to have the work done for them. All are valid owners and I would rather be on the road with good drivers who know little about auto maintenance than bad drivers who can replace engines in a day.
At the end of the day, the answer to this question of should a tester have technical skills may be a firm "it depends!" It depends on the person and their abilities, the projects they work on and the types of testing their job requires them to perform.
Skill #6 - Business Skills
Testers need to be able to speak the language of business. How can we as testers expect to be invited into business-level meetings if we don't understand the culture and language of business? This is more than just understanding business processes. We must know what's important to the business - profits, market share, strategic goals, markets, growth, legal, return on investment, and trade issues.
So, these are some of the important skills as I see them. Agree or disagree? I would like to hear your comments and ideas!
Thursday, December 04, 2008
Leadership by the Book
I ran across this online article in Federal Computing Week. It's an interview with Dave Wennergren, deputy chief information officer of the Defense Department. It struck a chord with me because I'm such a believer in reading as a form of personal development and skill building.
It's not how much you read, but what you read and how you apply it. You could read a book in one day and get nothing from it, or you could read a page a day and get a nugget of wisdom each day.
Unfortunately, too few IT professionals read books or articles about our profession. Testers are no exception. When I meet people in IT or not, I can normally tell within 10 minutes if they read very much.
For the price and payback, books are a great value. A $50 book can well contain thousands of dollars worth of valuable ideas and advice.
When faced with a problem, I usually ask myself, "Who can I ask?", or "What can I read?" to get a solution.
Here's a great quote from this article:
"When I was the Department of the Navy CIO, I started a leadership forum called Expanding Boundaries, which I have now continued in my DOD job as Expanding Horizons. The idea is to get the leadership team together once every couple of months, read a good book and then discuss how we could apply the book, to our work and our lives. It’s been a great way to understand the art of the possible and best practices, but even more importantly, it has helped to align the leadership team, improve trust and serve an idea creation engine as we strategize about next steps in our information transformation work."
One challenge that teams have is to communicate together well. This would be a good venue to help break that ice.
So, here's the assignment. Read this article, then let me know your thoughts.
Thanks,
Randy
It's not how much you read, but what you read and how you apply it. You could read a book in one day and get nothing from it, or you could read a page a day and get a nugget of wisdom each day.
Unfortunately, too few IT professionals read books or articles about our profession. Testers are no exception. When I meet people in IT or not, I can normally tell within 10 minutes if they read very much.
For the price and payback, books are a great value. A $50 book can well contain thousands of dollars worth of valuable ideas and advice.
When faced with a problem, I usually ask myself, "Who can I ask?", or "What can I read?" to get a solution.
Here's a great quote from this article:
"When I was the Department of the Navy CIO, I started a leadership forum called Expanding Boundaries, which I have now continued in my DOD job as Expanding Horizons. The idea is to get the leadership team together once every couple of months, read a good book and then discuss how we could apply the book, to our work and our lives. It’s been a great way to understand the art of the possible and best practices, but even more importantly, it has helped to align the leadership team, improve trust and serve an idea creation engine as we strategize about next steps in our information transformation work."
One challenge that teams have is to communicate together well. This would be a good venue to help break that ice.
So, here's the assignment. Read this article, then let me know your thoughts.
Thanks,
Randy
Monday, December 01, 2008
The Sports Secret to Building Software Testing Skills
Every once in a while, I'll run across an airline magazine article that really catches my attention. Yesterday on my way to Harrisburg on Continental, I read this article about how collegiate and professional sports stars improve their skills. I couldn't help but think of all the parallels to many of the concepts I teach in my Becoming an Influential Test Team Leader tutorial. Namely:
1) To improve a skill, you must focus on it like a laser beam. Improvement often occurs a little bit at a time (painfully slow at times), but then sometimes you have a breakthrough moment.
2) You must be willing to move out of your comfort zone to improve. Don't just work on your strengths, but also your weaknesses. Actually, I teach becoming exceptional in your strong areas and not to worry too much about the weak points. While I still believe in this philosophy, I also believe that we can all work on our weaknesses to become more well-rounded.
3) A good coach is willing to place a player in a position to fail so they will learn and improve. The player must also have the mindset that failing is an essential part of improvement.
Here's a quote I liked in the article from Steve Bzomowski, a former NBA scout and founder of Never Too Late Basketball Camps: “Pros take themselves seriously. And even though recreational players aren’t going to become pros, there’s no reason for them not to take themselves seriously. We’re always preaching, ‘Respect the game.’ So when you don’t run the court, you’re not respecting the game. Play the game right.”
So, testers, take heart. Identify your strengths and weaknesses. Practice on both, remembering it's OK to try things and fail - if you learn and improve.
1) To improve a skill, you must focus on it like a laser beam. Improvement often occurs a little bit at a time (painfully slow at times), but then sometimes you have a breakthrough moment.
2) You must be willing to move out of your comfort zone to improve. Don't just work on your strengths, but also your weaknesses. Actually, I teach becoming exceptional in your strong areas and not to worry too much about the weak points. While I still believe in this philosophy, I also believe that we can all work on our weaknesses to become more well-rounded.
3) A good coach is willing to place a player in a position to fail so they will learn and improve. The player must also have the mindset that failing is an essential part of improvement.
Here's a quote I liked in the article from Steve Bzomowski, a former NBA scout and founder of Never Too Late Basketball Camps: “Pros take themselves seriously. And even though recreational players aren’t going to become pros, there’s no reason for them not to take themselves seriously. We’re always preaching, ‘Respect the game.’ So when you don’t run the court, you’re not respecting the game. Play the game right.”
So, testers, take heart. Identify your strengths and weaknesses. Practice on both, remembering it's OK to try things and fail - if you learn and improve.
Friday, November 21, 2008
Wrapping Up in Rome

It's been a busy week for me here in Rome as I taught two public classes - Software Testing and Advanced Software Testing. Thanks to all the participants that made it a great experience. I look forward to a return trip in June.
In the Advanced class, we got into test efficiency techniques and how to design tests that are creative and challenging. We also discussed test metrics and how to use them to improve development and testing.
It's hard for me to remember to slow down my rate of speech when speaking through an interpreter. Italian requires many more words than the English equivalent. And forget humor. It just gets lost in translation. I really do appreciate my two interpreters and the other support during the class. You guys are the best!
Sunday was my only sightseeing day. I've been here twice before, last November and last June, so I'm getting to know my way around pretty well. My next goal is to learn more than six words in Italian!
I had not been in the Castle St. Angelo yet, so I decided to check it out. I'm glad I did. The views are spectacular. If you explore around you can go all the way to the top, which allows a full view of central Rome. It's a great value for just 5 Euros. Muphy's law was at work, though. I was taking pictures throughout the castle but when I got this wonderful view - dead battery in the camera.
Fortunately, my hotel is close by so I went back and recharged for an hour, then returned to the castle. They let me back in and I took the pictures.
Here's a travel tip: Always take a spare ATM card. In Europe, the ATMs require fully inserting your card. I like the swipe option because I don't temporarily give up my card. Sunday I was trying to get some cash from an ATM and for some reason, it kept my card. Had I not been teaching on Monday, I could have gone to the bank and retrieved it, but since the banks close at noon and at 4 P.M., I had no options except to report it lost and use my spare at a different bank closer to my hotel.
Tomorrow I head home but have an overnight layover in London. It has been a great trip, but I am ready to be home and celebrate Thanksgiving!
Sunday, November 16, 2008
Travel Tips Around the Hague (World Forum and Museum Area)
As a traveler, I always like to pick up and share helpful tips when possible. I like to be a traveler instead of a tourist. As a business-oriented traveler, this can be challenging. For example, instead of paying $30 for breakfast at the hotel, I like to experience local color and less expense.
So while I was staying at the Golden Tulip by the World Forum in The Hague (which I thought was a great place to stay), here are some little finds:

Right around the corner and down the block there's a little coffee shop. It's right on the #17 tram line after the museum stop. That's where locals gather in the morning and have coffee and breakfast. The owner fixed me a great breakfast of fried eggs, bacon and real coffee (brewed - not the Americano-style) for 3.20 Eur. It was great! I ate there three or four times in all. If you explore around, you will find a shortcut trail that takes you from the coffee shop to the World Forum.
Find #2
I am on a two-week tr
ip, so I must do laundry, or have it done for me. Hotels charge an arm and a leg for this, so I scouted out this self-serve laundry just a few blocks from my hotel in the shopping district, which is only 3 - 4 blocks from the hotel. I was able to do two small loads of laundry for 12.50 Eur. While I was doing laundry, I browsed in the many stores in the shopping area. If you have trouble finding it, just ask the people in the coffee shop!
By the way, there is also another laundry just down the street.
Find #3

The shopping area just blocks from the hotel has almost anything you might need on a trip: clothing, groceries (there is a large store there by European standards), banks (ATMs), drug store, carryout pizza, restaurants, hardware, a copy shop, bookstores, amazing bakeries, chocolate and cheese stores, and more. Just watch out for the chicken wings - they didn't agree with me.

I hope these make your trip to the World Forum in The Hague a little easier and more interesting!
So while I was staying at the Golden Tulip by the World Forum in The Hague (which I thought was a great place to stay), here are some little finds:
Right around the corner and down the block there's a little coffee shop. It's right on the #17 tram line after the museum stop. That's where locals gather in the morning and have coffee and breakfast. The owner fixed me a great breakfast of fried eggs, bacon and real coffee (brewed - not the Americano-style) for 3.20 Eur. It was great! I ate there three or four times in all. If you explore around, you will find a shortcut trail that takes you from the coffee shop to the World Forum.
Find #2
I am on a two-week tr
By the way, there is also another laundry just down the street.
Find #3
The shopping area just blocks from the hotel has almost anything you might need on a trip: clothing, groceries (there is a large store there by European standards), banks (ATMs), drug store, carryout pizza, restaurants, hardware, a copy shop, bookstores, amazing bakeries, chocolate and cheese stores, and more. Just watch out for the chicken wings - they didn't agree with me.
I hope these make your trip to the World Forum in The Hague a little easier and more interesting!
Thoughts About EuroStar 2008
I thought EuroStar 2008 was a great conference. The tutorials, keynotes and tracks were strong in my opinion (I must also say I want to give my perspective as an attendee as well as a speaker. It's hard sometimes to step back and be objective, but I'll try.).
One of my tests of a good conference is whether I'm torn between attending track sessions - and I was. I also spent a fair amount of my time in the interactive sessions, such as the ones on the testing manifesto and testing standards. It was nice to be working on things to advance our testing profession. I'm not sure where the whole testing manifesto thing will wind up. I hope it is someplace similar to the agile manifesto - something simple, meaningful and easy to read and remember.
James Whittaker was his insightful and entertaining self (that video he shows about the future of medical software is amazing and shows we're going to need better testing). His talk was "The End of Testing as we Know it", and I felt all the keynote speakers made me think. James Lyndsay spoke on "Becoming Agile - Reshaping Testing for an Agile Team." He had great points and I'm always impressed by the simplicity and impact of his slides!
The expo was amazing. In the U.S., the exhibits tend to be rather bland. In this show there were two coffee bars, a cocktail bar (I had a smoothie), a chess match, a bicycling competition, etc.
They had a contest where if you got all the exhibitors to stamp your card, you could enter the drawing. So, I computed my odds (about 1 in 30, I figured) and went for it. The grand prizes were two free passes for next year's conference and eight Nintendo Wiis. All I wanted was a Wii. Guess what? I won a conference pass. I didn't factor that in my odds! Oh well, I don't have the luggage space or weight anyway.
The gala was also fant
My prize was a beautiful 9 pound Waterford crystal vase which I will find a great place for at home. Thankfully, security in the U.K. has relaxed security rules to allow two carry-on pieces of luggage!
One other thought concerns model-based testing and how it differs in Europe than in the U.S. - At U.S. conferences, model-based testing is often presented as a manual process. In Europe, they talk about the tools that can make model-based test design happen faster and more completely than using manual methods. I just thought that was interesting.
Dot Graham will be the chair for next year's conference in Stockholm, Sweden. I wish her all the best!
I would like to thank all the kind people who helped me feel right at home. Many thanks to the Qualtech Conference team - Tracy, Siobhan, Lorraine and others. Also, thanks for the conference committee for selecting my talks and to John Fodeh for my keynote introduction and to Bob van de Burgt as conference chair. You all did a great job!
Tuesday, November 11, 2008
Greetings from The Hague and EuroStar 2008
I've been pretty busy since StarWest, so I haven't blogged any since then. Hopefully, I'll make up for that on this trip to The Hague and Rome. I plan to blog on three topics the next couple of weeks: 1) Highlights from EuroStar, 2) My thoughts on the economy and software testing, and 3) Travel tips for The Hague and Rome - complete with pictures.
The flight over went well - as good as it gets in coach on American Airlines. In the airport in Oklahoma City I discovered I forgot my power supply for my MacBook (Darn - I didn't use my checklist!). The Apple factor introduced a complexity factor because the airport shops assume nobody owns a Mac! So, using my iPhone in Dallas, I saw there was a PC World store in Heathrow which carried Apple accessories.
I had a five-hour layover at Heathrow in the new Terminal 5. It is an amazing place. And yes, I found a power supply for my MacBook at a great price. Even with the exchange rate, I was happy to pay it!
The British Airways club there is awesome. Man, the American Airlines' Admiral Club could take some lessons from them. They have all sorts of food and drink at no charge (of course there is the elite status required), plus wi-fi included, and one of the best things after a long flight are the individual wash rooms. This all made the long layover not so bad.
I was surprised that BA had food service on my 45 minute flight to Amsterdam. We don't even get pretzels anymore on US airlines!
Luggage is often a challenge when travelling solo overseas. I took the train down to The Hague. I had a large suitcase plus a duffle bag for my computer and other carry-on essentials. I had two people (other travellers) that helped me with my bags on and off the train. I was impressed by their hospitality!
The room here at the Golden Tulip hotel by the World Forum is great. A nice bed with a U.S. sized room and weekly rate wi-fi is awesome. I only can use 3 TV channels - CNN and 2 BBC channels, but at least I keep up with news back home.
Yesterday I presented a full-day tutorial on "Becoming an Influential Test Team Leader", which seemed to go well. I haven't seen the evaluation results yet, but we had about 50 people and it was a great time together. By the end of the day, we were all good friends!
The biggest challenges are getting adjusted to the time change (I started my session at 2 a.m. CST and ended at 10 a.m. CST!) and adjusting to the cultural differences in my remarks.
This afternoon the conference starts. James Whittaker from Microsoft speaks. Later, the guys from Google (Bharat Mediratta and Antoine Picard) give their "Testing on the Toilet" talk. That has been a big hit in the U.S.
Tommorow morning I deliver my keynote address on "Trends that May Shape the Future of Software Testing". I'm making some last-minute tweaks to reflect some recent events.
Better go now, but I'll post again soon with some impressions from the conference and some pictures.
The flight over went well - as good as it gets in coach on American Airlines. In the airport in Oklahoma City I discovered I forgot my power supply for my MacBook (Darn - I didn't use my checklist!). The Apple factor introduced a complexity factor because the airport shops assume nobody owns a Mac! So, using my iPhone in Dallas, I saw there was a PC World store in Heathrow which carried Apple accessories.
I had a five-hour layover at Heathrow in the new Terminal 5. It is an amazing place. And yes, I found a power supply for my MacBook at a great price. Even with the exchange rate, I was happy to pay it!
The British Airways club there is awesome. Man, the American Airlines' Admiral Club could take some lessons from them. They have all sorts of food and drink at no charge (of course there is the elite status required), plus wi-fi included, and one of the best things after a long flight are the individual wash rooms. This all made the long layover not so bad.
I was surprised that BA had food service on my 45 minute flight to Amsterdam. We don't even get pretzels anymore on US airlines!
Luggage is often a challenge when travelling solo overseas. I took the train down to The Hague. I had a large suitcase plus a duffle bag for my computer and other carry-on essentials. I had two people (other travellers) that helped me with my bags on and off the train. I was impressed by their hospitality!
The room here at the Golden Tulip hotel by the World Forum is great. A nice bed with a U.S. sized room and weekly rate wi-fi is awesome. I only can use 3 TV channels - CNN and 2 BBC channels, but at least I keep up with news back home.
Yesterday I presented a full-day tutorial on "Becoming an Influential Test Team Leader", which seemed to go well. I haven't seen the evaluation results yet, but we had about 50 people and it was a great time together. By the end of the day, we were all good friends!
The biggest challenges are getting adjusted to the time change (I started my session at 2 a.m. CST and ended at 10 a.m. CST!) and adjusting to the cultural differences in my remarks.
This afternoon the conference starts. James Whittaker from Microsoft speaks. Later, the guys from Google (Bharat Mediratta and Antoine Picard) give their "Testing on the Toilet" talk. That has been a big hit in the U.S.
Tommorow morning I deliver my keynote address on "Trends that May Shape the Future of Software Testing". I'm making some last-minute tweaks to reflect some recent events.
Better go now, but I'll post again soon with some impressions from the conference and some pictures.
Saturday, October 04, 2008
StarWest 2008 - Part 2
OK, so I had good intentions about blogging during StarWest. I was too busy!
I thought the conference was good. The keynotes seemed to hit the right level of interest with people. Rob Sabourin spoke about "Testing Lessons from Springfield—Home of the Simpsons". That was a light note to start on and had some interesting application for testers. You've got to love it when someone in the audience shouts, "Eat my shorts, man!" in the middle of a keynote presentation.
Jon Bach spoke next on "Telling Your Exploratory Testing Story". Jon used the connection between journalism and testing to show how to explain to people the performance and outcome of a test.
I sat in on two of Julie Gardiner's sessions: "Five Things Every Tester Must Do" (track session) and "Branch Out Using Classification Trees" (keynote). Julie did great in both sessions. It was great to see people really get excited about the classification tree technique and tool to help optimize testing.
I wasn't able to make it to Julian Harty's session on "Six Thinking Hats for Testers" but I have heard it before and it's a great presentation.
The best I could tell, most people were having a good time and picking up good ideas. I enjoyed meeting a lot of new people, catching up with friends, and learning new things.
On one of our excursions during the week, Janet and I got to see a taping of the Tonight Show. Then, after the show we saw Jay Leno leaving driving his Ariel Atom. He smiled and waved at us. You can't beat that!
I thought the conference was good. The keynotes seemed to hit the right level of interest with people. Rob Sabourin spoke about "Testing Lessons from Springfield—Home of the Simpsons". That was a light note to start on and had some interesting application for testers. You've got to love it when someone in the audience shouts, "Eat my shorts, man!" in the middle of a keynote presentation.
Jon Bach spoke next on "Telling Your Exploratory Testing Story". Jon used the connection between journalism and testing to show how to explain to people the performance and outcome of a test.
I sat in on two of Julie Gardiner's sessions: "Five Things Every Tester Must Do" (track session) and "Branch Out Using Classification Trees" (keynote). Julie did great in both sessions. It was great to see people really get excited about the classification tree technique and tool to help optimize testing.
I wasn't able to make it to Julian Harty's session on "Six Thinking Hats for Testers" but I have heard it before and it's a great presentation.
The best I could tell, most people were having a good time and picking up good ideas. I enjoyed meeting a lot of new people, catching up with friends, and learning new things.
On one of our excursions during the week, Janet and I got to see a taping of the Tonight Show. Then, after the show we saw Jay Leno leaving driving his Ariel Atom. He smiled and waved at us. You can't beat that!
Tuesday, September 30, 2008
StarWest 2008 - Part 1
I'm here at StarWest 2008 with several hundred of my closest friends this week.
Yesterday I presented my tutorial on Becoming an Influential Test Team Leader. We had a really great time together as a class - all 70+ of us. It's always exciting to me to have this opportunity to present this session.
Today I present my half-day tutorial - Pairwise Testing with a Twist, which describes how to apply pairwise testing to scenario-based tests. This is a very interesting technique that can be applied to UAT and SOA testing or any time you need to test an end-to-end process.
I don't have any observations to report at this point, but once the main sessions start, I'll post some of the key points.
Yesterday I presented my tutorial on Becoming an Influential Test Team Leader. We had a really great time together as a class - all 70+ of us. It's always exciting to me to have this opportunity to present this session.
Today I present my half-day tutorial - Pairwise Testing with a Twist, which describes how to apply pairwise testing to scenario-based tests. This is a very interesting technique that can be applied to UAT and SOA testing or any time you need to test an end-to-end process.
I don't have any observations to report at this point, but once the main sessions start, I'll post some of the key points.
Tuesday, September 16, 2008
SOA Testing Online Training Course Finally Ready!
I've been working the past month or so to bring my newest course, Testing Service-Oriented Architectures to the online format. Well, the day has arrived!
To register and learn more about the course, visit:
https://www.mysoftwaretesting.com/ProductDetails.asp?ProductCode=SOA101
To see a demo:
http://softwaretestingtrainingonline.com/moodle/course/category.php?id=11
(you can login as a guest and stay anonymous.)
The great thing about my e-learning courses is that you can learn at your own pace. Plus, it's ideal for small teams. The online course has exactly the same content as the live course, except the lecture is more time-compressed (I don't take as long to explain things.) and the exercises are optional, but encouraged.
You may also notice I have a new shopping cart!
On another note about SOA, I was interviewed my Mike Kavis recently for an article at www.cio.com on "Six Questions to Consider Before Building a SOA Testing Team". You can read the article at: http://www.cio.com/article/448970/Six_Questions_to_Consider_Before_Building_a_SOA_Testing_Team?page=1
When it comes to testing, just like development, SOA has a different set of technology, business and project concerns. You really need to be thinking about the testing aspect of SOA early in your project because there are some far-reaching implications, such as performance and security that you just can't piece together at the end of the project.
I the article, I mention finding 2 or 3 people in other organizations that have some lessons learned and tapping them as mentors. You can't find every thing you need to know in books, articles and courses (even mine!). When you are on the "bleeding edge" of technology, you need people to brainstorm with!
Now I must go and get my September newsletter out. Have I mentioned I've been busy lately?
To register and learn more about the course, visit:
https://www.mysoftwaretesting.com/ProductDetails.asp?ProductCode=SOA101
To see a demo:
http://softwaretestingtrainingonline.com/moodle/course/category.php?id=11
(you can login as a guest and stay anonymous.)
The great thing about my e-learning courses is that you can learn at your own pace. Plus, it's ideal for small teams. The online course has exactly the same content as the live course, except the lecture is more time-compressed (I don't take as long to explain things.) and the exercises are optional, but encouraged.
You may also notice I have a new shopping cart!
On another note about SOA, I was interviewed my Mike Kavis recently for an article at www.cio.com on "Six Questions to Consider Before Building a SOA Testing Team". You can read the article at: http://www.cio.com/article/448970/Six_Questions_to_Consider_Before_Building_a_SOA_Testing_Team?page=1
When it comes to testing, just like development, SOA has a different set of technology, business and project concerns. You really need to be thinking about the testing aspect of SOA early in your project because there are some far-reaching implications, such as performance and security that you just can't piece together at the end of the project.
I the article, I mention finding 2 or 3 people in other organizations that have some lessons learned and tapping them as mentors. You can't find every thing you need to know in books, articles and courses (even mine!). When you are on the "bleeding edge" of technology, you need people to brainstorm with!
Now I must go and get my September newsletter out. Have I mentioned I've been busy lately?
Thursday, September 11, 2008
More on Agile, Requirements and Modeling
Today was the third and final day of the private conference I mentioned in my previous post. Today's keynote speaker was Scott Ambler, who discussed Agile Modeling.
A few notable things I jotted down from a 90-minute session:
* According to research at Dr. Dobbs Journal, 69% of those surveyed said they were currently using agile methods on projects, 15% of those that aren't currently using agile are planning to.
* In a 2007 survey (Dr. Dobbs), 72% of agile projects were considered successful, 63% of traditional projects were successful and 43% of offshore projects were successful. That's interesting! http://www.ambysoft.com/surveys/success2007.html
* According to the Standish Group in the Chaos Report, version 3, 45% of implemented requirements are never used. 19% are rarely used. Wow, that's a whopping 64% of features that probably no one would ever miss! Only 7% of the implemented requirements are used always.
http://www.agilemodeling.com/essays/examiningBRUF.htm
* To determine the effectiveness of documentation, ask "What is the probability that:
C - the documentation is correct
R - the docs are read
U - they are understood
F - they are followed
T - they are trusted"
Then, multiply C*R*U*F*T to get the overall effectiveness score.
* When you hand off a document to someone there is an immediate 25% information loss (much like the old game of "gossip").
* Models do not equal documentation. Modeling is a key scaling strategy for agile, is an important communication technique, and many agile practitioners perform modeling whether they admit it or not. Drawing on a whiteboard can be considered modeling.
Good information to think about!
Here's an interesting article:
A few notable things I jotted down from a 90-minute session:
* According to research at Dr. Dobbs Journal, 69% of those surveyed said they were currently using agile methods on projects, 15% of those that aren't currently using agile are planning to.
* In a 2007 survey (Dr. Dobbs), 72% of agile projects were considered successful, 63% of traditional projects were successful and 43% of offshore projects were successful. That's interesting! http://www.ambysoft.com/surveys/success2007.html
* According to the Standish Group in the Chaos Report, version 3, 45% of implemented requirements are never used. 19% are rarely used. Wow, that's a whopping 64% of features that probably no one would ever miss! Only 7% of the implemented requirements are used always.
http://www.agilemodeling.com/essays/examiningBRUF.htm
* To determine the effectiveness of documentation, ask "What is the probability that:
C - the documentation is correct
R - the docs are read
U - they are understood
F - they are followed
T - they are trusted"
Then, multiply C*R*U*F*T to get the overall effectiveness score.
* When you hand off a document to someone there is an immediate 25% information loss (much like the old game of "gossip").
* Models do not equal documentation. Modeling is a key scaling strategy for agile, is an important communication technique, and many agile practitioners perform modeling whether they admit it or not. Drawing on a whiteboard can be considered modeling.
Good information to think about!
Here's an interesting article:
Asimov solved internet fraud 30 years ago
See you later!Wednesday, September 10, 2008
Being Smart About Agile
I've had a great time this week at a private developer/tester conference at a large world-class company. I've been staying busy speaking and consulting here and enjoying every minute of it.
Today we heard a keynote address from Ivar Jacobson that was very interesting. It was about being smart in software development. Here are a few of the main points that resonated with me:
* Being smart means being agile plus doing the right thing in a particular situation.
* Knowing the right thing to do requires knowledge, training and experience.
* Interesting "factoid" - 90% + of companies still use waterfall methods.
* Small, cross-functional teams are best (10 people or less)
* Trying to define requirements early at a level of 80% completeness or higher is futile.
* Only 5 - 10% of requirements have a critical impact. These are the ones needed to build the initial interation(s) - the "skinny system".
* Agile isn't what it was 5 years ago. It's smarter today.
* Architecture is still important. Without it, you have a chaotic mess.
* On the other hand, "An architecture without executable code is a hallucination."
* Refactor over releases. Large scale refactoring is costly.
* "Whatever you do, you are not done until you have verified that you did what you wanted to do."
* We are all testers.
* A law of nature: People don't read documents
* Make sure your documents add value
* Practices over processes. Practices can be assembled from a variety of sources. They are separate but composable. In this way, you can select what works for you.
* Appropriate mentoring can help you become smarter faster.
* Change through evolution, not revolution.
* Agility responds to risk and unknowns.
I thought this was a thoughtful and helpful session. It gives me some new ways to think about agility as I help my clients make the transition from traditional methods.
Today we heard a keynote address from Ivar Jacobson that was very interesting. It was about being smart in software development. Here are a few of the main points that resonated with me:
* Being smart means being agile plus doing the right thing in a particular situation.
* Knowing the right thing to do requires knowledge, training and experience.
* Interesting "factoid" - 90% + of companies still use waterfall methods.
* Small, cross-functional teams are best (10 people or less)
* Trying to define requirements early at a level of 80% completeness or higher is futile.
* Only 5 - 10% of requirements have a critical impact. These are the ones needed to build the initial interation(s) - the "skinny system".
* Agile isn't what it was 5 years ago. It's smarter today.
* Architecture is still important. Without it, you have a chaotic mess.
* On the other hand, "An architecture without executable code is a hallucination."
* Refactor over releases. Large scale refactoring is costly.
* "Whatever you do, you are not done until you have verified that you did what you wanted to do."
* We are all testers.
* A law of nature: People don't read documents
* Make sure your documents add value
* Practices over processes. Practices can be assembled from a variety of sources. They are separate but composable. In this way, you can select what works for you.
* Appropriate mentoring can help you become smarter faster.
* Change through evolution, not revolution.
* Agility responds to risk and unknowns.
I thought this was a thoughtful and helpful session. It gives me some new ways to think about agility as I help my clients make the transition from traditional methods.
Monday, September 08, 2008
What's Big in SOA Security?
I got this question recently, so I thought it would be good to answer here as well. Basically, the question is, "With all the threats out there, which of them should SOA architects be concerned with?"
What I see most are the threats that are related to messaging in terms of access to the XML payload. In traditional applications, we have gotten pretty good at authentication (even though that is still hackable sometimes). However, in SOA with web massaging across HTTP/HTTPS, it is easier to find a point in the messaging process where the payload can be accessed. This can lead to a variety of attacks: malware, large payloads, XPath injection, etc.
In my SOA testing course (which is soon to be in an online format - stay tuned!), I describe the nature of these attacks. Most are similar to traditional attacks, except oriented to SOA. Take for example XPath injection. It is similar to SQL injection attacks, except is uses the XPath to gain access to data that is thought to be protected.
Keep in mind that SSL secures the message in transit only, while WS-Security maintains encryption until the message is processed. There are some other advantages of WS-Security over SSL, such as being able to specify securing only part of a message if you like. This can help reduce the performance cost of security.
What have you seen as the "big threats" in SOA security?
What I see most are the threats that are related to messaging in terms of access to the XML payload. In traditional applications, we have gotten pretty good at authentication (even though that is still hackable sometimes). However, in SOA with web massaging across HTTP/HTTPS, it is easier to find a point in the messaging process where the payload can be accessed. This can lead to a variety of attacks: malware, large payloads, XPath injection, etc.
In my SOA testing course (which is soon to be in an online format - stay tuned!), I describe the nature of these attacks. Most are similar to traditional attacks, except oriented to SOA. Take for example XPath injection. It is similar to SQL injection attacks, except is uses the XPath to gain access to data that is thought to be protected.
Keep in mind that SSL secures the message in transit only, while WS-Security maintains encryption until the message is processed. There are some other advantages of WS-Security over SSL, such as being able to specify securing only part of a message if you like. This can help reduce the performance cost of security.
What have you seen as the "big threats" in SOA security?
Sunday, August 24, 2008
A Lesson Learned in Really Bad Customer Service from Bob Howard Toyota
It's been an interesting weekend. I like to try to see the lessons even in bad situations in life. I also like to use real-life business situations to learn and apply lessons about customer service. For example, if you want to experience really great customer service, just visit any In-n-Out Burger. I'm always amazed.
On the other end of the spectrum, just visit most MacDonalds. They seem to have mastered the ability to forget that the customer is the one that keeps them employed. I experienced that this weekend, but here's the one that really got me.
I spent Saturday morning with my adult son trying to get some help on a car deal gone bad. It's a long story, but the short version is that we went to a supposedly reputable dealer here in the Oklahoma City area (Bob Howard Toyota) looking for a used 4Runner. We were shown and sold a Land Runner which belonged (but not exactly - we found out later he had just registered the vehicle but didn't have the title yet) to one of the salesmen. Therefore, it was a private sale which took place on the lot. About a week later, the vehicle started overheating and eventually (after $600 of repairs) learned that it is a blown head gasket. (About another $1,300 in repairs)They told us if we had any problems, just to come back in and they would help us get anything fixed. OK. That didn't happen.
You can read the longer version here: http://ryanrice.blogspot.com/.
So, we went back in yesterday and asked to speak with the general manager. I was expecting at least a somewhat friendly attitude. Instead, we got a jerk who acted like we were wasting his time. He took no ownership of any issue. When I asked him how he felt about salesment flipping cars on his business lot (essentially taking away his business), he agreed he didn't like that.
OK, so here's the point of this story. 1) I want the local community to know through Google, and 2) it amazes me that the manager could not even treat like a potential customer, which we were.
I would point you to a great book called "Customers for Life" by Carl Sewell, who owns one of the premier car dealerships in the U.S. From Sewell's experience, a satisfied customer who returns to your business for life will spend hundreds of thousands of dollars. Plus, they will tell their friends. I know many people who have used the lessons in that book to transform their businesses into customer-friendly businesses.
I wonder how much money Bob Howard Toyota spends on television ads. (In Oklahoma City, it seems that all you see are car and furniture ads!) I'll tell everyone I know about how badly my son and I were treated there. I've later learned, there have been others. This story makes ours look tame: http://www.ripoffreport.com/reports/0/155/RipOff0155248.htm
This experience has burned in my memory the value in treating my customers right. My current and past clients will tell you that I will bend over backwards to serve you well. That's why I offer a no-risk, no-hassle guarantee on all my e-learning offerings. If you aren't happy, neither am I.
It's not just about the money, either. It's about doing the right thing, about being treated like I would like to be treated. I learned my lessons in customer service from my father who owned and ran a service station when I was a child. I saw first hand how well he treated people and how they kept coming to his station for gas. Those were the full service days - I washed my share of windwhields!
As testers and QA professionals, we all have customers. Yes, internal developers and users are our customers. One of the best ways a QA or test team can earn respect and show value in a company is to treat our customers well. Like at any business, it is the customer that keeps you in business. That is true for both you and me!
Thanks for listening. It was cheaper than therapy!
Have a great week!
On the other end of the spectrum, just visit most MacDonalds. They seem to have mastered the ability to forget that the customer is the one that keeps them employed. I experienced that this weekend, but here's the one that really got me.
I spent Saturday morning with my adult son trying to get some help on a car deal gone bad. It's a long story, but the short version is that we went to a supposedly reputable dealer here in the Oklahoma City area (Bob Howard Toyota) looking for a used 4Runner. We were shown and sold a Land Runner which belonged (but not exactly - we found out later he had just registered the vehicle but didn't have the title yet) to one of the salesmen. Therefore, it was a private sale which took place on the lot. About a week later, the vehicle started overheating and eventually (after $600 of repairs) learned that it is a blown head gasket. (About another $1,300 in repairs)They told us if we had any problems, just to come back in and they would help us get anything fixed. OK. That didn't happen.
You can read the longer version here: http://ryanrice.blogspot.com/.
So, we went back in yesterday and asked to speak with the general manager. I was expecting at least a somewhat friendly attitude. Instead, we got a jerk who acted like we were wasting his time. He took no ownership of any issue. When I asked him how he felt about salesment flipping cars on his business lot (essentially taking away his business), he agreed he didn't like that.
OK, so here's the point of this story. 1) I want the local community to know through Google, and 2) it amazes me that the manager could not even treat like a potential customer, which we were.
I would point you to a great book called "Customers for Life" by Carl Sewell, who owns one of the premier car dealerships in the U.S. From Sewell's experience, a satisfied customer who returns to your business for life will spend hundreds of thousands of dollars. Plus, they will tell their friends. I know many people who have used the lessons in that book to transform their businesses into customer-friendly businesses.
I wonder how much money Bob Howard Toyota spends on television ads. (In Oklahoma City, it seems that all you see are car and furniture ads!) I'll tell everyone I know about how badly my son and I were treated there. I've later learned, there have been others. This story makes ours look tame: http://www.ripoffreport.com/reports/0/155/RipOff0155248.htm
This experience has burned in my memory the value in treating my customers right. My current and past clients will tell you that I will bend over backwards to serve you well. That's why I offer a no-risk, no-hassle guarantee on all my e-learning offerings. If you aren't happy, neither am I.
It's not just about the money, either. It's about doing the right thing, about being treated like I would like to be treated. I learned my lessons in customer service from my father who owned and ran a service station when I was a child. I saw first hand how well he treated people and how they kept coming to his station for gas. Those were the full service days - I washed my share of windwhields!
As testers and QA professionals, we all have customers. Yes, internal developers and users are our customers. One of the best ways a QA or test team can earn respect and show value in a company is to treat our customers well. Like at any business, it is the customer that keeps you in business. That is true for both you and me!
Thanks for listening. It was cheaper than therapy!
Have a great week!
Wednesday, August 06, 2008
Integration and Interoperability Testing of Software
My last post about the American Airlines baggage system failure mentioned interoperability testing and it got me thinking about this important type of testing that is often minimized or overlooked in systems testing.
First, I just need to make a distinction realizing that software testing terminology is often applied in a variety of ways depending on how you were exposed to it. For example, a test case can mean many things to different people. Although standard definitions exist, they are often unknown to professional testers.
So, here are my working definitions:
Integration testing is the verification or validation that data and control can be passed correctly between two or more related systems or system components. In other words, "Can each component or system talk to each other correctly?"
Interoperability testing is the verification or validation that data and control, once passed correctly between two or more related systems or system components, can be applied correctly to achieve the expected results or behavior. In other words, "Can the passed data or control be used correctly to get the right outcome."
The idea is that it's one thing to have integration between items, but another for that integration to be applied correctly. By the way, the definitions I used are the same or similar to that used in defense applications where integration and interoperability testing is paramount.
I consider integration testing a phase or level of testing performed once the related items or systems are available. I consider interoperability testing a type of testing, which can be performed at any phase of testing, from unit to user acceptance testing.
Here's a fictitious (but realistic) example of the two tests in action based on some of my previous rants (er.., comments). Let's say that I am passing some data to another system for sending a passenger's bag to the right destination - either the conveyor belt to be picked up, or on to their next flight. The integration test would tell me if the data made it correctly to the sorting system. The interoperability test would tell me if the sorting system processed that data correctly, made the right determination, and then sent the bags to the correct destination. It is possible that a logic error could send bags that were meant to be on a connecting flight to the conveyor belt for pickup. (NOTE: I must emphasize this is just an example and not what happened with the American problems. It may have been something similar, but the information is not available yet to know what happened.)
The lesson we can all learn is that this type of end-to-end interoperability testing is hugely important but not necessarily easy. Many times it requires validation in the actual operational environment to get a true assessment of correctness.
By the way, I offer a course in Integration and Interoperability Testing.
One more realted note - I found this link to one of my favorite articles from Scientific American on software defects. It's called "Software's Chronic Crisis". Although it's from 1994, don't let the date keep you from reading this very informative article. I'm really glad I found it!
Do you have any experiences with performing (or not performing) interoperability testing? If so, I would love to read your comments.
First, I just need to make a distinction realizing that software testing terminology is often applied in a variety of ways depending on how you were exposed to it. For example, a test case can mean many things to different people. Although standard definitions exist, they are often unknown to professional testers.
So, here are my working definitions:
Integration testing is the verification or validation that data and control can be passed correctly between two or more related systems or system components. In other words, "Can each component or system talk to each other correctly?"
Interoperability testing is the verification or validation that data and control, once passed correctly between two or more related systems or system components, can be applied correctly to achieve the expected results or behavior. In other words, "Can the passed data or control be used correctly to get the right outcome."
The idea is that it's one thing to have integration between items, but another for that integration to be applied correctly. By the way, the definitions I used are the same or similar to that used in defense applications where integration and interoperability testing is paramount.
I consider integration testing a phase or level of testing performed once the related items or systems are available. I consider interoperability testing a type of testing, which can be performed at any phase of testing, from unit to user acceptance testing.
Here's a fictitious (but realistic) example of the two tests in action based on some of my previous rants (er.., comments). Let's say that I am passing some data to another system for sending a passenger's bag to the right destination - either the conveyor belt to be picked up, or on to their next flight. The integration test would tell me if the data made it correctly to the sorting system. The interoperability test would tell me if the sorting system processed that data correctly, made the right determination, and then sent the bags to the correct destination. It is possible that a logic error could send bags that were meant to be on a connecting flight to the conveyor belt for pickup. (NOTE: I must emphasize this is just an example and not what happened with the American problems. It may have been something similar, but the information is not available yet to know what happened.)
The lesson we can all learn is that this type of end-to-end interoperability testing is hugely important but not necessarily easy. Many times it requires validation in the actual operational environment to get a true assessment of correctness.
By the way, I offer a course in Integration and Interoperability Testing.
One more realted note - I found this link to one of my favorite articles from Scientific American on software defects. It's called "Software's Chronic Crisis". Although it's from 1994, don't let the date keep you from reading this very informative article. I'm really glad I found it!
Do you have any experiences with performing (or not performing) interoperability testing? If so, I would love to read your comments.
Monday, August 04, 2008
American Airlines Baggage Failure Gets Personal to Me
I have posted previously about my disdain for the term "glitch", especially when it is misused to describe a major computing problem or failure. "Glitch" just sounds too casual and minor. Such was the case last week when a software defect caused the separation of thousands of bags from their owners and the delay of flights at New York's JFK airport on Wednesday and Thursday.
My wife and I got caught up in the mess. It all began when we missed our connection in Miami. It was close, but the plane left EARLY. Our only recourse was to change routing through JFK. I asked the lady at American, "But isn't that where they're having all the problems with baggage?" She assured me everything was in order. But...we had to spend the night by JFK without our bags, hoping they followed us to our final destination. Guess what? They didn't.
So, we had to buy all the things we needed, plus clothes to wear at the event we were attending, which had a dress code. The "I heart NY" t-shirts just wouldn't cut it. So, the glitch cost an extra $500. I wonder how many other people had similar experiences.
Some people think delays aren't a big deal. Well, with tight connections, cancelled flights and full flights, they can make life miserable is a hurry. Some of my friends had their flight cancelled in this debacle and missed the first day of a vacation they had really looked forward to.
I know, I know....I normally carry on everything. This time I was with my wife who must check a bag, so I thought, "what the heck?" I broke my own rules!
So now I've had a little taste of what the people at London Heathrow's new terminal 5 experienced.
When we think about the cost of computing defects, these are the costs we often forget - loss of time, loss of opportunity, loss of credibility (I trust an airline to get my bags from point A to point C only at my risk. Actually, anymore when I arrive on time at my destination, I'm ahead of the game. I'm so used to being delayed, I've come to expect it.).
OK, now I'm just whining.
In this case, the suspected problem was the interface with the baggage sorter's communication network, which is only less than one year old. Those darn interoperability problems! I wonder...if the system was ever tested end-to-end in the actual operational environment (also known as validation). If anyone knows the answer to that, please let me know.
I am on my way home and I sure hope our bags make it with us. Oh, and yes, we are flying through JFK again!
My wife and I got caught up in the mess. It all began when we missed our connection in Miami. It was close, but the plane left EARLY. Our only recourse was to change routing through JFK. I asked the lady at American, "But isn't that where they're having all the problems with baggage?" She assured me everything was in order. But...we had to spend the night by JFK without our bags, hoping they followed us to our final destination. Guess what? They didn't.
So, we had to buy all the things we needed, plus clothes to wear at the event we were attending, which had a dress code. The "I heart NY" t-shirts just wouldn't cut it. So, the glitch cost an extra $500. I wonder how many other people had similar experiences.
Some people think delays aren't a big deal. Well, with tight connections, cancelled flights and full flights, they can make life miserable is a hurry. Some of my friends had their flight cancelled in this debacle and missed the first day of a vacation they had really looked forward to.
I know, I know....I normally carry on everything. This time I was with my wife who must check a bag, so I thought, "what the heck?" I broke my own rules!
So now I've had a little taste of what the people at London Heathrow's new terminal 5 experienced.
When we think about the cost of computing defects, these are the costs we often forget - loss of time, loss of opportunity, loss of credibility (I trust an airline to get my bags from point A to point C only at my risk. Actually, anymore when I arrive on time at my destination, I'm ahead of the game. I'm so used to being delayed, I've come to expect it.).
OK, now I'm just whining.
In this case, the suspected problem was the interface with the baggage sorter's communication network, which is only less than one year old. Those darn interoperability problems! I wonder...if the system was ever tested end-to-end in the actual operational environment (also known as validation). If anyone knows the answer to that, please let me know.
I am on my way home and I sure hope our bags make it with us. Oh, and yes, we are flying through JFK again!
Monday, July 28, 2008
COTS Feature Bloat and Software Quality
I'm celebrating today. I finally finished making the changes for the 2nd edition of Surviving the Top Ten Challenges of Software Testing! It's been a long time coming, but I'm excited.
We have practically re-written the chapter on tools and automation and have added a new challenge on requirements.
Bill Perry wrote the new chapter on requirements and makes an interesting point that 10% or more of the features in software are never requested as a need by a user. They just "appear".
I was having lunch with week with my friend Frank Rowland who asked the searching question, "Why do software and systems change so much?" Now keep in mind that Frank only upgrades hardware every 5 or 6 years or so, so he struggles a lot with version conflicts. But his question is still valid.
Even people who buy new hardware every 2 years have major issues with version conflicts.
My answer to Frank boiled down to three major things that drive change in the applications and systems we use:
1) Hardware factors, which would include things like processor obsolescence, memory limits, etc. It seems like the developers always have the latest and greatest hardware. So, the new version of your favorite package will likely require an upgrade to use it. It's interesting that every Microsoft Operating System released requires a new machine to work well (and even then, there are often conflicts with other apps that may not be ready for the new OS).
2) Customer demands, which I actually think are the lesser of the reasons, but still a factor. With COTS (commercial off-the-shelf software), it may take years to get that helpful feature to be a reality. The vendors have a tough decision on which features will help the most customers.
3) Profit motives, which are perhaps the greatest drivers. Let's face it, any business depends on repeat business (except perhaps funeral homes). Anyway, software developers and publishers really depend on new versions being sold. Now the issue is getting people to see the value in the new features.
I still use MS Office 2000 because I've tried the demos of Office 2003 and 2007 and I really can't see the value in upgrading. Even when I bought my MacBook, I just downloaded Open Office and have been very happy with it. I have other applications that plug into PowerPoint that work best with PowerPoint 2000.
It's almost comical (if it wasn't so sad) how complex just using a PC has become. Just read the support forums for any application - web based, PC-based or otherwise. Whenever anyone asks, "Why am I having a problem with..." there will be a variety of suggestions, most of which are relating to configuration and compatibility issues. You almost have to be a developer or professional troubleshooter just to survive.
So change happens and most of the time, it's a pain in terms of time and frustration. I don't look for things to get better. Ever.
I see it like having to learn a new language and culture. I'm bi-lingual. I can speak English and computer. It's interesting to me that the PC was supposed to put the power back into the hands of the user, which it did. However, it's now like owning a car. About all I can do is change the oil and brake pads and keep the tires properly inflated. Everything else requires special tools and computers, which I don't own.
To sum all this up, when you're thinking about bringing in a new or updated COTS product, be prepared for lots of breakage. When testing COTS, your main concerns are 1) will it work for me in my environment and 2) what will it break?
The vendor can't test for these things. To neglect testing these things is inviting some pain, perhaps disaster (data loss, long downtimes, etc.). You can test COTS, but it takes a different mindset from the user point of view.
And, yes, change still happens!
We have practically re-written the chapter on tools and automation and have added a new challenge on requirements.
Bill Perry wrote the new chapter on requirements and makes an interesting point that 10% or more of the features in software are never requested as a need by a user. They just "appear".
I was having lunch with week with my friend Frank Rowland who asked the searching question, "Why do software and systems change so much?" Now keep in mind that Frank only upgrades hardware every 5 or 6 years or so, so he struggles a lot with version conflicts. But his question is still valid.
Even people who buy new hardware every 2 years have major issues with version conflicts.
My answer to Frank boiled down to three major things that drive change in the applications and systems we use:
1) Hardware factors, which would include things like processor obsolescence, memory limits, etc. It seems like the developers always have the latest and greatest hardware. So, the new version of your favorite package will likely require an upgrade to use it. It's interesting that every Microsoft Operating System released requires a new machine to work well (and even then, there are often conflicts with other apps that may not be ready for the new OS).
2) Customer demands, which I actually think are the lesser of the reasons, but still a factor. With COTS (commercial off-the-shelf software), it may take years to get that helpful feature to be a reality. The vendors have a tough decision on which features will help the most customers.
3) Profit motives, which are perhaps the greatest drivers. Let's face it, any business depends on repeat business (except perhaps funeral homes). Anyway, software developers and publishers really depend on new versions being sold. Now the issue is getting people to see the value in the new features.
I still use MS Office 2000 because I've tried the demos of Office 2003 and 2007 and I really can't see the value in upgrading. Even when I bought my MacBook, I just downloaded Open Office and have been very happy with it. I have other applications that plug into PowerPoint that work best with PowerPoint 2000.
It's almost comical (if it wasn't so sad) how complex just using a PC has become. Just read the support forums for any application - web based, PC-based or otherwise. Whenever anyone asks, "Why am I having a problem with..." there will be a variety of suggestions, most of which are relating to configuration and compatibility issues. You almost have to be a developer or professional troubleshooter just to survive.
So change happens and most of the time, it's a pain in terms of time and frustration. I don't look for things to get better. Ever.
I see it like having to learn a new language and culture. I'm bi-lingual. I can speak English and computer. It's interesting to me that the PC was supposed to put the power back into the hands of the user, which it did. However, it's now like owning a car. About all I can do is change the oil and brake pads and keep the tires properly inflated. Everything else requires special tools and computers, which I don't own.
To sum all this up, when you're thinking about bringing in a new or updated COTS product, be prepared for lots of breakage. When testing COTS, your main concerns are 1) will it work for me in my environment and 2) what will it break?
The vendor can't test for these things. To neglect testing these things is inviting some pain, perhaps disaster (data loss, long downtimes, etc.). You can test COTS, but it takes a different mindset from the user point of view.
And, yes, change still happens!
Tuesday, June 24, 2008
Tuesday at the Oklahoma City Moodle Moot
Today we heard from Martin Dougiamas, the original developer of Moodle and still the leader, who explained where Moodle came from and where it is going. He said something I found interesting that we as testers already know. He admitted that version 1.7 was a bad release and that his lesson learned was not to release a version just to meet a deadline. Amen, brother!
Martin asked “What is the single most powerful technique for online learning?” In the audience we had several good answers, such as collaboration, communication, etc. His answer was “Asking questions.” He said that's when the learning activity increases. I think that's a good thing to remember for either live training or e-learning. In fact, I offer an optional teleconference session for my corporate e-learning clients and may soon expand that to all of my e-learning students.
The idea is to offer people the opportunity to ask questions about what they have learned in the e-learning sessions. If people don't ask me question, then I ask them questions. Sometimes I say outrageous things just to get a debate going!
This has been a very valuable conference. I have learned more in two days of intense questioning and exposure than I have learned in three years of using Moodle! It's the best $99 I've ever spent on training!
I'm excited to say that I am committed to:
1) Getting to the most recent version of Moodle, which will add great value to all of my students,
2) Being more active in the local and international Moodle community,
3) Being a help to others who want to implement Moodle to enhance their students' learning success.
Stay tuned, folks. This is going to be great!
Martin asked “What is the single most powerful technique for online learning?” In the audience we had several good answers, such as collaboration, communication, etc. His answer was “Asking questions.” He said that's when the learning activity increases. I think that's a good thing to remember for either live training or e-learning. In fact, I offer an optional teleconference session for my corporate e-learning clients and may soon expand that to all of my e-learning students.
The idea is to offer people the opportunity to ask questions about what they have learned in the e-learning sessions. If people don't ask me question, then I ask them questions. Sometimes I say outrageous things just to get a debate going!
This has been a very valuable conference. I have learned more in two days of intense questioning and exposure than I have learned in three years of using Moodle! It's the best $99 I've ever spent on training!
I'm excited to say that I am committed to:
1) Getting to the most recent version of Moodle, which will add great value to all of my students,
2) Being more active in the local and international Moodle community,
3) Being a help to others who want to implement Moodle to enhance their students' learning success.
Stay tuned, folks. This is going to be great!
Subscribe to:
Posts (Atom)