Abstract Details

<< Back to Schedule

10/14/2015  |   2:00 PM - 2:45 PM   |  Atlantic I

Agile is a Quality Anti-Pattern

This presentation identifies problems with Agile’s approach to quality and describes solutions. Quality Attributes & Goals There are over 50 software quality attributes including security, safety, privacy, and ease of use. Each quality attribute has over 20 characteristics such as priority. This is true across all applications and all domains. We refer to “required quality attributes” as “quality goals”. Each quality goal needs to be defined, have its feasibility assessed, and then be achieved, and verified. Agile Quality We examine the quality guidance provided by two Agile methodologies, Scrum and Extreme Programming (XP). Scrum provides no guidance on defining, achieving, or verifying quality goals. XP focuses on clean, understandable, and effective code and unit tests thus supporting three (of the more than 50) quality attributes: acceptable functionality, reliability, and understandability of code and unit tests. Agile Quality Drawbacks XP, done well, is wonderful at achieving functional goals and three quality attributes. Unfortunately, XP is not the most popular methodology. All Agile methodologies are terrible at achieving the other 50 quality attributes, because: 1. At best, Agile treats quality goals like functional goals. At worst, it ignores them. 2. Since customers rarely consider quality goals, unless prodded, nothing in Agile guarantees that all high-priority quality goals will emerge before product delivery. 3. Agile emphasizes functions and de-emphasizes most quality goals to the point of invisibility. 4. Agile emphasizes testing and, except for code and tests, de-emphasizes analysis, review, and measurement to the point of invisibility. ? Missing Quality Supports Most software components must contain code to support quality goals. Developing a “working” component with some necessary quality supports missing usually results in reckless technical debt. Agile development methodologies create such reckless debt since none begins by identifying quality goals. Any development methodology that does not start by identifying quality goals and their achievement and verification strategies using a rich quality attributes model is unnecessarily expensive and may produce quality deficient software. Unfortunately, this includes most development methodologies, not just Agile ones. Quality-Aware Development The solution is Quality-Aware development, which is NOT a development methodology, but a 3-part supplement to whatever you are doing now or intend to do (including the use of an Agile methodology). The first part is an initial quality sprint that includes: 1. Select relevant quality attributes including their supporting attributes from your rich quality attributes model; 2. For each selected attribute: identify its required level, identify its challenges, mitigations, and supports, assess its feasibility and then specify and review its achievement and verification strategies; 3. Acquire and verify a library of crosscutting support components e.g. exception handlers. The second part is a set of tasks to be added to each development iteration. The third part is the collection of quality learning during a project retrospective and recording them in the enterprise model of quality attributes and/or the development standards. A rich quality attributes model and more resources are freely available at www.quality-aware.com

Presentation:
This presentation has not yet been uploaded.

Handouts:
No handouts have been uploaded.

David Gelperin (Primary Presenter), ClearSpecs Enterprises, david@clearspecs.com;
David Gelperin is Chief Technology Officer & President of ClearSpecs Enterprises. He has more than 40 years of experience in software with an emphasis on requirements risk management and software quality, verification, and testing (SQVT). During the last 10 years, David has focused on requirements development. Before that, David was an SQVT consultant, coach and instructor, quality support manager, verification lead, project lead, and programmer. In 1986, David co-founded Software Quality Engineering (www.sqe.com, www.stickyminds.com), the leading provider of software quality information worldwide. He also catalyzed the launch of Better Software magazine. David has a PhD in Computer Science, but has managed to help people do useful things anyway.

2013 Sponsors: IEEE and IEEE Computer Society