You are viewing details from a past event. Please check our upcoming event schedule if you are looking for current content.

Alan Shalloway

Lead Author of Design Patterns Explained, Essential Skills for Agile Developer

Al Shalloway is the founder and CEO of Net Objectives. With over 40 years of experience, Al is an industry thought leader in Lean, Kanban, product portfolio management, Scrum and agile design. He helps companies transition to Lean and Agile methods enterprise-wide as well teaches courses in these areas. Al is a SAFe Program Consultant as well as a certified Kanban instructor by the Lean Kanban University. Al has developed training and coaching methods for Lean-Agile that have helped Net Objectives' clients achieve long-term, sustainable productivity gains. He is a popular speaker at prestigious conferences worldwide. He is the primary author of Design Patterns Explained: A New Perspective on Object-Oriented Design, Lean-Agile Pocket Guide for Scrum Teams, Lean-Agile Software Development: Achieving Enterprise Agility and Essential Skills for the Agile Developer. Al has worked in literally dozens of industries over his career. He is a co-founder and board member for the Lean Software and Systems Consortium. He has a Masters in Computer Science from M.I.T. as well as a Masters in Mathematics from Emory University.

Presentations

Design Patterns Workshop

9:00 AM MDT

This class goes underneath design patterns to understand the principles behind the patterns. Patterns are a manifestation of 3 principles:

  • Find what varies and encapsulate it
  • Design to public methods
  • Prefer delegation over inheritance

This session describes how to think in terms of the principles of patterns to be able to discover patterns in your designs and to create new quality designs when patterns aren’t present.

After presenting the fundamental lessons of design patterns the class proceeds into how patterns can be used both in an upfront manner or in an agile manner. The tutorial continues by comparing and contrasting seemingly different design methods:

  • test driven development
  • pattern oriented design
  • refactoring from poor designs
  • commonality variability analysis
  • designs based on code qualities with standard object-oriented approaches

Taking Software Development to the Next Level

7:30 PM MDT

Things have changed considerably in the last 15 years for software development. In every area of the organization – development, QA, management and the business side. Between design patterns, TDD, ATDD, refactoring, emergent design, eXtreme Programming, Agile, Scrum, Lean and Kanban, new methods have dramatically enlarged our knowledge about how to develop software.

While some still claim software development is complex and we should be using black-box frameworks, this talk presents the idea that we now know enough to dramatically increase the productivity of the industry. The issue is no longer not knowing how to develop great software. The challenge is getting people to incorporate known practices into their development methods. Getting behavioral change is much more complicated than understanding what the change needs to be.

This talk introduces three concepts that we can use to help us take software development to the next level:
• The Technology Gap – the difference between what we know and what we do
• Trim Tabs – the concept that some activities have more than leveraged impact but change the environment within which we work
• The Pickup Sticks Model - for deciding the order of introducing new concepts
While there is a creative aspect to software development, there is a science to it as well. We must embrace this dual nature and increase our capabilities. The time is now.

Avoiding Over and Under Design

8:30 AM MDT

The question of how much design to do up-front on a project is an engaging one. Too much design often results in overkill, complexity, and wasted work. Too little design results in insufficient system structures that require rework, additional complexity, and wasted effort. How can we know what the right balance is? Alan Shalloway shows how to use the advice from Design Patterns coupled with the attitude of not building what you don’t need from Agile. The trick is in observing potential variation, how it may affect you, and then how to isolate these risks in a simple manner.

Alan describes the essence of emergent design – that is, starting with a simple design and letting it evolve as the requirements evolve. He also demonstrates how to refactor to better designs and how this is different from refactoring bad code.

Integrating Systems Thinking into Enterprise Agile With the Lessons of Lean

10:30 AM MDT

While Scrum and XP have become very popular in agile development shops, most companies adopting them run into problems beyond just a few teams. These challenges often fall into a common set of patterns, which points to a lack of systems thinking—the process of understanding how things influence one another within a larger whole.

Alan Shalloway shares his ideas on how the agile community can move beyond its team-centric approach to adopt a more holistic, systems-based approach. Systems thinking creates new opportunities to create substantially larger development teams—Alan calls them “pan-teams.” These teams work interdependently with a common vision and context. Pan-teams enhance the motivations for the teams and individuals to collaborate as a normal part of their daily work thus reducing the amount of forced collaboration. Although not a panacea, systems thinking provides a better platform to solve enterprise-wide challenges because your organization learns to approach problem-solving holistically and avoid the trap of unintended consequences

Pattern Oriented Design: Taking Design Patterns to the Next Level

1:30 PM MDT

This seminar starts by teaching the basics of design patterns. However, instead of focusing on patterns as solutions, we’ll investigate the thought process that created the patterns in the first place. While patterns are often described as “solutions to recurring problems in a context” that’s really only the first step to understanding what patterns really are.

Patterns are really a thought process to solving problems. The patterns themselves, as individual design elements, are interesting and somewhat useful. But, it is when you learn to think in a pattern-oriented way that they deliver the vast majority of their value to you. Patterns are the result of following a few principles – find what varies, encapsulate it and design to an interface that hides the variation – as well as a few additional supporting practices. This seminar will lay these out.

De-Mystifying Kanban: Understanding Its Many Faces

3:15 PM MDT

There is a lot of confusion about what Kanban is. Some of this is due to the fact that many people who have never used Kanban have been deriding it – saying it is a mechanistic team management method that doesn’t respect people. The fact that Kanban is quickly growing and gaining a reputation for success where other Agile methods have had challenges belies that categorization.

But what is Kanban? Even when listening to Kanban thought leaders one will hear different answers. 1) it’s a power agile management system based on lean-flow. 2) it’s a transition management method to assist teams to achieve continuous learning. 3) It’s a way to create visibility for executives to improve their product portfolio management. I can almost here Gilda Radner and Dan Aykroyd on Saturday Night Live describing New Shimmer!

This talk discusses how Kanban actually is a multi-faceted method that assists process, transition and collaboration. Kanban is not a mere tool, or even a set of practices. It’s a mindset that attends to people, their culture, and the systems they find themselves working in. The talk presents a few of the basics of Lean-Flow and theory of constraints that it is based on as well as some of the psychological aspects of people adopting new methods.

While this talk is intended for those considering adopting Kanban, those currently using Scrum will find it helpful as many of the principles and practices of Kanban fit well into the Scrum framework.

Learning Objectives
• Kanban as a transition method
• Kanban as a team practice
• Kanban as a collaborative tool between executives, management and teams
• Why does Kanban work
• How one can improve Scrum with the Kanban mindset
• The principles of Kanban
• Why Kanban works
• Why Scrum works