Paige Watson

Paige Watson

Quality Code Craft and Practice

Seattle, Washington, United States

As an evangelist of XP and Agile work processes, I am ever striving to find better ways to write quality software, in ways that are empowering to developers and companies alike.

Area of Expertise

  • Information & Communications Technology


  • TDD
  • Code Quality
  • Agile Methodologies
  • Agile Leadership
  • Software Practices

Whole Team Programming

Whole Team Programming, also known as Mobbing, or Ensemble Programming, is a practice of whole-team collaboration that produces higher quality, more rapidly delivered code than solo development. Participants will learn the basics of communicating as a group, how a team can select and break down work, and why this practice far outpaces a team of Individual Contributors. We will collaborate as a group to write code and learn how to work effectively with multiple team members with varying levels of experience.

Participants will leave with an understanding of how to communicate while collaborating and how to introduce the concepts to their teams. You will experience working as a group over several iterations on simple coding tasks to better understand the process and practice collaboration.

We'll talk about how the different organizational roles (scrum master, PM/PO, etc) are an integral part of the Whole Team programming process. Finally, we'll discuss how to transition to a Whole Team approach and the benefits, and pitfalls, that surround it.

*Learning Outcomes*
- Understand the benefits of collaborative programming over individual programming. -Gain first-hand experience writing code as a group.
- Understanding of the practices of mobbing/ensemble programming.
- Learn how organization roles work on collaborative programming teams
- Understand some of the tools and resources available for collaboration as a "Whole Team".

The ROI of Deliberate Practice

Practice doesn't make perfect!
Perfect practice makes perfect.

Professional athletes and musicians focus on practicing to get better so that the quality of their work becomes effortless. Why aren't you and your team practicing to get better?

Applying the concepts of Learned Behaviorism, using the techniques of Deliberate Practice, and simple "tools" like Code Katas can result in a more knowledgeable team that produces higher-quality code at a more rapid pace.

In this talk, I lay out the concepts of Deliberate Practice and Learning-Performance Distinction. You'll learn how to facilitate learning opportunities to ensure the best outcomes, and I'll give you examples of practices that I have done (and continue to do) at companies that use Deliberate Practice, and the positive outcomes that we achieved. Attendees will get to participate in a simple, but effective example of practices they can start with their teams immediately.

-Learning Outcomes-
Understand the concepts of Deliberate Practice and Learning-Performance Distinction.
Understand the outcomes that learning as a group will bring to the team, and how to expand those outcomes to more than just developers.

Working the way we want!

Starting in 2016, I was part of an amazing experiment of 40+ people who self-organized and dynamically re-teamed around our work, using two-day iterations to produce amazing high-quality applications for a large healthcare insurance company. Our process became what is now called Fluid Scaling Technology (FaST).

In his book, The Art of Agile Development (2nd Ed.), James Shore called FaST:

"One of the most promising approaches to scaling I've seen."

Attendees will learn about the processes and practices of FaST, but even more, they will understand how we created an environment of learning, growth, and team responsibility that allowed us to achieve high-quality, amazing outcomes at a more rapid pace.

We'll discuss how dynamic re-teaming created stronger more knowledgeable teams, and how team self-selection of work improved team ownership and team responsibility for our products and customers. Along with this, I'll talk about how other roles, like scrum masters and managers, became an integral part of making this work, along with how you can implement some or all of these ideas at your company.

*Learning Outcomes*
- Explain the Practices and Processes of FaST.
- Explain Dynamic Re-Teaming, and why it's so effective for teams.
- Understand why Self-Selection of work increases Team Responsibility and Team Ownership of work.
- Recognize the influence that learning as a team has on product quality and the speed of release.
- Understand techniques for improving your team processes and culture.

Paige Watson

Quality Code Craft and Practice

Seattle, Washington, United States