"Some birds aren't meant to be caged, their feathers are just too bright"- Morgan Freeman, Shawshank Redemption. This blog is from one such bird who couldn't be caged by organizations who mandate scripted software testing. Pradeep Soundararajan welcomes you to this blog and wishes you a good time here and even otherwise.
Showing posts with label consulting. Show all posts
Showing posts with label consulting. Show all posts

Tuesday, January 03, 2012

How Pradeep teaches software testing - Part 4

If you didn't know how Part 4 came up? Here is how it came. I first wrote Part 1, then Part 2 and then Part 3 ;-) So, logically here is Part 4 of the series How Pradeep teaches software testing.

"I know how to do certain types of testing but if someone asks me to explain what I did, I struggle to explain" was a problem statement I heard from a tester today. I replied in a confident tone, "I know why that happens. It doesn't just appear to be your problem but I know a lot of testers who appear to have the same problem." 

I continued, "You should consciously practice explaining what you did, first to yourself and then to your colleagues although they probably know how and why you did it. Why? I am going to explain how your brain works (or how I think it does). It has two nodes. One that contains what you know and the other that controls your explanation of what you know. When you make a conscious effort, you are forcing a connection between these nodes in your brain. When you force your brain to connect those two nodes too often, at some point it will judge the need for a permanent connection and create it for you. After that you have a free flow of what you know and your explanation of what you know." 

After I said the above, I could see a smile in the face that reflects, "Yes, I now know how to solve this problem". I read a person's understanding not by their head nodding or when I hear, "I get it", but by the emotions and expressions on their face and the body. 

James Bach identified that I was a metacog. I didn't know I was one. After that, it has been very helpful for me to understand why I do things the way I do. I guess I turned myself into a metacog because I thought it suits the kind of testing I wanted to. It's not a special status, it is just a way of life.

I don't even know if the brain works the way I explained it to be but I guess you can understand why the above explanation makes sense. I make sure I tell people that I am not trying to misinform them about anything when I use such examples. I am just helping the tester imagine why there is a problem and how to solve it. A lot of my coaching is consulting.

Examples like the one you read above govern a major part of my coaching. I observe a lot. I practiced consciously making connections between what I have seen, heard, thought, experienced and know to being explain it when the context demands.

Analogies and Examples are powerful approaches to teaching. I need to know what connects to my audience very well. Although all my audience are testers, I can't use the same analogies and examples, it just doesn't work. Bangalore testers need a different example than those in Pune. In Pune, I would talk about Raj Thackery and in Bangalore I would talk about Vattal Nagraj, in Chennai about Goundamani and not about Vattal Nagraj. Now, for those of my readers from United States or Europe, you wouldn't know Goundamani or Vattal Nagraj and hence I would use examples of Chuck Norris, Sarah Palin, Julian Assange. If you are a F1 fan, I'd talk about testing through specific GP incidents. That's how the examples need to adopt based on audience. I also use a lot of examples from what I think the world connects to. For instance, I closely read and watch Air Crash Investigation in Nat Geo channel. OMG! There is so much to learn from the way NTSB (National Transportation Safety Board) deals with it. So, basically as a coach, I have to keep connecting to various thoughts and happenings to be able to connect with my audience. 

Similes, Metaphor or if you choose to call them Analogies are interesting and tough piece of cake, if you are the one providing it. People tend to take it in their own interpretation than what you intend to. It is good in a way, I get to learn when not to use what type of analogies to what kind of people :)

I use Fishing for explaining test coverage. I know a few other people have already used fishing as an example for teaching testing, so I didn't invent it but I know how to explain different concepts of testing with the fishing example. I think that most learning happens when you are interacting with the audience and not when you are explaining. That's where I do better with the fishing analogy.

I start drawing different types of fish, from guppies to clowns and from star fish to sharks. I then draw a size and shape of a specific type of net to catch fish. I give them a goal of catching as many different fish as possible in a limited amount of time. Some audience come back and tell me, "Ah with this net the guppies will escape"... what's your immediate thought? You would tell them to build a net that has smaller squares to catch guppies?  (Why say it? They know it) I would probably be Pradeep and say, "Fantastic. A lot of time spent celebrating the success of finding one good bug steals away the opportunity to find more good bugs. How do you want to celebrate? 3 minutes left."

So, after they come out with strategy and different nets, I tell people that just because they have nets (tools) to catch a specific type of fish it doesn't mean they can really catch a plenty of it. I then tell a story and examples from my life. One of them: I consulted for an organization who had bought an expensive automation tool hoping that they would now be able to find more bugs. They spent all their energy to set up tests on it and found fewer bugs over the year. I drive points like: Tools don't help you unless you know how to help the tools to do what you think they can.

For a while people think it is possible to catch a shark from a net. It is possible, maybe. I explain how a powerful shark can bring their boat down if they try to catch it through a net or a fishing rod and how a harpoon is better than a net. Sometimes people try to think of similar approaches to solve many different problems. The example of shark, net and harpoons are cool for people to relate to something they have done in the past that shouldn't have been done the way they did it. I then equate different types of fish to different quality criteria. I ask my audience what type of fish are they mostly catching and I hear a shout, "Functionality". 

After a lot of back and forth between me and my audience, we all discover what good test coverage could mean. I then start probing into their projects and figure out how much of fish they are missing that they shouldn't be and try to help them understand why they shouldn't be catching too much of the same fish. Sometimes it upsets the food chain :) 

While there is fishing in my class, there is also plenty of room for Sine and Cosine for Test Techniques, Brian Marick's Minefield Analogy for Regression Test Strategy, Tom and Jerry examples for How Scripted Testing is dangerous, what lessons can we learn from Saurav Ganguly's come back, how to read Sachin and Kambli's career graphs, farming... It must be fun to sit in my class. I don't know, I have never been able to.

Happy New Year!

Thursday, September 29, 2011

TASTRO - Tester's Astrology by Rrajesh Barde


One of Moolya's customer, a large IT company in India wanted me help a group of testers think beyond the boundaries they had accustomed to. They wanted me to help them bring out the potential and creativity of testers within their organization. Having thousands of testers,  they did know where to start from - the top 30 they had. Top 30 in terms of demonstrated passion for software testing.

The icing on the cake, they wanted their testers to progress towards becoming brainual testers.

A group of 30 testers were introduced to me and I spent time for a couple of weeks with them on various activities. We ended up doing so many good things together that we accomplished the mission together. There were plenty of great work that they did. Now, those 30 have been successful in inspiring 30 more and this chain reaction is appearing to happen. If it goes on, I am sure this organization is going to rock in the coming years.

Somebody impressed with how I mentored these 30 asked me, "Aren't you giving away all secrets of how testers in Moolya test?", to which I replied, "There is no secret. This is how we test and this is how we live". There is nothing to hide. We don't have any secret ingredient or a secret ingredient soup unlike many services companies. We have watched KungFu Panda and hope you too have watched it. We focus on our skills. Our website tells that story.

In this post, I want to highlight the creativity that came out of the exercises of Brainual Testing.
Rrajesh Barde surprised me that he had been reading my blogs ever since I started it and he told me he had also commented on it. I was glad to meet my oldest (well, he's pretty young) blog reader. The only question I asked him was, "Was it worth your time?"

This guy turned out to be hyper creative. He had a sense of humor, lateral thinking, passion to test, leadership and creativity. We were brainstorming of how do we educate testers without letting them know they are educated. Of course, books are boring to most. What content do we feed them with? We discussed on Andy Glover's Cartoons for it. However, that didn't solve the problem of testers within their organization being able to see Andy working with them.

So, Rrajesh Barde in the meeting interrupted, "If I may, I have an idea..." and then came out with this brilliant idea of TASTRO - Testers ASTROlogy. In a country like India, a lot of people refer to Astrology. They at least want to read if there is something good in it for them. I thought that was a brilliant idea and we had to develop it further. We needed to mix fun and pun into it. We needed the learning touch. We needed people to look forward to their weekly TASTRO.

Here is what we got:


TASTRO – Tester’s Astro – What do your test signs foretell?
Aries

Your stars look good for coming week however you might face an environment downtime. Why not make a quick checklist on how to set it up?
Taurus

Avoid calls during Rahu Kaal. Those who have calls with your on-site coordinators during this time, Beware!!
Gemini

The planetary movements suggest that the build scheduled on week day will be delivered to the Testing team on Friday after sunset. You have plenty of time to read Rapid Software Testing Appendix and practice new testing ideas.
Cancer

Though you think you know it, you have no certainty until you try. You might see a surprise appreciation for your smart work. Smart work could mean, you use oracles to test.
Leo

You are worried with unplanned work load. Read the book – Lessons Learned in Software Testing at home and you may see the change in office.
Virgo

Worried why you your productivity appears to have come down? How long has it been since you took a break? Quick breaks between test sessions are important.
Libra

In the busy times, be prepared to work late, eat pizza for dinner at work, and work for some weekends. Don't wanna do that? Go beyond test cases, you will find more bugs.
Scorpio

There is a chance that your relationship with developers would go sour in the coming week. So treat them with chocolates. Developers are rich source of information for a tester.
Sagittarius

Your customers would be under the influence of aggressive Mars. You would be forced to test whatever is thrown at you. Check for the mission to be achieved to avoid falling into traps
Capricorn

You would be trying to achieve the stars by clicking here and there with your monkey paws. Stop doing that and your career could get better.
Aquarius

Your managers would somehow have a strong notion that you have just been marking those test cases as “pass” without executing them. Honesty is important for a good tester.
Pisces

When you have crashed the software and waiting for the system to boot, prepare your own test idea cheat sheet. For those who do, future has been bright.

Isn't this awesome? I feel testers like Rrajesh Barde are a huge boon to our industry. The beauty of my consulting was, I felt there wasn't just one Rrajesh Barde I met but many. I may cover about others in future posts.

A couple of years ago, I used to go to a consulting assignment as though I am superior and I consult people because they were inferior. These days, I go to consulting to get humbled by people like the ones I met.

Please, everybody, stretch out your creativity, you would find an Andy Glover or Rrajesh Barde in you. For those who want to follow Rrajesh's blog, here is the link. He came out with another concept called Bug Burji (Burji is a dish made out of Egg and we call it Egg Burji, Rrajesh made a Bug Burji out of it). Rrajesh, you inspire me. I hope after reading your work, a couple of others may join me in admiring your work and contribution.

I am telling myself that I was born to witness this beginning of the golden era of software testing. Don't know if you can even see what I am experiencing.

Tuesday, May 10, 2011

A letter from the worst Agile Tester in India

Dear Blog Reader,

Greetings!

Hope you all are doing something in life and I don't care about it. I would like to introduce myself to you. I guess you don't know about my split personality disorder. My name is Pradeep Soundararajan too. No, not the guy you know but this is his split personality. The split personality is - I am the worst Agile tester from India. Yet, I am smart enough to be able to survive in this industry because the industry is structured to pose challenges to good testers and not for people like me.

What makes me qualify to be the worst tester is I don't squeeze my brain to test, don't care about the project success or what happens to my employer because I can always find another one who can hire me. Thanks to the most advanced interviewing techniques for a tester that ensures people like me get jobs.

As a matter of fact, I wasn't as confident as I am today about my survival in IT industry a couple of years ago. Ever since my management went to attend a conference where lots of people spoke about Agile, we were given a goal to ensure that even we become Agile. Thankfully, it didn't matter what Agile means or what Agile Manifesto says. What my management got about Agile is - to be calling ourselves as Agile, we need a stand up, a scrum, a sprint, some tests called as acceptance tests, developers and testers working together and oh business analysts writing bed time stories for us.

If our context demands to change the stand up to sit down, we won't because you see, we are AGILE and Agile to people like us means - don't change anything that will prevent people from recognizing that we are not Agile. Simple.

Our Agile coach and certified scrum master, in order to retain their jobs, appear to read a lot of blogs where people post their Agile experiences. Without probing if it suits our context or not they bring in best practices which are ideally ideas shared on blogs. Bloggers do a fantastic job of posting things that appears to work for them or in simpler words - pretending to work for them.

Once there was a white board added to our work place and a few sticky notes on our desks. We just thought we had to use these new tools to continue being called as Agile and we started writing down tweets (as twitter was blocked) on sticky post it notes and pasted it on the white board. It delighted our scrum master and agile coach. They even blogged about it.

Early days, the industry was wrong about making the tester sole responsibility for quality. These days they are saying quality is everybody's responsibility and that's a huge relief for people like me who are pathetic testers. All hiring that happens and the interviewing mechanisms ensure irresponsible people like me are favored for the job.

The industry will never learn that quality can never become responsibility of all irresponsible people of the project. However, by having said quality is everybody's responsibility, my burden has come down. I now share the blame well with all other people on the project even when I know my job was mediocre.

I have figured out a formula to make my life smoother than how it was earlier. I am presented with stories about the changes to the product or new additions and I need to write tests that meet the acceptance criteria. Business Analysts test for the acceptance criteria at the end of the sprint before signing off to push a build into production. So, my job is to sit with the BA's at the start of the sprint and figure out what their acceptance tests are and that's it. I mean it. That's the formula.

Do my developers care about TDD, Unit Testing their code or anything of that sort? No!  I don't bother to ask them those questions because if I ask, they would also ask questions on my work and I don't want that to happen. My organization posted millions of dollars of profit, it could have actually been billions of dollars but hey only if people like me were out of job. As an organization posts profits, the management is fooled to believe that they have the right people with them. They hardly know anything about their customers. Today's customers are so ignorant to software quality that they would figure out a work around than yelling at the company. They love the "Don't send" button.

The IT industry in India thrives on "head count" and not brain count and I am a billable "head" to my organization. As long as I am a billable head, my job is never going to be threatened. Do you think the US companies will pull out of India? No, they want cheap stuff and that's why they come to India. How does India deliver cheap stuff then? Its by hiring people like me who don't mind not doing great stuff as long as I am paid just enough to keep running my home loan, car loan and my wife's shopping expenses. If converted to dollars, that's still way short of what a US fella would get. There are some expensive folks in India but they talk a language that people in US think as not scalable.

Most Americans themselves don't appear to get Agile and asking Indians to do something good that they haven't got is super fun. They won't know how to track and we won't know how to produce and it works out as a perfect job saving combo for all of us. Unfortunately for those who have put in their money, the cost of pulling out is so much that they are stuck to indirectly beg us to do something to make things work. I once went to an Agile conference in the west and found that the leading agilists are complaining about their own countrymen for being bad Agile folks. I returned with confidence that we are just aping the major population of Agilists of the west and to an Indian, it is perfect to ape the Americans way of producing software.

When things go haywire, we bring in some consultants who are so passionate about agile (notice the small "a"?) that they wouldn't know they are shifting their role from a consultant to a contractor. They would do the "just enough" needed to make our biggest release, clean some of our mess and then go away. While they are here, we will treat them well and make them feel so good that they think they have got a great client and when they go away, we don't bother about what they did till our next major release.

The sprints are so beautifully positioned and the activities are so amazingly structured that I can easily blame the sprint for not being able to learn anything new or add any skills to what I might currently possess.

Every now and then, I pick up new terms that western folks talk about just to ensure I don't get intimidated in interviews. Be it Scrumban, Lean-Kanban or Lean Scrumban. If some interview questions are too intimidating then I simply remind myself of having read Brian Marick's Artisanal Retro-Futurism crossed with Team-Scale Anarcho-Syndicalism. I don't get a head or tail of it and I don't care either as long as I can tell my interviewers that's what I do. If asked to explain, I know how to obfuscate it further.

Good testers don't get the point of life and that is - some people have money and others need to extract it from them without needing to work hard. Good testers are specialists, they only specialize in how to test well. There is a need for generalists in this world, who can learn how to make money while not testing well mixed with not knowing how to code.

My life moves on but the good testers appear to be stuck trying to explain guys like me what should be done. Note, you can't move an inch out of us and we outnumber you so much that your life is as painful as having cancer all over your brain.

I am starting a new certification program - CTBCIA.  "Certified to be certified in Agile". This is skill based. I will test how long you can stand up, how you hurry up when a sprint is about to finish,... If you are from any other country, please email me, we shall expand our certification business aping the success of ISTQB all over the world. Once we have a local chapter in your country, we can make more money through conferences and selling our training programs which are feeders to our certification program. Don't worry about marketing, leading agile consultants of the world will talk so much bad about our certification that they will attract our target customers to approach us.

If you want to be a successful Agile tester, trust me, you don't need to know anything about it. Mostly because the people running the project themselves have no clue. Learning about being agile can damage your brain cells and your career.

I really don't care whatever you choose to do because you don't care for me. Humanity and software are two opposite terms.

Regardless,

-- Pradeep Soundararajan ( The split personality guy, not the one you know)

Friday, December 03, 2010

Who is making software testers, dumb and bad?

Not so long ago, I thought there existed a set of testers called, "bad testers". I hated them. I wanted to punch them on their face and get their face to bleed. I wanted to become a powerful politician and kill them all and escape without being charged for genocide. I wanted to become a superhero and get people to fire them from their jobs. I wanted them to beg for jobs, money and survival. I thought that is the way to get them to open their minds for learning. All this should have shot my blood pressure up while those bad testers remained cool. They were untouched by my criticism and continued to think that I was an asshole.


Whenever I found them, I insulted them as much as I could till I realized that they needed more care from me than those whom I was already caring about. I started caring for them. My world changed and so did theirs.


I was always wondering how these bad testers are happy. Needless to say I thought I am a great tester and still continue to think that way. By "great", I mean, "just what is required". Today, you can be a great tester by being just what is required. Tomorrow, the case might change.


I tried shifting the question from "Why are bad testers happy about themselves?" to "Who is making these bad testers happy?" and "Who is preventing the bad testers to learn that they are doing bad testing?"


That's when I said to myself, "There are no bad testers. There are some who are forced to practice bad testing. The force is either internal or external or a combination of them".

That was an important shift in the strategy that helped me in my exploration of identifying what factors cause a tester to appear bad or practice bad testing.


Internal forces 
I mean, ones that the testers themselves are responsible for or have control over.
  • Money more important than anything else: For some testers who are sole breadwinners of the family, they might internalize the idea that what works for others is a safer route to traverse than exploring new paths and risking their cash flow. They spend their life traveling those peoples route who themselves have followed someone else's route. All finding it to be safe and hence not wanting to change.
  • Fear of losing the job: For some testers, losing a job means unbearable social pressure. These testers don't ever try to speak against anything to protect their jobs. Their whole life is spent on running just one test case - Is this the right time to shut my mouth? - to which the result always remains - Pass.
  • Shallow ambitions in life: For some testers, their ambition is to never do something fascinating but just run the rat race, build a house, buy a car, get married & have kids. They also try to ensure that their kids continue to run the rat race. I am not speaking against taking care of the family but taking care of the family should be balanced with building high ambitions in life and working towards it.
  • Victim of Rutherford-Bohr's experiment: Some testers, no matter what exciting stuff they are presented with, try to return to their most stable state of ignoring all the exciting stuff because their life is already happy (grounded). 
  • Living someone else's dream: Some testers, don't have dreams of their own. They just pretend to have their own while they are living other's dream. Some live the dream of their parents and rest their manager's. Living others dream makes their life boring and they give up on almost everything, forget testing.
  • Taste of early success causing a drift from continuing to learn - Mostly a very dangerous one. These kind of testers think they are on the right path and there is no reason for them to change. 
  • Having learned that good testing is hard - Some testers acknowledge what good testing is but they also learn it is very hard to test well. Out of that, some of them make up their mind saying they are not in for such hard work because they think life is bigger than doing good testing. Nothing wrong but they don't seem to be doing to the big part well, either.


External forces
I mean, the ones who are responsible or has a power or influence to get good testing done.
  • Head or Tails of testing - I have talked to at least slightly less than a hundred Heads of Testing of big, medium and small scale organizations. They have so much power to change things and yet they don't seem to be doing anything about it. I must also admit that some people are doing very well while most don't appear to be. Why don't these people take a break from their work, sit along testers on one of the project and test for just a couple of days to realize how hard it is and what can they do to help these testers do a great job. 
  • The interviewers - At least people in India, when they are out of college, want to just learn enough to crack an interview. When interviewers emphasize on demonstration of memorization than skills, its easy for a billion plus population to crack them. Fakers get in, Genuine people might not.
  • Testing institutes - Business demands scale, I agree. Scaling at the cost of quality of education is in my opinion, spoiling your own country's chances. Please read the book Outliers by Malcom Gladwell and more specifically Chapter Five - The Three Lessons from Joe Flom. You'd know what your business needs for future if it has to remain scalable.
  • The experts - If you have great ideas, please price them a little lower for the first few years or based on the geography. You won't be considered cheap, trust me. Don't make money an entry barrier to someone who wants to get excellent at testing. 
  • Commercial conferences - If you have have had good deals of sponsorship and paid delegates for a specific year, consider giving 80% discount to 10 people who cant afford it but want to attend it.

Combination of internal & external forces
When the external forces & internal forces combine, its a killer combo for bad testing
  • Lack of speed in firing poor performers - If the people responsible to get good testing done are delaying in firing poor performers then the hope in the poor performer rises that he or she is doing well and should continue doing that. In at least half the organizations I consult, I get the opportunity to consult because they haven't fired the poor performers for a long time and something went kaput.
  • Not paying good testers well - I have been to a few conferences in India where Head of IT or Head of Dev or Head of Testing are keynote speakers. Their speech is usually, "We have come to realize that testing is of great importance" but then they don't match the pay of the good testers they have to their claims. People call that "keynote". Can you walk the talk?
  • Waiting till the year end to spend on training budget - Wondering why many organizations keep their training budget till the year end and not organize a training when the team needs it sometime mid year? As a side note, I wish, in India, the Learning & Development department, which is a separate entity in the organization is eliminated and every department becomes Learning & Development apart from what they do. 
  • The book writers - When you write books that are not different from any other books that are available, you are re-iterating the point that the industry isn't changing. Many testers who accidentally pick up a book and skim through it read stuff that they have read a couple of years ago feel they are on track (and also end up not buying your book). Is that a message your book wanted to communicate?

I am 30 now. I am more curious about my age of 50 and waiting to get there, because I hope, I would have seen many changes - lots of positive ones. Mostly because the generation to which I belong or the generations junior to that of mine would have solved the problems I have listed and might have gone beyond that. I am not discarding the fact that the older generations have not solved it. There are dozens of them out of a population of millions.

When I tried punching just one bad tester I met, blood oozed out. Not on the face but in my hands for it was a mirror that I saw. 

Sunday, October 03, 2010

The domain particle

The inspiration


The title is inspired from Angels & Demons where they talk about the "God particle". The topic is  inspired by so many testers asking or answering to, "How much important is domain knowledge?", "Can we test without domain knowledge?", "What happens if we test a product or technology without domain knowledge?" ... 


Every person who writes in public and in forums have been asked these questions about the importance of domain knowledge to test a product. Going through those forums, you'd know that there are answers like : Yes, domain knowledge is very important to test a product OR Oh yeah, you know without domain knowledge I couldn't have found the show stopper I found a few days back...and others saying, "I did manage to learn quickly, so it doesn't matter as long as you too can", "I think it depends on what you are testing"... 


Passing time by failing to respect others time


The question I have to most testers out there is. If we, who reply to all those questions of yours, say that it is very important that you should be an expert of the domain to test the product, are you really going to become one or even try to? 


You are aware that bug investigation skills are important, without we having to say that, what have you done about that? or would you go pick up the test framing skills?


I am convinced that there are many hundreds and thousands of testers who are a trap not just to themselves but to others wanting to help testers. Every testing related forum is infected with people asking questions who actually don't intend to do anything about it despite unintentionally (or maybe intentionally) wasting a lot of passionate testers time & energy. There are genuine people in there but in a rare occurrence. Most genuine people aren't asking questions but answering them and not all who answer questions are genuine. You may want to consider me among those who are answering questions but not genuine, if that pleases your ego.


I have respect for CDT mailing list and Software Testing Club. There are serious people, asking, answering and watching. I just hope there are a few more forums like that.


Why do we have labels?


Some testers are in a trap of calling themselves "Telecom testers", "BFSI testers", "Web App testers", "Mobile App Testers", and what not? The question I have is, should it matter? BTW, I call myself an exploratory tester because its an approach I follow to test any software & not a domain.


As how programming is a mindset and a good programmer wouldn't call themselves "Java only programmer", testing is a mindset too. Oh, there is a skillset along with the mindset.


Henrik Andersson of Sweden is going to do a Webinar on October 12 : Do we need labels? Are we all not testers? I read the abstract of the webinar and was excited. I envy Henrik a lot. He is the guy who is blessed to be in the happening places - be it PSL, AYE or CAST. Other than that he is the energetic test consultant & partner at a testing consulting firm based in Sweden. I think you all should register and listen to what Henrik has to say. 


Henrik made me ask these questions: Why am I calling myself an exploratory tester, rapid tester, and whatever fancy stuff I had been calling myself when I know all testing is to some degree exploratory? What is the need for me to do so?


I need a label to differentiate myself or to communicate to people what I specialize at. My label helps my potential clients to gain interest to check about my services based on their needs. My label acts as a filter. People know what questions to shoot me. So far I have received very few emails from people asking if I can help them record and play QTP scripts. Most emails are about seeking help on how to develop themselves, think & test. I love to talk to them because they teach me things I want to learn.


So, I see label as a filter but I am against the labels that filter my own opportunities to learn. For instance, if I call myself a "Multimedia Tester", I would have blocked my learning on many technologies and contexts that I have experienced. I am starting to use "Brainual tester" these days. I am also giving a lightning / lightening talk in GTAC this year about it. James calls it Sapient and I call it Brainual. We both worship the same God but we call them in different names. I prefer the word "Brainual" because it is quicker to replace the word "Manual" to those who see "Manual" as a hand activity of testers than brain. People are used to saying, "Lets automate those manual test cases" but I expect the reluctance to set it to say, "Lets automate the brainual work thats being done now".  Their own ego would hurt them. They don't want to be seen as a fool.




Filter-less


Being a consultant and added to that the twist and turns I have had in my testing life has got me to test software ranging from wireless, mobile applications, medical devices, multimedia, Retail, CRM, desktop applications, dating applications, billing solutions, video surveillance, stock market, auction systems, kiosks, cloud computing, testing tools, games and what not. I have never bothered what domain each of them belong to as long as I have 
  • An understanding of general principles of how software works (which I constantly refine)
  • A skill to quickly learn and convert the learning to tests & churn more learning out of it.
  • Ability to build models of learning to speed up my learning.
I try understanding how people who invented things might have thought. I fancy thinking that all these technologies have emerged out of observing something. Some of the key observations about human being and living things have led to many inventions and discoveries. Should I tell you that birds were an inspiration for Wright Brothers?


The human connection to technology


# 1 DHCP as to how it has evolved out of human behavior : When we go to the theater to watch a movie, we ask the personnel at the ticket counter to check if there are tickets available for a specific movie (sending request from a client to the server) of what we want to watch and our preferred time (details about client to see if server has anything for us). 


The ticket counter personnel in the theater gives us a ticket based on availability (assigning an IP address from the available pool) with the seat numbers to watch the movie.

In the ticket, there exists a seat number ( IP address ), duration of validity ( lease period ). If you prefer to watch the movie again and in the same seats ( Static IP ) you need to advance book or renew your tickets  
( ipconfig / renew )


# 2 Why do connectors have a male pin & a female pin? How did gender come in to technology without having observed humans and how they interact?


I have a huge list of things that computers/ technologies do which are based on how humans communicate or how humans could have. Think of SIP protocol or a client server host architecture and relate it to human communication. You'd probably enjoy as much as I do.


Simplification


In Rapid Software Testing class of  Michael Bolton & James Bach, there is an interesting dice exercise. I didn't crack it the first time but on learning the meta pattern, I am likely to crack it for any pattern or will get closer to solving it.


I have my own version of the dice game but with a different learning objective - simplicity. Based on running the exercise on thousands of testers in India (and a few folks outside India), I am making a conjecture that I see people struggling to cope up with simplicity. 


The first set of thoughts that comes to a human mind is not necessarily simple and the next set of thoughts are usually more complex than the previous ones. So, I think humans keep building on the already existing complexity of their previous thought.


Unless you train your brain to think simple, you are unlikely to crack many things you can.


The reason I am telling this here is because those who set out to learn a new domain forget that there are simpler sub systems of the domain they already know either because they also exist in other domains they have tested or have used such products extensively. You may want to figure out the meta pattern of software & how they are supposed to work. 




Practice to be fit


Quoting Parimala, "What you know is not as important as what you can do with what you know". 


I run an exercise in my workshop in which I allow people to do freestyle exploratory testing. At the end I ask them the techniques they consciously used while testing. Although many of them know many techniques to test, at least the first 10 minutes of most testers freestyle exploratory testing is, "Clicking here and there to see if a bug dances out on the screen" If a few bugs do dance, "Wow, you see I did exploratory testing". I think of that as an inferior self standard setting to understanding exploratory testing.  


How do we use what we already know to achieve better results? PRACTICE!


The biggest shame for ISTQB / CSTE certification bodies doesn't come from those who oppose it but from those who are certified & don't show traces of having gained anything from it. I have consulted at least for a few organizations here in India who hire these certified testers. Not a single test case document that these certified testers have produced has anything related to what they might have learned from the certification. 


There is a scripted test design technique that is a best practice and the most widely used one although it doesn't have a name - copy paste a sentence of requirement document into expected results column and then write the test steps accordingly. This is the most successful trick ever invented in testing. 


As a side note: Do you play any outdoor sport? Have you taken a long break from it and then went back to it? You might have been good at it at some point but when you get back after a break, you no longer feel the same comfort you had. If I were to speak to Indian testers alone for a moment, how does it feel to hold a cricket bat and face a fast bowler after taking a break from cricket? 


Bits & Pieces


I admire ants. They have a way to deal with problems. They don't say, "Oh my God! That cake is about 1000 times bigger than my size. How can I eat it?". They break the huge cake into bits that they can process, carry it home and then come back for the next bit. Doing it bit by bit helps them to achieve the goal of moving the entire cake into their colony.


While testing a product whose domain / technology that I don't know, I try to remember the ants. I learn one bit, use that bit to frame tests. The tests I perform with the bit I learned, help me learn about more bits of the system and I choose to eat bit by bit or byte by byte if my mouth has got bigger.


I may know nothing about a system when I start but at the end I can learn so much about it that it would amaze me or my audience if I tell what I discovered going bit by bit. I demonstrated this in one of the workshops where I learnt the user base of the website, traced the kind of users, identified why those users might be coming to the site, what kind of problems such users might be facing, what kind of tests to be run, what could be the most important problems that is making the audience to not give more sales + found 14 issues + 10 questions to the developers - all in one hour. I had enough feedback to the development team that they got busy working on a few things that gave me the time I wanted to go learn what I wanted about the product.


Live oracles


What are the business analysts doing? Are your sales and marketing folks so busy that they don't have time for you? How much do you interact with them? Have you invited them for a paired testing? Have you talked to them about the importance of they being with you for an hour in a month while you are testing?


If that's one set of questions, here is another set: Why in the world do you want to know everything about a domain when you know its not possible for any human being to do that?


Fooled by foolishness


Some organizations who hire testers only because of their domain knowledge, are fooled in other ways such as, those testers probably know little about testing to be called as testers. Its opportunity cost. I have spent all my time trying to be a better tester, you ask me to troubleshoot a network router, I may end up testing it or learning about it by testing it. Ask a network admin to test a router, she may end up troubleshooting or reconfiguring it.


Some organizations who continue to think that domain knowledge is the most important skill for a tester to even apply or be interviewed by them are blind to the fact that most issues that their customers are reporting has probably got nothing to do with having testers with extreme domain knowledge in the team.


There are tons of testing problems these organizations are not paying attention to, while they see their problems are because they don't have enough testers with enough domain knowledge.


Everyone of us choose to be not fooled by something and that exposes us to be fooled by something else.


The domain particle


Do you have a domain particle that makes you think "domain knowledge" is the important thing for a tester to perform well? 


I don't want to take it out. I want it to be there so that I can help you mutate it. If you could help yourself mutate it, and make the domain "learning" instead of "BFSI", "Telecom", "Multimedia", "Whatever"... I think you would have cracked what you are likely to in 20 years from now. That's an opportunity to be wise without needing to age for that.


Did you say that?


Those who speak about exploratory testing are asked, "Are you saying there is no value for scripted testing?". Those who speak about using brains to test are asked, "Are you saying there is no value in automating tests?". Those who speak about Check Automation are asked, "Are you saying checks are not tests?" while the speaker/author didn't mean any of that. Those who speak against certification are asked, "Are you saying people shouldn't get certified at all?". Those who speak about wasteful documentation are asked, "Are you saying documenting is a bad idea?". Reading some of the above paragraphs, some of you might have had a question, "Are you saying all ISTQB/CSTE testers don't know test design?"


So, whatever anyone says, there is a group of testers aggressively waiting to ask such questions. They are not doing anything wrong. They are just being themselves. Some representatives of the group are likely to ask me, "Are you saying domain knowledge is not needed to test the product?" and I am going to punish them by asking them to re-read this big post.


BTW, I am looking to hire testers of Banking / Web Application domain testers. Please send me your resume as soon as possible. 


Also, if you are a tester from Hyderabad and want to meet Rahul Verma, Dhanshekar and yours truly on 27th evening, email me. We wont mutate your particles! We will be attending Google Test Automation Conference in Hyderabad. 


Post bio for my self reference: Took 5 days to write the first draft, changed the style and contents 3 times, 1 external review, 3 self review, 5 hours of editing and finally publishing it. Published from my cousin's place in Delhi. Laptop: IBM Thinkpad

Monday, July 26, 2010

Tour of being an independent test consultant

Hiya! Hope you are doing very well. I am Pradeep Soundararajan, your tour guide for the next few minutes. I am glad you chose to take this tour of being an independent test consultant.





Here are some questions you might have: How does it feel to be an independent test consultant? What is it like to be one such in India? Will I be able to survive? Will I make enough money to run my family? Will I make as much money as the organization I am employed is paying me? Will I get enough paid work? What if I don't get paid work for a long time? Will people want my kind of skills? How do I know someone needs a consultant? How do I get clients? How will my family take this? What do I explain to my spouse? What kind of a pressure does society add when I am not in any paid work for a while? How does it feel to work from home not just for a day but for an entire month, or maybe a year or more? Will I have enough money to pay my home loan EMI?



These are some common questions that have popped up from those who have wanted to take the tour. So, if you have these questions or maybe even more, you won't be disappointed with this tour.




Some people ask me, "Hey, can you give me a few clients of yours and help a fellow Indian to also be an independent consultant?" I want to help people be independent consultants in India. By that, of course, I mean, I'd like to see them do stuff that helps them get credibility, reputation, paid work and clients for themselves.



I'd like to take you through the journey of having been an independent consultant. A journey that is not so often written or spoken about



Tour Point 1: Knowing enough about enough



If you want to be an independent test consultant, there are some prerequisites that you need to fulfill. You need to be bold enough, skilled enough, curious enough, pleasing enough and willing to talk to people or do some work good enough to get good enough people to talk to you.



That's a magical formula right? No one knows what "enough" means and hence it is a problem and an opportunity in disguise. If you knew what "enough" meant, you are kinda through to anything you want to achieve. I think, not knowing how much is "enough" makes you to work hard and get close enough. Oops, close enough?



I have been able to survive so far. I have no clue if my current skills are enough for me to survive for the next year and I am on a constant upgrade of skills and knowledge. I invest money on learning and my investment for July 2010 is on a few books, Ethical Hacking Guide to Corporate Security by Ankit Fadia & Job Interviews - Walter Vierera. Time is a much more important investment than money for me. So, just by spending money on those books wouldn't mean much unless I make a further investment of time on it.



Tour point 2: Love for failures



Many projects today suffer because people working on it aren't willing to try new ideas. They are special people on earth who know things would fail even before trying them out. However, as a consultant, if you try to be like them, you'd be expensive for your clients. You would do what their employees are doing for a price much higher than the employee cost.



Its important to not fail at a client's location but should that stop me and you from loving failures? I have a lab where I can experiment ideas whose results I don't know yet and that lab is the world of my colleagues, community and my gurus.



It's OK to fail, once in a while, at a client's location because even if you do great stuff, there could be things beyond your control that might make it look very bad. However, if you can get that client to call you back for more paid work in future, it boosts your confidence a great deal.



It happened to me. I was black listed in an organization and now they not just white listed me but want to work with me closer. Their CEO is in direct touch with me. If I feared failing, I would have done more mediocre stuff than what they thought I actually did.



Tour point 3: Excellence instead of money



India is a great place for some inspiring movies. I strongly recommend that you watch the movie "3 idiots". No, don't Google and read the story, just watch it. There are several good messages in it and one of them is, "Excellence instead of money". This movie is a super duper hit in India. I just wish people not just like such movies but also bring in necessary changes to their lives.



I want to be rich but I want to be rich while I am excellent. I wouldn't mind money coming on my way but money wouldn't necessarily make me feel rich. I want to be rich in testing skills and knowledge. I want to be rich in knowing many testers and how they work. In the process, if money follows, I am super happy.



Tour point 4: Don't expect people around you to understand what you are trying to do



When an article about me appeared on a few national news papers, my article was published on a few magazines, I was interviewed by CNBC TV18, I was on news for a local TV channel, my parents were so proud of me that I can bet they were flying high. However, whenever they see me sitting in home for more than a week without any paid work, they start to ask me, "Why don't you join some company like Infosys?"



If you expect your parents or spouse to completely understand what independent test consulting means then you'd be inviting disappointment. I was expecting them to understand what I was trying to do but experience teaches that I shouldn't. This has nothing to do with the respect we have for them but a learning of what we can't help them understand.



While at home, I am glued to the computer, trying to learn something, practice testing or support my clients post my onsite engagement or reply to emails. Some people around me take it for granted that I am jobless. Someone calls me and say, "Hey, you are at home only na, so why don't you come pick our luggage and keep it there?" It irritates a lot. I am at home but not jobless. I am trying to generate a paid work, which is a part of my work. People don't understand that. So, be ready for all that.



Tour point 5: No promotions and no designation change



If you were used to being an employee for long and then chose to be a consultant, you must know that there is no one who is going to give you a promotion. It is what you call yourself that matters. I am calling myself a Consulting Tester or just an Independent Test Consultant. If I am bored of it in 2012, I may call myself a Senior Consulting Tester. I give myself fancy title sometimes. I was calling myself a Test Magician and then I am now calling myself a Brainual Tester.




Tour point 6: Being an independent consultant doesn't mean you are the expert



Without saying much, I am not an expert and I am an independent consultant. James Bach, Michael Bolton, Elizabeth Hendrickson, Jerry Weinberg, Scott Barber, Matt Heusser, Jonathan Kohl, Karen Johnson are experts who are independent consultants. People like Ben Simo, Jon Bach, Cem Kaner, Vipul Kocher, Ashok are experts who are employees. There are some good thinkers and future experts like Meeta Prakash, Parimala, Lanette Creamer, Ajay, Santhosh Tuppad, Sajjadul Hakim, Ramit Manohar, Sharath Byregowda, Shmuel Gershon, Issi Hassan, Markus Gartner, who are employees, too.



So, independent consultants don't necessarily mean an expert. Employee don't necessarily mean a non expert. If I had to be an independent consultant only after becoming an expert, I wouldn't have been one till now. If I don't be an independent consultant, I don't know if I would ever get close enough to an expert while being an employee.



So, if you are waiting to be an expert and then be an independent consultant because you thought there was a strong relationship between them, you could be wrong.



Tour point 7: Tackling loneliness



Even in 2nd most populous country in the world, there are a lot of people I have seen who feel lonely. So, loneliness is not about people not being around you but about people whom you want to be around you not being around you. For me, my first wife is my laptop, just like many others I guess. So, despite having two wives (laptop and the one to whom I am married), I get lots of situations where I feel lonely. Loneliness is not always a problem; its a blessing in disguise. Ask our fellow bloggers, they'd tell you that they churned out a cool post during such situations.



However, being an independent consultant and working from home means, I have no colleagues that I meet on a daily basis. I meet a lot of new people every year but meet the same people very few times. Having no colleagues to meet on a daily basis means frustration at times.



When I go through Facebook or Orkut and see some people posting photos of their team member's birthday party celebrations, team outing to a hill station, team lunch, going to movie as a team... it hurts me a lot. I just take it as though I am in a penance of becoming a good tester and I have to bear with all of it. Recently, I was pissed off when I found no one to join me for a movie that I wanted to go. Even if I did find, their timing and my timing was off. Hey, employees are pissed off too. So, I am still fine.



Tour point 8: Getting clients is like sowing seeds and waiting for them to sprout



We think clients come from a specific place or set of places and we are wrong. When I was a rookie consultant looking for opportunities, Michael Bolton, told me that finding business is like sowing seeds. He also told; you never know when the seeds sprout.



I sowed a seed by answering a question in a forum without knowing I was sowing it. The one who asked the question was impressed and help the seed sprout by giving me a business worth thousand dollars.



When I didn't have a public reputation for speaking, I offered 2 hour talk called "Mirchi Test Masala" for free. This attracted at least seven organizations to have my talk at their office. I was gaining experience of speaking to testers and engaging them for at least 2 hours. I was also testing my own testing exercise on them. This was in 2007. One among the 250 people I might have spoken to during my Mirchi Test Masala tour was impressed with my talk. In 2010, he asked his current employer to have my workshop for his team. It happened. As you see the seed sowed in 2007 sprouted in 2010.



So, if you want to be an independent consultant next year, you should have started sowing at least 2 years back unless clients are just waiting for you to becoming a consultant. Also note that there are other consultants sowing seeds in the same place. If you are skilled enough you don't need to be too bothered.



Tour point 9: Freedom at its best



If you are my blog reader then, "Some birds aren't meant to be caged, their feathers are just too bright" isn't a new thing to you. If it is, please note that the quote is from the movie Shawshank Redemption. I struggled for freedom to test. I saw that I could test a lot better when there is freedom. I also see that many testers can perform a lot better with a lot of freedom and responsibility bestowed on them. The only way I could win freedom to test in India was by being an independent consultant. These days, I am coming across a few managers who want to provide freedom to test but they don't have the curious people in place.



Tour point 10: Managing the tough situation of low bank balance



During August 2009 to Dec 2009 there was no paid work. There were enquiries but nothing turning to work. My bank account went low enough that the bank thought it was expensive to send me an SMS about my bank balance. At that moment, everyone around me urged me to look for a job. It isn't a bad thing to go back being an employee. At least I won freedom for a while and I can always win it back. I updated my profile and started to apply for jobs. I didn't even get a single interview opportunity in Bangalore. What? Yeah, so, no matter how much reputed you are, nature teaches you humility at such times. I dropped my plan to look for a job and look for some consulting opportunities. Again, a seed sowed in 2008 sprouted and I found 2 back to back consulting opportunities. Today, as I write, I have certain things lined up, clients asking and competing for my dates. I have no visibility beyond a certain month in this year. I have no problem with that. I am just hoping that some seeds will sprout.



Tour point 11: Live your dream



3 weeks back, my school classmate died in an accident. It just reminded me that death is not certain of a time or situation. Any day it might strike. I was shocked by his death and asked myself; what if I die today? Also, if you have listened to the famous speech of Steve Jobs, he talks about death and suggests that we work as though today is our last day.



Living your dream is very important. So important that you may not have another life to live your dream. My dream is to be a good tester and if possible help others with similar dreams to get there. I know I am living my dream today, at least to some good extent, so I am not afraid of death.



Tour point 12: Earning money is tough but not impossible



Some of my own students hesitate to coach other testers because they think teaching isn't something they want to do. Indirectly they are saying, "This demands me to learn new skills which I am not prepared to". There is money in teaching. If they continue to think that way, they would never be able to earn contacts, different learning, upgrade their skills, learn about different contexts, challenges and hence more money.



Tour point 13: Consulting is not only problem solving but jiggling the right things



I was thinking of myself as a super hero by having solved some problems for my clients. When I interacted with Michael Bolton of what I did to claim success, he helped me understand that I jiggled with things rather than solving problems. I started to learn what exactly I was doing. Although I believed I was solving problems for my clients, it was they who were solving it and I was just helping them do it. At times I did solve problems, too.



If you are serious about being a consultant or being a valuable employee and want to jiggle the right things, I strongly recommend you to read Jerry Weinberg's books on Consulting. I mean, Secrets of Consulting and More secrets of Consulting. They are my best reads.



Tour point 14: Get yourself a guru and a role model



Sachin Tendulkar who is considered to be a God for cricket in India has a guru. Suriya, a rocking Tamil actor has Kamal Hassan has his guru and inspiration. Kamal Hassan has more than just one guru. Rajinikanth has a lot of gurus and role models. Virendar Shewag has a role model (Sachin) that he wants to be like. The great Arjuna of Mahabharatha had a guru teach him archery. Ekalavya had a guru. All these successful people have a guru and a role model. In testing, as we think we are experts or good enough, we don't feel a need to have a guru and role model. We sink our own career that way. I must have avoided thousands of traps by having more than a few gurus.



James Bach helped me be an independent consultant and I often consulted Michael Bolton to shape myself. There are other people who have helped me too and have been my inspiration and role models. I have posters of these people on my wall. It keeps pushing me. Without gurus and role models, I would have been lost by now.



Your tour ends here unless you have a few questions to ask me. Thank you for your patience.