Agile Design and Patterns Resources

This page has a wealth of materials on design patterns, agile design, object-oriented analysis and design. If you are looking for training in any of these topics please go here.

You can visit our Design Patterns Repository.  It is open to the public.

Good places to start are our design patterns page or our Roadmap to Lean-Agile Programming Competencies for a path to learn about our approach to better design, programming and testing.  Extended XP Engineering Practices is currently being built, but provides another good overview of what is useful to know.

If you are considering taking one of our design courses, and want to know if you're ready
Our Pre-Course Materials page (GUEST ACCESS) includes assessments for you to take to see if your skills are optimal for attending the course, and includes links to study materials that will help you bring them up where needed.

If you have taken one of our design courses, and want to make sure your retention is high
Our Post-Course Materials page (ALUMNI ACCESS) includes an assessment and a large number of resources to help you redress any knowledge points that you don't feel you retained as well as you'd like. Note that you need to be an Alumni-level user, which means you have taken one of our courses. Available to anyone is the Design Patterns Repository and Bibliography (GUEST ACCESS) of books we recommend and use in the courses.

If you want to understand Net Objectives' approach to technical skill development
Our "Roadmap to Lean-Agile Programming Competencies" (GUEST ACCESS) is your best place to start for this.

If you just completed one of our Lean or Agile courses and want to explore the resources referred to in the course
Our Lean-Agile courses refer to Emergent Design and encourage developers to do some high level exploration of your problem domain before jumping in, as well as attaining skills in Emergent Design. Look at the following for domain analysis:

Note that links marked (REGISTERED ACCESS) require registration. Those marked (ALUMNI ACCESS) require you to have taken a course of ours (which includes registration).

Agile Design and Patterns

Book
book
(guest access)
Lean-Agile Software Development: Achieving Enterprise Agility
Presentation
presentation
(guest access)
This featured article, Chapter 20 from the Second Edition of Design Patterns Explained: A New Perspective on Object-Oriented Design, discusses how design patterns teach us to separate use from construction and to create our objects in well-defined, cohesive factories.
Past Webinar
past webinar
(guest access)
Lightning Webinars are short (less than 15 minute) videos that are focused on specific topics of Lean, Agile, and Kanban for business-driven software development.
Article
article
(registered access)
This is a brief article by Alan Shalloway on a better way to do reviews. While not XP, it embraces the need for more frequent, yet shorter, communications between team members -- and having only those who will benefit be involved.
Past Webinar
past webinar
(registered access)
This presentation recommends the Memento Pattern for those occasions one needs to remember the state of an object without violating the encapsulation of the object.
Past Webinar
past webinar
(registered access)
This presentation illustrates use of Mock Objects to eliminate some of the dependencies that can hamper unit testing, and also points out the specific relationship between Pattern Oriented Design and Mocks.
Article
article
(registered access)
This featured article, explores the differences between Mock Objects, Fake Objects, and Stub Objects in order to make these terms more specific and therefore more useable.
Article
article
(guest access)
This featured article, Chapter 22 from the Second Edition of Design Patterns Explained: A New Perspective on Object-Oriented Design, focuses on a project done by following the guidelines of Design Patterns, Agile Development, and Refactoring to show how these ideas can inform each other.
Past Webinar
past webinar
(registered access)
This presentation describes a real world project which was approached in an iterative, incremental, integrated fashion, and which resulted in the use of the Object Pool Pattern.
Article
article
(guest access)
This featured article, Chapter 1 from the Second Edition of Design Patterns Explained: A New Perspective on Object-Oriented Design, describes how the object-oriented paradigm grew out of a need to meet the challenges of past practices using standard structured programming.
Past Webinar
past webinar
(alumni access)
This presentation explains two patterns -- Decorator and Chain of Responsibilty -- and investigates the lessons they teach us about encapsulation.
Article
article
(registered access)
How Design Patterns may participate in the maturation of Software Development into a true Profession.
This article became part of Chapter 2 in Scott Bain's book Emergent Design: The Evolutionary Nature of Professional Software Development.
Article
article
(registered access)
Click here for high resolution pdf for printing.
This poster presents a list of qualities, practices, principles, guidance and more for developing code well.
Article
article
(registered access)
This article explores the relationship between patterns and the forces in the problem domain. In particular, how paying attention to key forces can lead to good decisions in design.
Past Webinar
past webinar
(registered access)
This presentation explores the relationship between patterns and the forces in the problem domain. In particular, how paying attention to key forces can lead to good decisions in design.
Past Webinar
past webinar
(registered access)
This presentation examines the contextual forces that can help you to see which pattern to apply to a problem, and how these forces work together. This Streamzine assumes you know the Strategy, State, Template Method, and Abstract Factory patterns.
Past Webinar
past webinar
(registered access)
This presentation examines levels of perspective in Object-Oriented Design.
Article
article
(guest access)
Introduces a useful and easier-to-maintain way of solving certain common design problems. Rather than paying attention to what objects do, functionally, focus on a key distinction: differentiate objects that use other objects from those that instantiate/manage them.
Book
book
(guest access)
Prefactoring
Past Webinar
past webinar
(registered access)
This presentation provides an overview of the critical Principles and Practices that enable Professionalism in Software Development.
Article
article
(alumni access)
This featured article, Chapter 14 from the Second Edition of 'Design Patterns Explained: A New Perspective on Object-Oriented Design', discusses key principles and strategies which are the cornerstones of design patterns to help you to learn their essential mechanisms in order to improve your abi
Article
article
(guest access)
Everything old is new again. The folks who brought us the eXtreme Programming books were, among other things, promoting a set of best practices in software development.
Past Webinar
past webinar
(registered access)
This streamzine features a discussion between Senior Consultants Scott Bain, David Bernstein, Amir Kolsky, facilitated by Jim Trott. They describe what is meant by the term "Programming by Intention", and provide a concrete example.
Past Webinar
past webinar
(guest access)
This talk is about the notion that your perspective on what can and cannot be done often creates its own reality.
Article
article
(guest access)
Solving tricky problems can often involve changing your point of view.
Past Webinar
past webinar
(registered access)
This presentation defines the Open-Closed Principle and shows how refactoring to the Open-Closed reduces over-design and enables low-risk change which is inevitable in all systems which will change during their life cycles.
Article
article
(guest access)
Moving from a procedural approach to an object-oriented one, with all its assumed benefits, tends to add an additional issue: instantiation.
Past Webinar
past webinar
(registered access)
This presentation examines the State Pattern, showing how it can be used as an alternative to traditional event handling in modal systems.
Article
article
(guest access)
In this summary we will examine one way of dealing with change: to prepare for it without creating unnecessary complexity.
Article
article
(guest access)
Creating software is more than one activity. The software that we create does more than one thing, and does most of the things it does in more than one way. Software has to be changed for more than one reason, and these changes are of various types.
Past Webinar
past webinar
(guest access)
Watch Scott's talk at SeaJug about Sustainable TDD
Book
book
(guest access)
Past Webinar
past webinar
(registered access)
As Test-Driven Development has gained in momentum and popularity, it has also been called into question as a viable development strategy past the first 3-4 iterations in Agile projects.
Past Webinar
past webinar
(guest access)
On Thursday, October 22nd, 2009, a group of 60 local developers and testers joined Scott Bain for his new presentation on the aspects of patterns and TDD that empower and enable them both. The event was recorded (audio and slides only) using Camtasia.
Article
article
(registered access)
This featured article, Chapter 19 from the Second Edition of Design Patterns Explained: A New Perspective on Object-Oriented Design, shows how the Template Method Pattern allows for the selective override of a defined sequence of steps based on the likelihood of change and how it can eliminate re
Book
book
(guest access)
Test-Driven Database Development:Unlocking Agility
Past Webinar
past webinar
(registered access)
See descriptions/recordings of the Day Of SAFe webinars
Past Webinar
past webinar
(registered access)
Patterns have been known as “Solutions to Recurring Problems in a Context.” However, they are really more than just that.

Upcoming Events