Detailed Design Clinic
Registration and Information
Overview
IDesign’s detailed design clinic provides a hands-on, interactive, instructor lead environment for practicing and refining your skills in contract factoring. After you decomposed the system and derived the appropriate services using The IDesign Method, the first critical step in the construction phase of your project is to design service and data contracts for your services. IDesign calls this design process, detailed design. Or in other words, “What goes into the boxes”. With detailed design you must take equal, if not, greater care in designing your contracts as you do with decomposing the system. If done incorrectly you can easily undo the hard work of decomposing the system into services by recoupling the services through their service and data contracts. Service and data contracts must be cohesive, logically consistent, reusable, and independent facets of your services.
Guided by an IDesign Master Architect, participants not only depart with expertise in advanced contract factoring rationale and techniques applied to an IDesign Method architecture, but also with an operational vertical slice the students build during the labs. By the end of the Detailed Design Clinic, students will have performed over 25 individual design exercises, observed 10 interview exercises, and witnessed as many as 20 detailed design presentations. The students iterate on a working vertical slice through the labs, refining the vertical slice from abstract to domain-informed. You cannot find this level of deep immersion and hands-on detailed design experience anywhere else in the industry.
Through a series of individual and team-based exercises, the Detailed Design Clinic will teach you modern, best practice techniques in service and data contract factoring based on real-world scenarios. The IDesign architects have collected and refined these techniques firsthand over almost 30 years of designing and building systems for our customers. The resulting detailed designs have withstood the test of time across many teams and environments.
During the individual exercises, you will produce the detailed design for several problem scenarios IDesign selected directly from real-world systems, including those brought in by the clinic’s participants. Each exercise will walk you through the thought process that produces well-factored contracts. The IDesign architect will present a series of specific factoring problems, then discuss the common anti-patterns surrounding the problems. The IDesign architect will finish each exercise by presenting original tips and tricks you can use to recognize the anti-patterns and avoid them, allowing you efficiently to produce superior detailed designs.
During the team-based exercises, the IDesign architect will teach students techniques that make the process of detailed design as efficient as possible. Techniques that IDesign architects have refined from years of firsthand practice in the field. Students will first learn how to quickly and effectively interview various stakeholder roles for detail based on specific scenarios. These exercises highlight that interviewing for detail is a very different skill than interviewing for architecture. Interviewing for detail also involves different stakeholders. After practicing interviewing, students will practice presenting and justifying the rationale behind their detailed designs to a technical audience of their peers and subordinates. These presentations help participants cultivate the essential “soft skills” that are so important to successfully conveying a design. In normal day-to-day work, this type of knowledge and insight can take many years to attain. The Clinic will shorten your learning curve and provide a perfect forum for focused, high caliber discussions and mentorship.
The Detailed Design Clinic starts with a review of contract factoring essentials and the all-important SOLID Principles. The clinic continues with the session, Factoring the Method that applies contract factoring best practices across each layer and service in the IDesign Method component structure. During these sessions you will engage in numerous factoring exercises, practice presenting of your detailed design, and hear critiques from the IDesign architect. After refining your detailed design skills across the component layers of the IDesign Method, the Detailed Design Clinic tightens the constraints further by considering the technical implications on detailed design of messaging patterns, DTO serialization, and WebAPI.
The Detailed Design Clinic dedicates the final two days of the week to team design exercises. Using the solutions from the earlier factoring exercises, the students will practice interviewing for detail and presenting their detailed designs to a technical audience. The clinic concludes with Vertical Slice Friday. Using IDesign’s original ground-breaking techniques for service-oriented system construction, students will build their vertical slices using the same service-oriented programming model that IDesign architects use to build systems! During the workshop labs, teams will progress their vertical slices from an abstract detailed design to one that contains domain details. To obtain domain details, team members will actively interview each other while they reverse-engineer the detailed design of a well-known website.
Format
A combination of presentation and a lot of hands-on practice.
Target Audience
Any architect, senior lead or developer would benefit greatly from the clinic. Prior experience with the IDesign Method or attendance of the Architect's Master Class is beneficial, but not required.
Duration
Five very intense, long days.
Offering
Available as an on-site training class and as a public training class.
Candidate Projects
In order to design your project at the clinic you should bring the system architecture and the planning assumptions. IDesign will work with you before the clinic to ensure your project is ready by proofing the estimations and the constraints.
Outline
Factoring Essentials
- Service contracts
- The SOLID principles
- Data contracts
- DTOs
- Individual exercises
Factoring the Method
- Addressing volatilities
- Volatility and context
- IDesign Method-informed namespaces and naming
- Components
- Facets
- DTOs
- Numerous individual exercises across the layers
- Student examples
Method Anti-Patterns
- The effects of unripe system design
- The effects of poorly factored service contracts
- Coupled volatilities
- Missing volatilities
- The Contract to Rule Them All anti-pattern
- The Canonical DTO anti-pattern
- The Fat Manager anti-pattern
- The Explosion of Services anti-patterns
- The Collapsed Architecture Option
Technical Considerations
- Messaging patterns detailed design
- Request/response
- The Response awaiter
- The Push API
- One way
- The overloaded term: Events
- Compensating smells
- The multi-purposed DTO anti-pattern
- Commands
- Observables
- Enforcing and codifying detailed design policy
- Technical exercises
- Data Contracts
- Serialization essentials
- Known types
- SO != OO
- Hierarchy and ordering
- Resolvers
- Equivalence
- Version tolerance
- Version roundtripping
Supplemental: Factoring APIs
- Opening the “Green Box”
- API vs. WebAPI
- API scheme minimum design requirements
- Client/API integration strategies
- Gateway essentials
- Proper BFF Pattern
- Polymorphic WebAPI
- Controller factoring
- View Model factoring
- Best practice techniques
- REST vs. RPC
- RPC design schemes
- Auto-generating TypeScript WebAPI SDKs
- Best practice integration with IDesign Method architectures
- The Method in the front end
Team Exercises
- Know Thy Team
- The process of detailed design
- Design is a spectrum
- Pulling the ‘spec’ off the shelf
- Interviewing for detail
- Capturing detail
- Types of vertical slices
- Green vs. brown
- Jr. vs. Sr.
- The architect and detailed design
- Planning
- Construction
- Handoff
- Agile
- Individual and team leadership exercises
- Interview and presentation practice
Service-Oriented Programming Model
- Anatomy of a service mesh
- Service granularity
- Understanding Azure Service Fabric
- The Method in the Fabric
- The Method in Dapr+K8s
Vertical Slice Friday!
- Hands on workshop
- Team-based exercises
- Explore different types of vertical slices
- With HOP and plan in mind
- Reverse engineer website for domain detail
- Galvanize rationale
- Sharpen soft skills
Upcoming Classes
Detailed Design Clinic
Zurich, Switzerland