Food for Thought-An e-newsletter published by Software Quality Consulting, Inc. November 2006, Vol. 3 No. 9 What’s In a Title – Part 2 What topics would you like to see in this newsletter? Each month, this newsletter tries to provide you with useful information. This is a two-way street and your feedback is important. Please send your thoughts and comments to steve@swqual.com. -------------------------------------------------------------------------------- Welcome to Food for Thought(TM), an e-newsletter from Software Quality Consulting (http://www.swqual.com/index.html?Intro). I've created free subscriptions for my valued business contacts. If you find this newsletter informative, I encourage you to continue reading. Feel free to pass this newsletter along to colleagues by clicking this Forward Email link at the bottom of this newsletter. If you’ve received this newsletter from a colleague and would like to subscribe, please click this Enter New Subscription link (http://www.swqual.com/newsletter/Subscribe.htm?Newsletter). If you don't wish to receive this newsletter, click the SafeUnSubscribe(TM) link at the bottom of this newsletter, and you won’t be bothered again. Your continued feedback on this newsletter is most welcome. Please send your comments and suggestions to info@swqual.com. -------------------------------------------------------------------------------- *** In This Issue *** In This Months’ Topic, I discuss the difference between software quality professionals and testers... Regular features to look for each month are: - Monthly Morsels Hints, tips, techniques and reference info related to this month’s topic - Calendar Conferences, workshops, and meetings of interest to software engineers, QA engineers and anyone interested in software development -------------------------------------------------------------------------------- *** This Month’s Topic *** What’s In a Title – Part 2 Software development organizations often have a group that has the word “quality” in the group’s name. Depending on the industry and the organization, this group could be called: - Quality - Quality Assurance - Quality Engineering - Quality Management - Application Quality Assurance - Software Quality - Software Quality Assurance - Software Quality Engineering - Test - Test Engineering - System Test - User Experience Testing - Software Verification & Validation - Independent Verification & Validation - Send me your group’s name if it’s not listed above...(steve@swqual.com) Not surprisingly, there are also many titles for people who work in these groups: - Quality Analyst - Quality Engineer - Quality Assurance Analyst - Quality Assurance Engineer - Software Quality Engineer - Software Quality Technician - Software Quality Assurance Engineer - Software Verification & Validation Engineer - Validation Engineer - Validation Specialist - Software Validation Engineer - Software Validation Specialist - Test Lead - Test Engineer - Test Specialist - Send me your title if it’s not listed above...(steve@swqual.com) Last month (http://www.swqual.com/newsletter/vol3/no8/vol3no8.html), I discussed how the title “engineer” is often applied to many jobs that don’t meet established criteria for engineering disciplines. I also discussed differences between software engineers and programmers. I listed my views on the scope of responsibilities for each and how we need recognize the roles of apprentices and mentors in our industry. It is so important that management support these critical roles. This month, I would like to continue this discussion by examining differences between software quality professionals and testers. My pal Watts Humphrey defined Software Quality Assurance (SQA) as: “SQA is a valid discipline in its own right and people can be SQA experts without being software design experts. This SQA expertise is what is required to establish a strong quality program. It includes knowledge of statistical methods, quality control principles, the software process, and an ability to deal effectively with people in contentious situations.” [1] In my May 2006 newsletter (http://www.swqual.com/newsletter/vol3/no5/vol3no5.html), I identified many different activities that an SQA group could perform. Roger Pressman often refers to SQA as an umbrella for many diverse and important activities. IS SQA AN ENGINEERING PROFESSION? The first question is does SQA meet the definition of an engineering profession? If you recall the discussion from last month, to be considered as an engineering profession, five characteristics need to be met [2]: 1 A professional education from an accredited institution Currently, colleges or universities do not offer undergraduate or associates degrees in Software Quality Assurance. A few universities are beginning to include Software Quality Assurance courses as part of an undergraduate program in Software Engineering. 2 Registration of fitness to practice via voluntary certification or mandatory licensing We do have several examples of voluntary certification. For example: ASQ-Software Division (http://www.asq.org/softwareforum/) - Certified Software Quality Engineer QAI-Worldwide (http://www.qaiworldwide.org/certifications/index.html) offers the following certifications: Certified Software Quality Analyst (CSQA) Certified Software Tester (CSTE) Certified Manager of Software Testing (CMST) Certified Manager of Software Quality (CMSQ) 3 Specialized skill development and continuing professional education We do have this. Many software quality related short courses and are offered by organizations such as: - ASQ Software Division (http://www.asq.org/softwareforum/) - Pacific Northwest Software Quality Conference (http://www.pnsqc.org/) - Boston SPIN (http://www.boston-spin.org/index.html) - Software Quality Group of New England (http://www.sqadvice.com/SQGNE_Calendar.htm) - Twin Cities Quality Assurance Association (http://www.tcqaa.org/index.htm) - Quality Assurance Association of Connecticut (http://www.qaac.org/) - Greater Kansas City Quality Assurance Association (http://www.kcqaa.com/Index.html) - STAR East and STAR West Conferences (http://www.sqe.com/stareast/) 4 Communal support via professional societies We do have this. Professional societies include: - ASQ Software Division - Quality Assurance International 5 A commitment to norms of conduct often prescribed in a code of ethics We do have this. The code of ethics appears in the brochure for the CSQE certification...( http://www.asq.org/certification/docs/ csqe_brochure_05-06.pdf) Clearly the most glaring lack here is in the area of formal education. Working with hundreds of software quality people over the years, I have found that most have not had any formal education in the software quality field. Back in 1997, this is what ultimately motivated me to write a book on this topic...( http://www.amazon.com/Software-Verification-Validation- Practitioners-Managers/dp/1580532969/sr=1-1/qid=1162434619/ref=sr_1_1/102- 6483037-8016953?ie=UTF8&s=books) Many people working in the software quality profession have undergraduate (and often graduate) degrees in fields unrelated to computer science or software engineering. As a result, most folks have learned their craft through on-the-job training. Given the significance of what these people are doing from a quality perspective, this is clearly not the best situation. The lack of formal training in this field has been one reason people in this field are often treated as second class citizens – especially when compared with software engineers. WHAT IS THE SWEBOK? Over the years, there has been much debate about topics related to software quality and software quality assurance and the relationship of software quality to software engineering. The IEEE Computer Society, working closely with industry, developed a software engineering body of knowledge - called the SWEBOK. After extensive industry review, the SWEBOK was published in 2004 [3]. The SWEBOK presents the body of knowledge in several different areas. These areas include: - Software requirements - Software design - Software construction - Software testing - Software maintenance - Software configuration management - Software engineering management - Software engineering process - Software engineering tools and methods - Software quality It is interesting to note how that Software Testing and Software Quality are listed separately. The fact that the SWEBOK presents Software Quality and Software Testing as separate areas is interesting. This confirms my belief that we need two well-defined roles - testers and software quality professionals – for the same reasons we need programmers and software engineers. Let’s look at how these two roles would complement each other. SOFTWARE QUALITY PROFESSIONALS Software quality professionals are people who could develop and lead an organization’s quality activities. Examples of tasks that software quality professionals would be directly involved in could include: - Define Software Quality Processes and Procedures - Review Software Engineering Processes and Procedures - Define, develop, and analyze Quality Metrics - Identify appropriate Peer Review techniques - Identify appropriate Software Risk Management practices - Identify appropriate Static Analysis techniques - Actively participate in Peer Reviews and Formal Inspections - Prepare Software Quality Assurance Plans - Prepare and review Software Test Plans - Prepare Software Risk Management Plans - Audit compliance with software engineering processes - Review Configuration Management and Change Control processes - Prepare Defect Management procedures - Participate in software document reviews - Assess Test Automation needs - Plan Manual Testing activities - Review Regression Testing rationales - Review Test Reports - Lead Process and Product Audits - Define Software Release Procedures - Establish effective working relationships with Software Development - Establish procedures for Triage and Root Cause Analysis - Identify and provide appropriate training for testers - Actively mentor and coach testers and provide leadership Software Quality Professionals should have an extensive background in basic quality principles as applied to software development. Software Quality Professionals should be skilled at applying traditional quality principles such as auditing, statistical analysis, root cause analysis, etc. They should also have a considerable amount of domain knowledge of the products being developed. They need excellent interpersonal communication skills. Certifications such as those from ASQ or QAI (mentioned above) should be required along with several years of experience. TESTERS In my view, some of the tasks that testers could be involved in would include: - Participate in document reviews - Participate in writing Test Plans - Write Test Cases - Execute Test Cases and perform Regression Testing - Prepare Test Reports - Track status of testing activities - Acquire automated testing skills - Work with Defect Tracking tools - Participate in process and product audits - Acquire domain knowledge - Build effective working relationships with software engineers and programmers Testing is often viewed as an entry level job for people who are changing careers or looking to enter a high tech industry. People who are new at this obviously need a lot of training, mentoring, and coaching. This is yet another example where an apprenticeship role makes abundant sense. Testers can also be recruited from within organizations. For example, people who are in a Technical Support, Customer Support or Field Service role can be given an alternative career path – as a tester. This can work very well since people in these roles have lots of domain knowledge. What they lack are basic testing skills. It is much easier and less costly to teach people basic testing skills than it is to provide people who may have testing skills with sufficient domain knowledge. SUMMARY Just like other engineering disciplines, we need to recognize the need to have apprentices and mentors both in software development and in the software quality areas. Having apprentices and mentors enables people to develop their skills and become more effective and productive. The relationship between an apprentice and mentor is also something that can have long lasting impact and provide organizations with significant long-term benefits... Until next time... -------------------------------------------------------------------------------- *** Monthly Morsels *** Every month in this space you’ll find additional information related to this month’s topic. - References: [1] Humphrey, W., Managing the Software Process, Addison-Wesley, 1989. [2] G. Ford and N.E. Gibbs, A Mature Profession of Software Engineering , Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pa., tech. report CMU/SEI-96-TR-004, Jan. 1996. - On-line Resources [3] IEEE Guide to the Software Engineering Body of Knowledge, 2004 Version. (http://www.swebok.org/) -------------------------------------------------------------------------------- *** Calendar *** Every month you’ll find news here about local and national events that are of interest to the software community ... - Software Quality Calendar There are many organizations that sponsor monthly meetings, workshops, and conferences of interest to software professionals. Find out what’s happening... (http://www.swqual.com/links/upcoming.html) - Workshops Offered by Software Quality Consulting Software Quality Consulting offers workshops in many topics related to software process improvement. Get more info... (http://www.swqual.com/seminars/courses.html) -------------------------------------------------------------------------------- *** About SQC *** Software Quality Consulting provides consulting, training, and auditing services tailored to meet the specific needs of clients. We help clients fine-tune their software development processes and improve the quality of their software products. The overall goal is to help clients achieve Predictable Software Development(TM) – so that organizations can consistently deliver quality software with promised features in the promised timeframe. To learn more about how we can help your organization, visit our web site (http://www.swqual.com/index.html?AboutSQC) or send us an email (info@swqual.com). -------------------------------------------------------------------------------- I hope this newsletter has been informative and helpful. Your comments and feedback are most welcome. Send me your feedback...(info@swqual.com) Thanks, Steve Rakitin info@swqual.com Food for Thought, Predictable Software Development, Act Like a Customer, and ALAC are trademarks of Software Quality Consulting, Inc. Copyright 2006. Software Quality Consulting, Inc. All rights reserved. Graphic design by Sage Studio