We usually hire based on experience and skills and often discount the attitude, my take on the subject!
I started my career about two decades ago as a developer in a small start-up. The start-up was so small that from time to time I was asked to step into executive roles, yes that small!! All of us did pretty much everything from vacuuming the carpets to presenting demos to the customers and sometimes playing CEO. Initially, I wrote programs in C, C++ sometimes even in assembly language for some of our needs. I used to create the requirements based on customer needs, wrote code and once ready used to test it with others in the company and then delivered to the customers. I was essentially, in Agile lingo, a scrum team all rolled in one. For some of the projects, sometimes I worked over 36 hours straight to meet the deadlines only getting up to either put something in my system or out. I loved it, I heard about people burning out but I never did, the sense of accomplishment was like a drug, solving one problem after another, watching all of it come together in the final product kept me going.
The small company of friends withered with time and we all moved on to better opportunities in life. During this transition I did some soul searching and tried to figure out what part of the development life cycle I enjoyed the best. I figured I was enjoying breaking the code more than building it so I searched accordingly and fortunately landed a job to build a test team from scratch as a manager. The company I joined was medium-size, had no formal test team, developers were testing the products after writing code. The products were crashing and failing during customer demos. My job was “simple”, to build a team that would stop the bleeding immediately and longer term improve the quality of the products. This company built software for high-volume printers like IBM and Xerox, mistakes in prints costed millions of dollars in bad prints. As an example imagine a mistake in PG&E monthly billing discovered after the billing cycle. The expectation of quality was extremely high, room for error, zero!! I was ecstatic because I knew company’s reputation and thus its future was directly dependent on us being successful. I knew it was not going to be easy but I was determined to make it happen.
Step 1: Build an effective team, Find the right people. Back then software QA or test engineering was not as disciplined as today, when we started looking for test engineers, I could find only one person locally that too with experience of less than a year. I had a choice to endlessly keep looking for the experienced people or find the people with potential and train them right, after all we were on a tight deadline to deliver and the time was running out, I chose the latter. When I started looking for potential candidates, I was primarily looking for five things
- An eye for finding issues in things
- Rock solid resolve to succeed
- Problem solving skills
- Creativity
- Trustworthiness – people I could trust with an assignment
Any test experience was a plus. Within a few weeks I had a team of around 10 people ready to go.
Step 2: Train the team and Evolve Processes: Some might argue that these are two completely different, maybe parallel, undertakings. I have learned over the years though that you can have a capable team but for them to be effective consistently, some semblance of process is necessary, without it you are just counting on being lucky over and over again. While we trained together, we deliberately included process and tool discussions with the stakeholders as part of our trainings.
We discussed and documented processes, we explored and finalized tools for test and requirement management, test automation etc. Since these discussions involved larger teams, everyone felt the ownership of the processes and the decisions made. We bought some tools with our limited budget and in other cases, I leveraged my development skills to create utilities for automation and developing repositories to store information and data.
Step 3: Prioritize, Execute and Report: By the time the team was ready to execute, I was able to work with my leadership team in parallel to create a priority matrix that basically included
- Top products for business by priority – each product with score
- Top areas of concern for each product – with score and failure analysis
- Customer Demo sequence – identify likely areas
This was reviewed and revised on monthly basis. During execution, we started reporting results to the teams across the board, teams were super excited because that had never happened before. The priority matrix helped us maintain focus as a test team while the new products rolled in. Knowing customer demo sequences, helped us aggressively test and fix issues in there.
Everyone was holding their breath when the products were demoed at the very next exhibition. A daily note was being sent out by the CEO himself on how the demos were going, day 1: no crash, day 2: no crash, day 3: NO CRASH!! We had done it, we earned new business and our reputation was beginning to heal. I got personal notes of appreciation from the CEO, the chairman and other leadership down the chain. I remember my manager pulling me into a corner the following week and near whispering to me with a smile “I have been asked to give you as much salary increase as you ask for, so how much do you want?” I couldn’t bring myself to put a number on what we had done together, so my manager did it for me (bummer!!), we shared the pie with the team.
Over the next few years, as the company grew, so did our team. We replicated the same test team model at our Prague lab, we shared our processes with them and coached them on how to be, well, like us.
My jobs at other companies down the road have had me make similar decisions. When you join a new company, even if there is an existing team, its usually a great first step to start with people, calibrating team effectiveness to make sure the people on the team are the right people for the role they are in, use the 5 element matrix above to gauge how effective the team is, both in terms of your judgment and the prevailing perception. Then focus on business critical needs, process, tools, execution and reporting. Above all, make sure you and your team start with the right attitude and the absolute resolve to win, as Thomas Jefferson said
“Nothing can stop the man with the right mental attitude from achieving his goal; nothing on earth can help the man with the wrong mental attitude”