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:
“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.”
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:
Rationally decomposing a system into services and classes
Improving system maintainability
Designing for change
Taking a layered approach to quality
Leveraging code reviews
- Motivation & The Software Crisis
- Overview and Demo of Class Software Project
- Foundations of Software System Design
- Applying Design Principles to Avoid Design Smells
- 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.
- 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 vs Greenfield
- Breaking a Legacy System into Parts
- Re-Implementing Part of a System in a New Architecture
- Async Patterns
- Solution Set Up
- Advanced Dependency Injection
- Advanced Test-Driven Design
- Team Roles
The Software Design and Development Clinic is designed for developers who are:
Effective team communicators who excel at sharing what they learn, interact well with other team members, and can both accept and provide constructive feedback.
Productive developers who are effective at completing their work in a timely manner.
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.
Since classes are limited to 12 students, there are many opportunities for discussions with the instructors.
Email email@example.com to learn more about:
- Future class dates
- Customizing this class to better fit your organization’s needs
- The possibility of your company hosting this class