What are Patterns?
- Initially developed by architect Christopher Alexander as a ”language to describe common architectural problems and their solutions".
- Adapted in Software Engineering (Design Patterns) to capture “Elements of Reusable Object Oriented Software”.
- Ever since, pattern languages have been developed for many fields.
- Great way for capturing best practices without having to worry about their interplay initially.
Sometimes, the term "best practice" is used as well.
What are Product Development Patterns?
Product development patterns are intended to pragmatically (1) address issues with product development, or (2) apply them for continuous improvement. Generally, we assume that processes are already in place, so they are not intended to establish a development approach from scratch (there are plenty o frameworks available, SAFe, RUP, etc.)
How to use this Pattern Catalog?
- Identify a pain point, or an area that needs improvement. Some patterns help you with this (e.g. Engineering Efficiency Empowerment)
- Measure what you want to improve. This can be quantified (duration of reviews) or qualitative (frustration level of engineers)
- Budget for the improvement initiative, both with respect to time and money
- Find an owner, a sponsor and get buy-in from the team
- Apply the pattern(s)
- Measure the outcome
Work in Progress!
This is work in progress. If you think an important pattern is missing, please add a comment here. Do you think an existing pattern needs to be improved? Then please comment on the page of that pattern.
Classification By Discipline
Often, you know already what area needs improvement: Do you have:
- Structural issues: Problems with your development artifacts, e.g. incoherent and missing traceability?
- Quality issues?
- Inconsistent or missing processes?
- Problems with changes?