"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.

Thursday, May 26, 2011

Testers & their passion for test automation

Once a group of software testers were traveling on a plane to attend a test automation conference. Their plane was hijacked by terrorists and all people on board, including the testers were held hostages.

The situation was grim as terrorists appeared to be dangerous with AK-56 strapped across their chests. The terrorists demanded a lot of things that the government couldn’t meet. After seven hours of flying, the plane was running out of fuel. The only demand government could meet was to refuel the plane.

Terrorists chose an airport to land and the plane was refueled enough to fly for 12 more hours. The terrorists threatened to kill a hostage every one hour if their demands were not met.They demanded the release of a terrorist who was captured by the government last month during an operation. The government had only three options: a) to release the terrorist b) to ignore the threat and get all people on board killed c) to perform a surgical strike during the next refueling session.

The government opted for option c. The surgical strike team consisted of highly skilled commandos who were trained in such rescue missions. The commandos pretending to be refueling the plane stormed into the plane and had concealed the latest FMG (Folding Machine Gun) which they unleashed to kill all eleven terrorists on board with minor bullet injuries to hostages.

After the strike was over, all passengers including the software testers on board stood up and clapped for quite sometime while commandos were preparing to off board the passengers. The news had become viral across the world and there were a lot of people waiting to receive the passengers. The conference organizers felt proud to receive the software testers who were on board this flight that had been rescued.

On the request of the conference organizers, those software testers decided to talk on what lessons can be learnt from the experience to software testing. With a huge round of applause, one of them came on stage, held the microphones and in a bold voice said, “Those commandos used a fully automatic machine gun to kill all the terrorists. That indicates that we should make our testing fully automatic to find all bugs”. Every tester in the hall clapped for the great lesson they learnt. 

Moral of the story: Testers and Test management have forgotten to appreciate their own colleagues and consider processes and tools help them achieve their goals.  Update: Also quoting Julian Harty : "Automation should be a servant, not master of our Software delivery"

If you have a colleague whom you want to appreciate and don't mind doing that in the comments section here, just go for it. Let me start.

Tuesday, May 10, 2011

A letter from the worst Agile Tester in India

Dear Blog Reader,


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.


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