Software Systems Architecture Workshop

What’s Old is the New New

It seems that the ideas of Software Systems’ Architecture and Software Design are coming back into fashion once more. My how the pendulum swings! Having been conflated with Big Design Up-Front (and Waterfall Methodology), the notion that we might profit by spending some time in actual software design before leaping in to coding fell into disrepute. And now that a generation of developers have coded themselves into the inevitable spaghetti-code nightmare, I find a renewed appetite for the disciplines of Architecture and Design. An opportunity for me to add value: Time for an Architecture Workshop.

What’s the Purpose?

Cross-pollination across industry silos. Real-world experiences and war-stories around structured themes in systems’ architecture. An exploration of tested tools, time-saving tricks and treacherous traps, a sharing of Do’s and Don’ts by experienced practitioners of software architecture.

This is not a course for devs who want to make the leap into software architecture. I plan to do something about providing just that pretty soon. (Get in touch with me if such a course would be useful to you. It will help me prioritise what I’m working on.) This is an experience round-table for those who have ventured into the tech jungle, hacked their way into an impassable tangle and then had to carve a path back to civilisation. They returned with the bruises, scratches and missing limbs to show for it, and the workshop is a unique opportunity for everyone to learn from the perils of their journey.

Why?

Learning experiences in software systems’ architecture tend to be expensive, long duration and have enduring consequences (sometimes decades). Opportunities for in-the-wild tests of alternative, competing architectural choices and tools are generally few and far between for any practicing systems’ architect, and broadscale adoption of entire new architectural methodologies and languages often proves impossible due to corporate inertia and organisational constraints.

We have to learn from one anothers’ experiences if we’re to become better software systems’ architects. That’s what this workshop is for.

Format

This will be a three-day round table engagement – a series of structured conversations around topics central to software systems’ architecture.

The idea is to lay out a set of interesting architectural alternatives in relation to a given topic and then draw on the expertise and experience of workshop participants to come up with appropriate contexts for their use, and actionable insight into the consequences (good and bad) of their implementation.

Example:
We might choose to have a discussion on “Inter-Systems Communication Architectures”. And we might identify several options to choose from: Services/Micro-services, Protocol Buffers, Message Busses, Tuple-Spaces, and so on. We would strive to identify tools that our workshop participants know and have some experience implementing, and they’ll be encouraged to share (honestly!) their experiences so that other participants might learn from their wisdom.

Participation will be limited to 16 people in total so that all voices may adequately be heard, and no more than two people from any one company/organisation, aiming to ensure the diversity of experiences and architectural contexts.

Topics

Here’s where I could use your help! Here’s a short list of potential topics I’ve identified. They may or may not be interesting to you. Please get in touch and let’s start talking about what the most interesting and high-value experience reports might be.

  • Inter-Systems’ Communication: Services, Micro-services, RPC, Message Busses (MQTT, ActiveMQ, etc.), Events…
  • Security Architecture: Client-side? Server-side? On the wire?
  • Scaling and Distribution: Containers, Provisioning, Lambda-services, offshoring storage,…
  • Architectural Process and Languages: UML, C4
  • Patterns of System Architecture
  • Skills: Hiring and Retaining Tech Team, Inspiring, Mentoring, Enabling and Growing People.
  • Agile modelling and iterative design
  • Architecting for failures

Consider this a first-iteration in agile Workshop Development, a sort of Architecture Workshop MVP. Your ideas are vital in directing the discussion and crafting the conversation. We will revise and reprioritise the topic-list as the very first activity in the workshop itself, so participants should come armed with their own burning issues, questions and itches to scratch, and together we’ll figure out where and how to fit them into the programme.

Call to Arms

I could really use your help with this workshop. Help me get the word out so that we can attract a great group of participants… the people with the most to teach us. In times past when I’ve run similar workshops[1] participants have almost universally acclaimed them as among the best, highest value experience of their careers.

I’d love the opportunity to deliver outsize value. Please help to make it all happen.


[1] Workshops were then under the Sun Microsystems banner, and were an enormous success before some committee in California sucked the life out of the course and turned it into a dull, pale ghost of its former self by inflicting their bastardised version of RUP on the world.