EDUCATION

DPL Software Design and Development Clinic

This is not just another code camp.

Our week-long Software Design and Development Clinic is designed to start transforming experienced developers into software engineers capable of managing complex software systems.

A solid software engineering foundation is essential for creating quality software. Decades of experience has taught us many things and shaped how we approach software development. We believe this is so powerful that it must be shared with our fellow software developers and engineers if the industry is going to advance the practice of software design and development.

Here is what some of the students are already saying about the class:

doug durham

“I see this as what I hope is the future of software design.”

“A number of my colleagues would benefit from learning what our software design does for us, and why. It has certainly benefited me.”

“Good format for exchanging code / design ideas. Seeing concepts put into action creates motivation for doing it.”

LEARNING + DOING

Our approach to the Software Design and Development Clinic is not based on lectures alone. At least 2/3 of the class is spent with real‑world code and in-depth exercises to illustrate how best practices and proven methodologies can make developers more productive, feel more effective, and produce well-architected software.

Using projects created specifically for this course, students will practice concepts such as:

R

Managing complexity

R

Rationally decomposing a system into services and classes

R

Improving system maintainability

R

Designing for change

R

Taking a layered approach to quality

R

Leveraging code reviews

COURSE OUTLINE

Foundations 1

  • Motivation & The Software Crisis
  • Overview and Demo of Class Software Project
  • Foundations of Software System Design
  • Applying Design Principles to Avoid Design Smells

Foundations 2

  • Going from User Stories to a Software Design
  • Test-Driven Design
  • Code Reviews

The hands-on portions include the design of an Ecommerce back-end solution and subsequent code reviews of each student’s work.

Implementing Features

  • White Papers
  • Interface and Data Contract Design
  • Feature Implementation

The hands-on portions include continued development of the Ecommerce software project, which involves adding features to the solution with a focus on interface and contract design, implementing complex workflows, and developing automated unit and integration tests.

Brownfield Development

  • Brownfield vs Greenfield
  • Breaking a Legacy System into Parts
  • Re-Implementing Part of a System in a New Architecture

Advanced Topics

  • Async Patterns
  • Solution Set Up
  • Advanced Dependency Injection
  • Advanced Test-Driven Design
  • Team Roles

WHO SHOULD ATTEND THIS COURSE?

The Software Design and Development Clinic is designed for developers who are:

R

Effective team communicators who excel at sharing what they learn, interact well with other team members, and can both accept and provide constructive feedback.

R

Productive developers who are effective at completing their work in a timely manner.

R

Pattern followers who work well at adapting existing code but may not fully possess the “big picture” understanding needed to identify when and how to apply design principles.

The Software Design and Development Clinic is led by Don’t Panic Labs CTO Doug Durham and Software Architect Chad Michel. Together they have over 50 years of software development and architecture experience.

Chad Michel and Doug Durham
Chad Michel

Since classes are limited to 12 students, there are many opportunities for discussions with the instructors.

Our next class will be held June 26-30.

Email softwareclinic@dontpaniclabs.com to learn more about:

  • Pricing
  • Enrollment
  • Future class dates
  • Customizing this class to better fit your organization’s needs
  • The possibility of your company hosting this class