As organizations transition to agile processes, quality assurance (QA) activities and roles need to evolve. Traditionally, QA activities occur late in the development process, after the software is fully functioning. As a consequence, QA departments have been "quality gatekeepers" rather than actively engaged in the ongoing development and delivery of quality software. Since agile teams incrementally deliver working software, this provides an opportunity to engage in QA activities much earlier, ensuring that both functionality and system qualities are addressed just in time. Agile teams embrace a "whole team" approach. Even though special skills may be required to perform certain development and QA tasks, everyone on the team is focused on the delivery of quality software.
Prioritizing and implementing necessary functionality keeps an agile project moving forward. However, it is also important to focus on system quality at the same time. Otherwise, qualities can get shoved aside or wistfully imagined as emerging along with the architecture. This session will show you how you can interject quality specification, design, and testing efforts into your project and be more agile about it. We will introduce agile techniques and patterns of practices that support the definition and delivery of system qualities. We will also discuss the role of QA and architects in agile teams and how they ensure that important qualities are addressed in an agile manner that emphasizes architecture capabilities such as usability, security, performance, scalability, internationalization, availability, and accessibility.