As a veteran of two startups, TRIP.com, a travel Web site, and Tensegrent, a software development company, I have learned some lessons the hard way about implementing quality assurance in a web startup environment. This paper gives some guidelines based on this experience: How to get buy-in from management, how to educate yourself about Web testing, how to implement a useful process, how to prevent a testing bottleneck.
It perhaps goes without saying that a Web startup is not an environment in which quality testing is typically found. Development is fast and loose. Many developers are inexperienced. Marketing is pushing to be first to market. One might be tempted to label the environment as chaotic
When I accepted the opportunity of being the first test engineer at TRIP.com, only 25 people worked for the Web startup. The developers had produced some exciting applications and felt they were ready to "grow up and play with the big boys." The development team thought they were intellectually prepared to introduce standards and procedures.
In reality, development was frenetic, and the developers didn't have a clue as to how to stop and analyze their processes, much less how to impose discipline on them.
For my part, I was a complete stranger to Web development. I truly felt lost in the wilderness without a map or a compass. For years I had been testing databases, fourth-generation languages, and client/server software on UNIX, NT, and Windows platforms. I spoke ODBC, but not JDBC. I knew my customers. In my experience, the software development cycle had stretched on for months or even years–during which your typical Web application has gone through numerous incarnations.
This is the story of how I learned about Web application development, preached the quality gospel, and collaborated with the software and product developers and marketing managers to implement development standards and project processes that build quality into our applications. TRIP.com now employs over two hundred people, has over four million registered customers, and has introduced such cutting-edge products such as FlightTracker and intelliTRIP. Myself, I've moved on to a new startup. Once again, I feel like a stranger–this time in the strange land of eXtreme Programming.But that's another paper.
Any DotCom is a work in progress. Even once we had a successful project process at TRIP.com, we faced continual challenges such as an inadequate test environment. Even when the whole company understands and is committed to the importance of quality assurance testing, unexpected events lead to surprises. The key is to keep plugging away at the following tasks:
- Get Buy-In
- Work Smart
1. Get Buy-In
I won over my managers, developers, and marketing counterparts by following these tenets:
- Identify a top manager in your organization who believes in your cause and will champion it. In my case, it was the Vice President of Web Development and Chief Cat Herder (yes, that really was her title). When I was hired, this person did not believe that five developers could keep one tester busy full time. But, in time, she became my biggest ally. She not only pushed the developers to work for quality, but she also lobbied the management team for testing resources.
- Partner with someone outside of your organization, such as a project or operations manager. Educate your ally to garner his or her help. We had a topnotch project manager who, once she understood what QA and testing would do for the company, did much of my job for me. She enforced processes such as document review and signoff, helped implement and police the defect tracking system, and tied up a million details involved with every big production launch. She became the prime channel of communication between marketing and development.
- Educate everyone you come into contact with at the company about software quality assurance?what it is and what it will do for them and the site. Early on, I held a "Lunch 'n' learn" professional development seminar. The company bought lunch, so attendance was good. I explained why testing is