My final highlight from 2009 is that we improved our Software Architecture for Developers training course by restructuring it and adding more content. We've run this course for several hundred people now and the feedback is consistently excellent. Predominantly it's software developers that attend the course although the amount of existing software architecture experience varies wildly; from people in a pure development role through to others that have done some software architecture/design before. Despite the differing levels of experience, feedback says that the course consolidates existing knowledge and provides clear pragmatic advice on how to actually tackle software architecture and design. We cut through buzzwords and industry fashions, instead taking a common-sense and no-nonsense approach to software design.
I'd say that the majority of people attending the course do have an understanding of their role in the organisation that they work for, although often that same view isn't always shared by everybody in their team. Our discussion of the software architecture role provides some very clear guidelines around this and, again, it's something that people really value because they can use it to help them shape their own role and responsibilities.
One of the things that prompted the enhancements to the course is that we've seen how people often struggle when it comes to tackling software design from a big picture perspective. I've seen this during my consulting work but it's also often apparent during the case study exercise where we provide a set of requirements and ask people to spend about half a day designing a software system. It sounds easy when you see the requirements, but in reality it's easier to get caught up in too much or too little detail. The former sees people thinking too much about the code while the latter sees the system designed as a single box on a sheet of paper. Successful software design needs a balance of both and understanding this is exactly what the case study exercise is all about. It's also worth pointing out that the same techniques can be used when dealing with major system enhancements, so it's not all about greenfield software design.
The course has evolved a great deal over the past year and what we have now really does provide a very rounded, balanced and pragmatic view of software architecture. If you're tasked with designing software and aren't sure where to start, this could be the course for you. It doesn't seem to be the done thing for training providers, but I've published a preview of the course slides to give a feel for the content we cover and to illustrate that we have a very different approach to your regular slide-driven training courses. With only 146 slides over two days, you aren't going to get death by PowerPoint here!
In part 4 we'll look forward to 2010 and outline some of our plans.
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.