I ran our From Developer to Architect training course (Coding the Architecture Workshop) earlier this week at Skills Matter in London. 8 people came along, all with slightly different levels of software development/architecture experience and technology background. Historically this course has predominantly attracted people with a Java background, although this is starting to change with more people having experience of the .NET framework. As Antonio Goncalves mentions in his blog entry about the course:
This workshop is completly different from what you are used to where you are sent by your company to be trained. You don't arrive, sit down, listen and leave the room being an architect. Instead you only go through 50 slides in two days, and spend your time working in small groups and interacting with the others. At the end you leave the workshop with your head full of ideas.
If you've been along to one of the Coding the Architecture user groups then you'll know what to expect from this course. There's an element of presentation to set a baseline level of knowledge, but most of the course is very interactive and collaborative, with a focus on nurturing discussion rather than just being a 2-day question and answer session. From my perspective, it's a fantastic course to run because even *I* leave the workshop with my head full of ideas! There's some interesting discussion on TWiT 197 on how education should be less about learning how to pass exams and more about creativity/thinking for yourself. This is exactly the rationale behind our course too.
You can find more information about what the course covers on our training page, but I wanted to share some insight into the case study exercise. It's a collaborative exercise where groups are asked to define an architecture from a small set of functional and non-functional requirements. Given that everybody has different backgrounds and experiences, there's no right answer and the range of technical solutions can often be quite vast. What's important about the case study is looking at how to approach the architecture definition exercise ... which inputs to consider, where to start, how to convey the architecture, what level of detail to go to and, of course, which technologies to choose. The file linked below includes some of the diagrams produced as part of the case study; highlighting the different views, level of detail and notation used to convey solutions.
Even without knowledge of the case study, the diagrams illustrate the variation in how architecture can be conveyed. Expect some essays about this and our overall approach to software architecture in the future; and feel free to get in touch if you have any questions about the course or how we can help you with your own software architectures. Oh, and thanks once again to everybody that came along and made it such an enjoyable couple of days. :-)
Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.