Designing software given a vague set of requirements and a blank sheet of paper is a good skill to have, although not many people get to do this on a daily basis. However, with agile methods encouraging collective ownership of the code, it's really important that everybody on the team understands the big picture. And in order to do this, you need to understand why you've arrived at the design that you have. In a nutshell, everybody on the team needs to be a software architect.
This is a two-day training course about pragmatic software architecture, designed by software architects that code. It will show you what "just enough" up front design is, how it can be applied to your software projects and how to communicate the big picture through a collection of simple effective sketches. Aimed at software developers, it fills the gap between software development and high-level architecture that probably seems a little "enterprisey" for most developers.
The course is interactive; with a combination of presentation, group discussion and group working. Throughout the course you'll solidify everything you learn by defining the architecture for a small software system through a series of exercises focused around a software design exercise and case study.
Yes, you'll be broken up into groups and asked to design a small software system from nothing but a set of requirements and a whiteboard. This includes:
In a word, no. The purpose of the training course is to look at the bigger picture elements of the software design process so there's no focus on writing code. The case study does involve choosing technologies and frameworks though, so that you understand how you'd go about actually building the system you design.
The course can be run in a number of configurations and tailored if necessary:
Name | Days | Summary |
Software architecture for developers | 2 | The full course, as described above. |
Software architecture in a day | 1 | The majority of the full 2-day course without the software design exercises and the in-depth guidance on visualising and communicating software designs. |
Software architecture for managers | 1 | The majority of the full 2-day course without the software design exercises and the in-depth guidance on visualising and communicating software designs. This is popular with project managers, product managers, infrastructure architects and other non-developers that want to know what software architecture is all about. It's the same content as "Software architecture in a day" but pitched at a slightly different level. |
Agile software architecture sketches | 1 | The software design exercise and in-depth guidance on visualising and communicating software designs. |
These courses are provided by Sixty North under license from Coding the Architecture.