On-Going Improvement

What Software Testing can learn from Basketball, games are won with a Great Defense

Posted in Best Practices, On-Going Improvement, Test Process on February 15th, 2010 by Joel Montvelisky – Be the first to comment

I beg forgiveness to all NBA fans, since this post relates mainly to all the rest of the basketball leagues (College-league, Euro-league, etc.) where most players are mere mortals :-)

I read a comment on a newspaper this weekend saying that “Team X” had won a game due to its defense.  This reminded me of a game I saw last week while I was *running* in the gym where 2 college teams were playing and it was obvious that the team that was winning, and not by a short margin, did not really have a better percentage from the field but they were “kicking-ass” on Defense, specially winning almost every single defensive.

1060basketball_game

If you ever played basketball you know that you need to have talent to play good offense.  But in order to play defense you don’t need talent, you need physical endurance and most importantly you need DETERMINATION.  I learned this in my high-school basketball team where all my friends had talent and I decided I also wanted to be part of the team…

But what the heck has this to do with Software Testing???  Everything!

It is true that you can have a natural talent to “attract bugs to you” whenever you log into your Application Under Test, this will certainly not harm you as a tester.
But a great tester is the person who is 110% determined to do the best possible testing job all the time; who’ll work with all his heart even when the task may be less “glamorous” than the one being done by the developer sitting next to him; and who’ll play with his “eye on the ball” but with his head focused on the objectives and goals of the whole team all the time and specially during the hard times.

I think that in the same way as basketball games are won with points but lost with a bad defense, and the teams who succeed in the long run are those with a strong and stable defense; our companies and products sell in the short run with fast features and cool functionality, but in the long run the ones that succeed are those with a high quality and stable product.

So just like in basketball, you need to keep your eye on the ball but your head focused on the objective of the team; and…

DEFENSE – DEFENSE – DEFENSE!!!!

Learning Testing from Horse Trainers? (thanks to Adam Goucher)

Posted in Management, On-Going Improvement on December 7th, 2009 by Joel Montvelisky – 3 Comments

I don’t usually write blogs about other blogs but this morning I read one in Adam Goucher’s blog that really made it for me, and it was actually based on another article he read on a how to become a professional horse trainer… talk about recycling information :-)

In any case it reminded me that in order to be a professional, regardless in what area you want to be, there will be a lot of hard work and little shortcuts to be taken along the way.

Just to summarize the points, in order to become a professional you will need:
- Talent
- Sacrifice / Selflessness
- Blood, Sweat & Tears
- Determination
- People Skills
- Bravery or Courage
- Character & Intelligence
- Develop a Plan

wild-horses

So, thanks to Jessica To Tate for putting together this list, and to Adam for reminding us that Horses are not so different from Software, both requiring some taming once in a while.

The ones who never stop learning new stuff

Posted in Best Practices, On-Going Improvement on October 11th, 2009 by Joel Montvelisky – 2 Comments

Some of the most impressive testers (and some of the greatest developers) I’ve worked with have one personal attribute that sets them apart from the rest of the team: They are always learning new things to apply to their work.

Take a look around your work-place and think about one or two members of your team who fit this criteria.   These guys always know about the new methodologies, tools and practices making waves; and they are the ones who introduce these things to the rest of the team.  Their opinion is respected since they are a reliable sources of knowledge.  And maybe most importantly they are valued because of the way they improve the work of the organization.

How do they do it?
You can go and ask the guys sitting close to you, but from my experience it is really straight-forward:
1.  Make a list of sites and blogs that regularly post the important stuff, if possible subscribe to their daily letter or news feed.
2. Whenever you have some free time, or when you need a break of what you are doing, go over these sites and mails making notes of the stuff that sounds interesting or important.
3. Set time aside and instead of surfing through facebook or playing solitaire review the articles, download and play with the new software, or simply think about how you can use the information you just read in your day-to-day work.

Once you start doing this you will see that not everything you read or “play with” will be worth using, many times it will be as little as 10%, but with time and experience you start differentiating gold from dust quickly enough.  And even when you learn and try something that is not good enough, the experience will help you to tell your company why not to use this when someone brings it up in a meeting 3 or 4 months from now.

7 habits of highly effective testers

Posted in Best Practices, Management, On-Going Improvement on September 17th, 2009 by Joel Montvelisky – 1 Comment

I’m currently reading a book by Stephen R. Covey called “The seven habits of highly effective people”, highly recommended if you need to understand how to balance and focus your life and your work.
The book got me thinking about the fact that looking back over my career I have also noticed some habits that seem to be present in many of what I would call the most effective testers I’ve worked with.

The list does not follow any specific order…

1. Context awareness: always understand the higher objective of what you are doing
An effective tester always knows how the task she is doing helps to answer an important and relevant question for the project.
Instead of blindly running tests these testers understand the current context of the project, what areas are important and how to contribute as part of the team. They clearly understand their role within the project and look for ways to play it in the best possible way, based on the current and ever-changing state of affairs.

2. Self awareness: realize your personal advantages and limitations
A good tester knows what he’s good at and in what areas he needs help. This doesn’t mean that he will run away from a task if he has a limitation with it, but he will accept and even look for help without feeling he is being undermined or professionally hurt.
Whenever possible he will try to look for tasks in the areas where his marginal contribution is higher.

3. Hands on attitude: a need to stay connected with the concrete tasks taking place
This is more relevant for managers and team leaders, but an important habit of a good test manager is not to get disconnected from the tasks taking place in his team. Even if this means sacrificing (or better yet, delegating!) some managerial tasks in favor of some manual testing work “in the trenches”.
Not only does this help improve the moral of the team, but it gives real visibility and understanding of the application under test and the real issues affecting the project.

4. Value of communication: explain simply and correctly
An indispensable trait of an effective testers is to be understood.
Not only does she test the correct things right, but she is able to explain to everyone in the team (technical or not!) what she found and how does it affect the overall project.

5. Teamwork: collaborate to achieve synergies
There are obviously tasks that are better done alone, but whenever necessary good testers know how to reach for help or even lend a hand.
Effective testers are usually liked and respected by the whole team, and they understand that teamwork and collaboration are a key to doing things more effectively, faster and better.

6. On-Going Improvement: self & external criticism to keep-on growing
The realization that we can always make things better is a distinctive trait in many of the testers I classify as great. These people are always open to criticism and understand that (in most cases) the feedback comes from a friend who wants to help them improve.
Most importantly, these people are not only open to external criticism, but they develop tools and techniques that allow them to evaluate their own work and look for ways to improve it.

7. Urge to learn: thirst for the expansion of knowledge
Maybe linked to the on-going improvement habit is the one to keep learning and looking for new knowledge sources.
Effective testers will be the ones bringing up new technologies, tools and techniques to do things better; they will try them out, and adopt or discard them based on the results they got. They will surf the Internet, participate in all sorts of forums and communities, and read books looking for new knowledge sources that will benefit them and the team.



The fact that I came up with 7 habits is pure chance and I will be happy if other people can keep adding to this list and take it to 8, 9 or even 20 habits we should all have to be effective testers!

My mom get’s it, the Dev Manager on the other hand…

Posted in Management, On-Going Improvement, Test Process on August 23rd, 2009 by Joel Montvelisky – Be the first to comment

Just read a thread in the softwaretestingclub about explaining testing to your mother, and it got me thinking about the subject and 2 conversations I had this passed week.

The truth is that initially I was not able to explain to my mother what I do for a living, I will give that credit to my wife who did it during one of my mom’s visits to see her grand-kids.

In any way my mother now get’s it, and some days ago I was even able to explain to her the added value that testing brings to a development organization, not only on the way we find bugs in the system; but also in how we shed light into the quality/stability/usability/fitness-for-use of the product under development, and how we help the team to improve the development process over time.  I think that even Michael Bolton would have been proud on how I was able to define it in simple therms.

Now comes the weird part, last week during my visit to Costa Rica I was talking to a Development Manager who assured me that they didn’t have a need for testing.
They are a company producing custom-built applications for the local market and he assured me that (1) his developers did a good enough job in writing quality software, and (2) he had a good relationship with his customers who reported the issues they found on the system.  He even gave me some of the names to show they were working with serious companies.

I decided not to pursue the subject, after all it was only random chat over coffee in the office of a shared friend.

Then, by chance, I happened to meet one of this companies “happy customers”.   I could not let the opportunity pass and I asked them about the software they were using from the Software Development firm.

Let’s just say that he was less than happy about the product:
(1) Apparently it took them about  50% more time to finish the application than they first anticipated.
(2) There were important parts missing, or that didn’t really do the things they were supposed to do.  So even after the first delivery it took 2 more rounds to get a product that could do “close” to what it was supposed to do.
(3) Constantly they were finding bugs and reporting them, this actually made the end-users feel very insecure and unhappy with the application.  It also made it necessary to get urgent patches and general upgrades each 2 to 3 months to handle the issues they found.  Obviously they were not paying for these upgrades and they were not part of the initial product plan.

Overall he said that they had now a working system that was not perfect or what they had initially in mind, but that it got the work done and it was enough for them at least for now.  He also said that he was not looking to replace the application, but they had decided to go to a different Software Development Company for a new project that was now under development.

For me the last comment was the key, after he had experienced the whole lifecycle with his initial vendor he had decided not to work with him further…

So apparently my mother now get’s what it is that can be achieved by a good testing team; but apparently there are still some Software Development Managers who don’t really get it, and are loosing business because of it.

The Value of Peer Reviews (& why we don’t use it more!)

Posted in Best Practices, On-Going Improvement on June 28th, 2009 by Joel Montvelisky – 2 Comments

I am presenting the subject of Testing Intelligence on next month’s CAST Conference.

One of the things I like about the CAST approach is the fact that they promote the dialogue and (safe/constructive) discussions around the topics and sessions presented, allowing presenters and audience to gain from the experience.

The other thing I like, this time solely as a presenter, is the fact that even before the event starts you begin getting feedback on your paper and presentation in order to reach your session as ready and “polished” as possible.
In my case this means that some very insightful people went over my paper and gave me good feedback that will make it more focused and help me communicate my message in a clearer and more effective way.

Last week I was busy providing an ISTQB Certification course (will write more about it later).
There is a whole chapter in the course dedicated to “static testing & reviews”.  Two central objectives of this chapter are (1) to emphasize that reviews can be done on any document; and (2) to explain that the value gained from reviews is extremely high even though people tend to underestimate this value.

I think that the review process for my CAST paper is a great example of these 2 points and some additional personal inputs I just realized.

Going back to the feedback I got on my paper, the reviewers asked questions that made me realize my paper did not communicate the message in a clear way.   They also offered suggestions to make it more easy to follow and comprehend.  And finally one of them gave me and idea to add to the initial model to make it more robust and applicable to more organizations.  In short, I GOT EXCELLENT FEEDBACK FOR FREE!!!

The funny (or sad?) thing is that I had not thought of asking for feedback or peer reviews before I submitted this paper, or all the other papers I’ve published in different conferences and magazines up to now…
This made me wonder why, and come up with a couple of interesting thoughts on the subject, at least focusing on myself.

Why didn’t I seek feedback previously?

1.  I was not sure I would get real value.
I had not realized that there are exceptional colleagues out there that take the time to do a thorough read and provide insightful comments just for the sake helping out.

2.  I was afraid of criticism.
I think this is true for all of us: we are afraid of rejection or getting hard criticism on the things we hold dear, even if we are talking about an idea or a paper.
Then I realized it is better to get a partial or total rejection earlier from people I trust, than later from total strangers.
In any case it is not easy to get comments and criticism, but it is definitely something we all need to work on.

3. I didn’t realize it would be so easy.
I never thought it would be so easy to get the feedback in the first place.
There really are (high quality) people out there willing to take time of their busy schedule to help you out just for the sake of good comradeship.

NOW I’M SOLD!!!

I made a mental vow to make sure I reach out to my peers and colleagues and ask for their feedback whenever it might prove valuable.

Since nothing in life is free, I am also opening myself to anyone who would like to get feedback on the things they are writting/developing/thinking/etc.  Just drop me a line and I will do my best to serve as a white-board where you can bounce your ideas in order to get (hopefully good) feedback.