Great Lakes Software Symposium

November 11 - 13, 2011 - Chicago, IL


Westin Chicago Northwest
400 Park Boulevard
Itasca, IL   60143
Map »

Paul Rayner

Consultant and Partner at Domain Language

Paul is a seasoned team leader and design mentor with hands-on experience in the dominant technologies combined with a mastery of domain-driven design. He is one of those rare people who combines a deep understanding of agile software development process with hands-on technical design ability, able to focus teams on the areas where supple design matters most and leading them over the hurdles to an effective design.

Paul is passionate about pushing the boundaries of what is possible with software process and design - teaching others through public classes, coaching, speaking and writing. He has worked in a wide range of industries in the last two decades, including Government, Education, Mining, Insurance, Financial Services and Public Health. Paul combines years of solution development expertise in C#/.NET with broad practical experience in software ecosystems such as Java and Ruby, and open source tools and frameworks such as Git, NHibernate and SpecFlow.

Paul makes his home in Denver, Colorado with his wife and two children. He is an active member of the Colorado developer and agile communities, being an active member of Agile Denver and a founder of the DDD Denver Meetup group. Paul is a regular presenter at local user groups, on the No Fluff Just Stuff tour in the United States, and at local and international conferences. He can be reached at paul@domainlanguage.com and tweets with an Australian accent at @thepaulrayner.



Presentations

Introduction to Lean-Agile Software Development

Successful software development is about building the right product at the right time for your customers. This means focusing attention on the right places in the portfolio of projects and products that your company provides, and optimizing the entire value stream from "concept to cash" for your customers and the development teams.

Agility is more than just adopting Scrum or some other agile process framework; it involves adopting a new set of Lean-Agile values, principles and practices through the entire software development lifecycle and beyond in order to provide value to customers earlier and more often.

Lean-Agile software development consists of frequent feedback loops, intense team collaboration, continuous improvement, business and customer involvement, baking quality in and consistent delivery of valuable software. Learn how these Lean principles and practices transform software development and the radical difference it can make in your development work and wider organization.

Measure for Measure – Lean Principles for Effective Metrics and Motivation

This presentation explores the nature of motivation and the place of metrics and measurement in software development, and how lean software development principles and practices shed light on motivation and metrics and how they can be used to support deep organizational improvement.

We will examine the nature of motivation in terms of the four intrinsic rewards that drive positive engagement, and also how certain approaches to measuring and managing performance lead to organizational dysfunction. We will also show how the application of lean principles such as building quality into the product, respect for people and optimizing the whole enable more effective approaches to motivation and metrics in software development.

Strategic Design Using DDD

Not every part of a software system will be well-designed. How do you know where to put the time and effort to refine the design, or refactor existing code? Learn how strategic Domain-Driven Design (DDD) patterns can show you how to know which parts of your system matter most to your business and how to focus your team's design efforts most effectively.

Context mapping and Core Domain are key concepts in DDD, providing valuable techniques and insights into where to focus your design attention, yet most developers have never heard of them. This session will introduce the tools of strategic DDD and show you how they can shine a light on your design challenges.

ATDD/BDD with Cucumber Workshop (Bring A Laptop)

Acceptance Test-Driven Design (ATDD), or Behavior-Driven Development (BDD), employs the approach of specification by example. Cucumber is such an amazing ATDD tool because it’s so good at mapping stories and acceptance criteria to automated functional tests.

Product Owners, developers and testers collaborate together to write acceptance criteria in natural language and unobtrusively automate tests for them. This is a hands-on workshop that will have you writing and automated acceptance tests on your own laptop by the conclusion of this session.

Cucumber enables a team to collaboratively create specific examples that specify what the system should do from the user's perspective. These executable specifications function as acceptance criteria for the user stories the team is developing. This workshop will cover:

  • Building quality in
  • Understanding the place of ATDD - The agile testing matrix.
  • Why test automation?
  • Build the right product using specification by example
  • The need for Ubiquitous Language
  • Writing scenarios with Cucumber
  • Using Cucumber to test web applications

This is a hands-on 3 hour workshop with Cucumber using Java, you will need a laptop running the JDK and a text editor (doesn't have to be an IDE). Class tools, materials and code exercises will be provided.

ATDD/BDD with Cucumber Workshop (Bring A Laptop)

Acceptance Test-Driven Design (ATDD), or Behavior-Driven Development (BDD), employs the approach of specification by example. Cucumber is such an amazing ATDD tool because it’s so good at mapping stories and acceptance criteria to automated functional tests.

Product Owners, developers and testers collaborate together to write acceptance criteria in natural language and unobtrusively automate tests for them. This is a hands-on workshop that will have you writing and automated acceptance tests on your own laptop by the conclusion of this session.

Cucumber enables a team to collaboratively create specific examples that specify what the system should do from the user's perspective. These executable specifications function as acceptance criteria for the user stories the team is developing. This workshop will cover:

  • Building quality in
  • Understanding the place of ATDD - The agile testing matrix.
  • Why test automation?
  • Build the right product using specification by example
  • The need for Ubiquitous Language
  • Writing scenarios with Cucumber
  • Using Cucumber to test web applications

This is a hands-on 3 hour workshop with Cucumber using Java, you will need a laptop running the JDK and a text editor (doesn't have to be an IDE). Class tools, materials and code exercises will be provided.