It's not long now until the GOTO Copenhagen 2012 conference and I'm really honoured to be hosting the software architecture track. The vision for the track is to get people in the software architecture role to share their experiences of how they approach software projects. Here's the theme that Jasper Arildslund (Trifork) and I came up with.
In this track we relate the origins of the architect back to its roots of being a master-builder and ask why our industry has moved away from this in the real world. You will hear some stories from real master-builders as we take a look at how they approached the software architectures that they created.
We have a number of speakers covering hands-on software architecture from a number of different perspectives and I'm really looking forward to all of the talks. Here's the list...
1. Master-builder; the original generalising specialist? (Simon Brown)
Applying the building metaphor to software doesn't necessarily work, although in medieval times the people that architected buildings were the select few that made into the exclusive society of master-builders. The clue here is in the name and a master-builder really was a master of their craft. Once elevated to this status though, did the master-builder continue to build or was that task left to those less noble? Fast-forward several hundred years and it seems we're asking the same question. Join us as we look at how master-builders fit into our modern world of software development before looking at how my own role has evolved over the years. Read more...
2. A team, a system, some legacy and you (Eoin Woods)
Software architecture is often described as if it is something that is only undertaken (or relevant) when creating a new system from scratch. However in my career I’ve joined many more projects where a system existed already, than projects where I got to design a system from the beginning.
In these situations, it is paramount that you are a “master builder” rather than a designer of castles-in-the-air. A real system exists, it needs help quickly, there is far too much to do and there is no time to wish that things could have been done differently. Action is needed now!
In this talk I’ll describe some of my experiences working on the architecture of existing systems and the principles and techniques that I’ve used to be (mostly) successful in doing this. Read more...
3. Master-builders have rich conceptual models of software design (George Fairbanks)
How hard is it for an architect to be a master-programmer, or a programmer to be a master-architect? One might assume this is easy because both programmers and architects work with the same materials (software) and have the same goal: the design and construction of quality software. In reality, it is quite hard because programmers and architects focus on different aspects of the same software system, aspects that are intricately interconnected. To be a master-builder means understanding programming and architectural aspects separately and being able to reason through the interconnections.
The essential problem is that while we have good descriptions of individual concepts (e.g., encapsulation, design patterns, code indentation style, application frameworks, modules, layers, typing, callbacks, functional programming, quality attributes, domain modeling, code invariants, architectural styles) we lack a clear understanding of how all those concepts fit together and how they interact on real projects.
Until we can relate all these concepts, programmers and architects will only occasionally succeed in being master-builders. This talk presents a conceptual model that relates many of these design concepts and implementation concerns and is a first step towards a clear description of how they all fit together. Read more...
4. Functional Architecture (Phil Trelford)
Much has been made of the promise of functional programming to solve the pressing issues of concurrency woes as we move to a world of multi-core and distribute computing. In this talk I'll draw on my own commercial experience of designing and developing large enterprise applications across a range of industries discussing potential sweet spots for functional programming like domain modelling, domain specific languages and of course concurrency. Along with where object-orientated or a mixed approach may be more appropriate. Read more...
5. 15 Lessons from 15 Years as a Software Architect (Ingo Rammer)
In 1995, Ingo started working on some of the first Internet-based online shops, and he continues to work as a software architect more than a decade and a half later. Quite a bit has changed within these years, but a few things however seem to remain true, no matter what the current wave of technology brings us. In this session, Ingo will talk about his experiences as a software architect (and as a consultant to software architects) and about the lessons he has learned which caused projects to succeed - or to fail. After all: the best mistakes to learn from might be the ones you don’t have to make yourself. Read more...
And there's more
I'm also re-running the tutorial that I ran at QCon London 2012 called Are you a software architect?. See you in Copenhagen!
p.s. George and I will be repeating our talks on Friday at GOTO Amsterdam 2012 too