GOTO is a vendor independent international software development conference with more that 90 top speaker and 1300 attendees. The conference cover topics such as .Net, Java, Open Source, Agile, Architecture and Design, Web, Cloud, New Languages and Processes

Joseph Yoder, Software Patterns writer

Joseph Yoder

Biography: Joseph Yoder

Joseph Yoder is a founder and principle of The Refactory, Inc., a company focused on software architecture, design, implementation, consulting and mentoring on all facets of software development. Joseph is an international speaker and pattern author and long standing member of The Hillside Group, a group dedicated to improving the quality of software development. He is co-author of the Big Ball of Mud pattern, which illuminates many fallacies in the approach to software architecture. Joseph has organized and participated in many international conferences including program chair for the Pattern Languages of Programming Conferences (PLoP and SugarLoaf PLoP) and helping organize the first Agile Portugal. Joe has presented many tutorials and talks at many international conferences such as Agile, JAOO, QCon, PLoP, OOPSLA and ECOOP.

Joe currently resides in Urbana, Illinois where he oversees a team of developers who have constructed many systems based on enterprise architecture using the .NET environment. Other projects involve working in both the Java and .NET environments deploying Adaptive Systems or Domain-Specific Languages for clients. Joe thinks software is still too hard to change. He wants do something about this and believes that by using good patterns and by putting the ability to change software into the hands of the people with the domain knowledge seems to be some promising avenues to solve this problem.

Workshop: QA to AQ: Being Agile at Quality

Time: Monday 09:00 - 16:00 / Location: Room 4

When developing and delivering large, complex systems it can be all too easy to focus on features and overlook software qualities or “non-functional” requirements such as security, scalability, performance or reliability. As agile spreads across your organization it is even more important to pay attention to quality concerns and coordinate the delivery of features along with necessary architecture and system infrastructure work. As organizations transition to agile processes, Quality Assurance (QA) activities and roles need to evolve. Agile teams embrace a “whole team” approach and incremental delivery of system functionality along with system qualities (also known as non-functional requirements). This requires changes to the ways we work. Instead of gate keepers, Quality Assurance (QA) is engaged and involved throughout development helping clarify system quality requirements and how they will be measured. Quality Control generally refers to inspection activities that occur at the end of a process. Quality Assurance or Total Quality Control is an alternative to Quality Control which recognizes that inspection at the end is ineffective and that you can be more effective if you take a more holistic approach that builds quality into the process from the start engaging the whole team, which we call Agile Quality (AQ). Although special skills may be required to develop and test system qualities, everyone on the team needs to be focused on their delivery.

This session introduces techniques and practices for interjecting system quality specification and related architecture, design and testing efforts into your project while being more agile about it. I will present several agile techniques and practices that support the definition and delivery of system qualities. I will explore how QA, including testers, and architects can collaborate to ensure that system qualities are addressed in an agile manner emphasizing architecture capabilities such as usability, security, performance, scalability, and availability. You will get hands-on experience briefly practicing some of these techniques. You will learn options for coordinating work among teams and be exposed to techniques and practices that support the incremental definition and delivery of system qualities along with system functionality and weaving quality-related work into your projects and programs.

I have been innovating, collecting and writing on the best practices and patterns on this topic for the last 5 years with various colleagues. During this time we have given presentations, workshops, and keynotes at various conferences and in industrial settings. I have published (and continuing writing and collecting) over two dozen patterns on this topic as well. I have been working with organizations on the best practices for Agile Quality Assurance and also shepherded Agile Experience reports on the topic. Variations of this some of this material has been presented as talks and workshop/tutorials at various conferences (Agile, JDD in Poland, SugarLoaf PLoP, Agile Portugal, AgileBrazil, YOW! in Australia, Saturn, and Israel Conference on Software Architecture) and to our clients. In 2015 I won the New Directions award with a colleague at Saturn 2015, given to the presentation that best describes innovative new approaches and thought leadership in the application of architecture-centric practices for our presentation QA to AQ: Shifting from Quality Assurance to Agile Quality. (