Thursday, January 21, 2010

The Bullpen

.
I have always liked baseball, though I was never much of a player, I enjoyed the game, the skill it takes to hit a fastball, to throw a perfect game, to steal a base or two, or even to complete a triple play. The area that is the most fascinating to me is the bullpen. The area where the pitching staff warms up prior to going into the game, and where they loosen up, it is an area for preparation. You can tell what a team on defense is going to do in the near future by watching the bullpen.

An acquaintance of mine, works as a software tester in a company where there is a different meaning for the bullpen. You see, they used to live in cubical world where one to two people worked in an artificial room with six foot walls in aisles off the main hallway – without these artificial walls it would be a open area where you could see all the desk from one end of the room to the other. You could hold team meetings if everyone stood on their desk at the same time and began to talk. Everyone would look like gophers popping up out of their holes, got the picture. Now for years they worked in this environment, and they were able to get the job done. But for some reason the powers in higher pay grades than this acquaintance of mine decided that all members of each QC teams would have their walls removed, so they could work together as a team. Great idea, the walls disappeared, and the bullpen was born.

How does this bullpen work in an era of trust, independence, and openness? In baseball the bullpen allows the pitcher and catcher to work together creating and special connection, and building trust between the two team members. In this particular bullpen the team lead keeps a watchful eye on the activity of the team, ensuring that not a wasted moment goes by, and ensuring that the team member remain on task. When ever a team member sneezes, coughs, or farts it does not go unnoticed; the team lead knows when each team member leaves and when they return, making mental (if not actual) notes of the departures and returns. Yes, the team led controls of the activities of the team, testing related or not.

This environment has had a side effect which is the opposite to the trend in most software development companies. The environment in the industry is towards more communication and openness between all departments involved in the producing a quality product. The increase in communication and openness between the departments is considered to be the key to their success. Yet in this bullpen conversations are spoken in hushed voices and whispers showing that morale has slipped as the eyes of big brother are constantly upon the team. It is felt that the team has not left kindergartner, where permission is required even to visit the little room down the hall.

I may be exaggerating this a bit but I can guarantee that I would feel this way if my boss was in a position to watch my every move. I am an independent type of worker. I work well once given an assignment and will complete the task without constant checking. To have someone in a physical position to document my every move only brings out the rebel in me.

I believe that the reason for the bullpen is to give developers and testers an opportunity to work closely together, so that development and testing efforts can move along quickly; I have even suggested this where I manage a group of testers, the testers still live in cubical world. But they understand that one day they may be put in the bullpen next to a developer, where they can develop the relationship, and teamwork they will need to deliver a quality product quickly - without the constant eye of big brother monitoring their every move.
.

Thursday, January 14, 2010

WAGILE Methodology

.
Wagile Methodology? I know I can see your expression, what is Wagile Methodology; well it is the latest in a series of testing methodologies. It is the type of testing that is done by most companies and they don’t even recognize it. It has never been made official, and it is quickly forgotten when asked what testing methodology do you follow?

I’ve worked at many companies where Wagile was the methodology of choice. The companies believed that if they were to use Wagile, development would go faster and smoother thus creating customer delight with the speed at which they would get new features to the customer. Yes, Wagile is the methodology of choice.

In all these companies who have chosen Wagile as their methodology, it was usually done after living forever in waterfall. These companies have individuals who have read a few books on a new methodology (agile), usually the reading is skimming, thus becoming the resident expert on this new methodology, who determines that this is the environment they want to move to, so the resident expert gets others to buy in, and why not, anything is better than what we have, which is the common feeling about waterfall. So with great effort to move forward, the institution of daily scrums are begun with teams of 20 to 30 people – so no one feels left out – where everyone tells about what they did yesterday, and what their plans are for today. In reality these comments sound like – I worked on this yesterday and will continue to do the same today, followed by the next individual stating ditto, or same here, until all have thus report their efforts. Yes, Wagile is the methodology of choice.

As the Wagile methodology is used, sprint planning meetings are held for an hour or so, and guessimates are given so project manager can put an air tight schedule together which is never shared. Burn-down charts are created, but seldom use, dashboards are developed but never seen, and as the unknown deadline approaches there is panic among the project management team. Yes, Wagile is the methodology of choice.

Wagile’s benefits just never seem to appear as the proponents of Wagile have articulated. Wagile projects usually end with blame being casted, fingers being pointed, and root-cause analysis being done with an agenda to fix blame. Managers in the Wagile environment feel the need to protect their turf, build up kingdoms, or look for greener pastures elsewhere. Many, however, stay to fight the good fight, in hopes of a better future. Yes, Wagile is the methodology of choice.

So if you are looking to move away from Waterfall to something that will create a world of difference in your company. Come and join us in our Wagile world, it is an experience you will always remember, and regret. Yes, Wagile is the methodology of choice.
.

Wednesday, January 6, 2010

The myth of Software Quality Assurance

.
I have the opportunity to interview every so often, and I like finding out what the candidate knows about the work they do. For this reason I almost always ask the candidate to tell me the difference between Quality Assurance (QA) and Quality Control (QC). At first I was astounded at the responses. I felt as though, I had asked the candidate to list all the heads of states for Zimbabwe since its inception. Now these candidates are usually those with many years of experience, you know 10+ and considered senior testers. I felt safe asking because, I thought if you are working in an industry for more than a couple of years, you should know something basic about your job; sadly I was wrong.

I have a good friend who tells me that I am anal about the difference between QA & QC and she is probably right. But in interviewing these candidates I have found that there are unlimited views on the differences. I have been told that QA – “is following scenarios assuring quality”; “measuring the amount of quality”; “that it is analysis or detailed or in-depth validation of software”; “the job is to find defects”.

For QC it goes something like this – “there’s no difference”; “where faults are found in acceptable ranges”; “it’s an evaluation against standard”; “that QC is more comprehensive than QA”; “it is the job of engineering, development, and design”; “that quality is the composition for a product line”; “that QC is the verification of the end product”; “it is the flow through the application without errors”.

It is amazing that so many of us in the software testing business don’t know what we do. Are we QA or are we QC? Many testers junior or senior do not know. I believe it because the majority of companies we work for do not understand what we do as well as they should. Consequently testers are placed in a department titled QA, and the testers test the software. Go to any Software Quality Assurance (SQA) group and what is the main topic of their conversations it is testing, improving testing, automated testing, manual testing, etc.

Yes, I have a point. My point is that QA is not testing. QA is the assurance of quality and QC is the control of quality. Let me explain, I believe, as many of you, that you cannot test quality into any product. Quality comes when there are processes which are followed and the process are reviewed, followed by some analysis on the process to correct any flaws found in them, and then the flawed process is modified to produce a better product. This is QA; it is a short but simple answer. QA has nothing to do with testing. On the other hand, testing is QC. QC is the validation of the product to a set of specifications, requirements, or standards. The validation is accomplished through the action of testing the product against the requirements. We all work for the QA department yet we do QC work and we perpetuate the myth by calling ourselves “QA”. I have been corrected many times by testers which state very forcefully that “we are QA”.

My stand is that we who test any software product are actually in the business of QC – quality control; in that we focus on controlling the quality of the product, once it is delivered to us. We are not QA, for we assure nothing, we just validate the requirements have been met and report any deviation in the product from them.