The good news is that software design is no longer a black art and the field has consolidated on a set of shared ideas as its foundation. Temperament and aptitude help, but it is now possible to teach developers the essentials of architectural design. The bad news is that mainstream developers are just now starting to become aware of these ideas, yet the scale and complexity of systems has been steadily increasing year after year.
Here are some insights to our philosophy:
- Risk-driven architecting. You can do just enough software architecture by focusing on risks and choosing corresponding design techniques. Your designs will vary in detail depending on how risky each area is for this project, perhaps deep on security but light on auditability.
- Democratic approach. Our courses are for developers and architects. Architecture is a kind of software design that all developers should understand, not just architects.
- Emphasis on engineering. Our courses are on how to design software, not on how to facilitate meetings. Soft skills are a compliment to design skills, not a substitute for engineering know-how.
- Practical advice. You will learn techniques that work in practice and learn anti-patterns to watch out for.