QA2AQ
Fitting Quality Into Your Process¶
Central to successfully using any QA pattern is knowing where quality concerns might fit into your process and the removal of any physical and organizational impediments that prevent you from taking action.
Pattern Name | Description |
---|---|
障壁を壊す Break Down Barriers |
Tear down the barriers between QA and the rest of the development team. Work towards engaging everyone in the quality process. |
品質を統合 Integrate Quality |
Incorporate QA into your process including a lightweight means for describing and understanding system qualities. |
Identifying Qualities¶
An important but difficult task for software development teams is identifying the important qualities (non-functional requirements) for a system. Quite often system qualities are overlooked or simplified until late in the development process, thus causing time delays due to extensive refactoring and rework of the software design required to correct quality flaws.
Pattern Name | Description |
---|---|
本質的な品質を探す Find Essential Qualities |
Brainstorm the important qualities that need to be considered and list them for inclusion on the product roadmap. |
アジャイル品質シナリオ Agile Quality Scenarios |
Create high-level quality scenarios to examine and understand the important qualities of the system. |
品質ストーリー Quality Stories |
Create stories that specifically focus on some measurable quality of the system that must be achieved. |
測定可能なシステム品質 Measureable System Qualities |
Specify scale, meter, and values for specific system qualities. |
折り込み品質 Fold-out Qualities |
Define specific quality criteria and attach it to a user story when specific, measurable qualities are required for that specific functionality. |
アジャイル着地点 Agile Landing Zone |
Define a “landing zone” that defines acceptance criteria values for important system qualities. Unlike traditional “landing zones,” an agile landing zone is expected to evolve during product development. |
着地点の再調整 Recalibrate the Landing Zone |
Readjust landing zone values based on ongoing measurements and benchmarks. |
品質目標の合意 Agree on Quality Targets |
Define landing zone criteria for quality attributes that specify a range of acceptable values: minimally acceptable, target and outstanding. This range allows developers to make tradeoffs to meet overall system quality goals. |
Making Qualities Visible¶
It is useful for team members to be aware of important system qualities and have them readily available. This can be done through quality radiators, similar to what Alistair Cockburn describes in making any information radiator—visible tangible things that keep people’s attention. Quality radiators, just like other information radiators need to change and get adjusted and have new and changing information otherwise they become wallpaper [Co].
Pattern Name | Description |
---|---|
システム品質ダッシュボード System Quality Dashboard |
Define a dashboard that visually integrates and organizes information about the current state of the system’s qualities that are being monitored. |
システム品質ラジエータ System Quality Radiator |
Post a display that people can see as they work or walk by that shows information about system qualities and their current status without having to ask anyone a question. This display might show current landing zone values, quality stories on the current sprint or quality measures that the team is focused on. |
品質のロードマップ Qualify the Roadmap |
Examine a product feature roadmap to plan for when system qualities should be delivered. |
品質のバックログ Qualify the Backlog |
Create quality scenarios that can be prioritized on a backlog for possible inclusion during sprints. |
品質チャート Quality Chart |
Create a chart or listing of the important qualities of the system and make them visible to the team; possibly on the agile board. |
Becoming Agile at Quality¶
Agile software development is an iterative and incremental development process. The software evolves and adapts to changing requirements. Self-organizing, cross-functional teams perform the work. Most agile processes embrace quick responses to change. The ability to change and adapt is accomplished through short sprints with flexible planning, short delivery and extensive feedback. Agile processes focus on prioritizing the most important requirements and elaborating on those requirements just in time.
In any complex system, there are many different types of testing and monitoring, specifically when testing for system quality attributes. QA can play an important role in this effort. The role of QA in an Agile Quality team includes: 1) championing the product and the customer/user, 2) specializing in performance, load and other non-functional requirements, 3) focusing quality efforts (make them visible), and 4) assisting with testing and validation of quality attributes.
For small teams, including a QA expert as part of the team can seem natural and fit into the organization without too much pandemonium. However, this might not scale well for larger projects that require more and larger interactive teams; i.e. 6 Scrum teams doing a scrum-ofscrums to deliver an enterprise application.
Pattern Name | Description |
---|---|
統一したチーム Whole Team |
Involve QA early on and make QA part of the whole team. |
品質に集中するスプリント Quality Focused Sprints |
Focus on your software’s non-functional qualities by devoting a sprint to measuring and improving one or more of your system’s qualities. |
QAプロダクトチャンピオン QA Product Champion |
QA works from the start understanding the customer requirements. A QA person will collaborate closely with the Product owner pointing out important Qualities that can be included in the product backlog and also work to make these qualities visible and explicit to team members. |
アジャイル品質スペシャリスト Agile Quality Specialist |
QA provides experience to agile teams by outlining and creating specific test strategies for validating and monitoring important system qualities. |
品質をモニタリング Monitor Qualities |
QA specifies ways to monitor and validate system qualities. |
アジャイルQAテスター Agile QA Tester |
QA works closely with developers to define acceptance criteria and tests that validate these, including defining quality scenarios and tests for validating these scenarios. |
品質作業の分散 Spread the Quality Workload |
Rebalance quality efforts by involving more than just those who are in QA work on quality-related tasks. Another way to spread the work on quality is to include quality-related tasks throughout the project and not just at the end of the project. |
隠れた品質エキスパート Shadow the Quality Expert |
Spread expertise about how to think about system qualities or implement quality-related tests and quality-conscious code by having another person spend time working with someone who is highly skilled and knowledgeable about quality assurance on key tasks. |
品質主導者とペア Pair with a Quality Advocate |
Have developers work directly with quality assurance to complete a quality related task that involves programming. |
出典¶
QA to AQ: Patterns about transitioning from Quality Assurance to Agile Quality, AsianPLoP 2014