February 23 - Keynote titled OSGi in the Enterprise: Agility, Modularity, and Architecture’s Paradox
March 22 - 25 - Tutorial on Modular Architecture
June 14 - 17 - Sessions titled Turtles and Architecture and Patterns of Modular Architecture
July 26 - 30 - Two sessions on rich mobile applications and one on agile development. Half day tutorial on software process improvement.
Right on. I just won a Best Buy drawing worth $1000. Either that or I won a shiny new virus by clicking the link. Hmm...what to do. 2012-08-29
The opinions expressed on this site are my own, and not necessarily those of my employer.
The slide deck for my upcoming presentations at SpringOne 2GX, Agile Development Practices, and OOPSLA is complete. This presentation doesn’t spend much time talking about the “softer” side of agile architecture. I don’t make silly statements about avoiding the ivory tower, delivering solutions that work, or embracing change. These are given! I intentionally avoid the buzzwords, like Emergent Architecture, so you won’t find a session that’s full of fluff and short on substance.
I won’t present earth shattering principles of agile architecture. If you’re not already convinced that ivory tower architecture doesn’t work, that you need to find a way to embrace change throughout the lifecycle, or that delivering working solutions is the best way to move, then this may not be the session for you. The general thesis of the presentation follows.
The goal of architecture is to minimize the impact and cost of change. To do this requires we create flexible systems with the ability to adapt and evolve. But with flexibility comes complexity, presenting architects with a paradox. As we design more adaptable systems, the additional complexity reduces their ability to survive. Eventually, the software rots, the architecture crumbles, and the system fails. Therefore, we must find a way to increase adaptability without decreasing survivability.
The presentation begins by examining this goal of software architecture, helping explain why it’s so critically important that we accommodate the natural shifts in architecture that inevitably take place as a software system grows. In other words, change impacts architecture and this demands that we be able to accommodate architectural shifts throughout the development lifecycle. The meat of the presentation is spent exploring how to do this, with lots of real world examples interwoven throughout the discussion. In fact, the presentation is a partial case study that’s gleaned from about a decade of experience practicing what I’m preaching. For more details on these ideas, and the type of discussions we’ll have as part of the presentation, see a few of the following blog posts:
Admittedly, the material I’m presenting isn’t all of my own creation. I view the session as a consolidation of the tried and proven. For example, Ralph Johnson helped backed my thesis when providing the following quote:
…making everything easy to change makes the entire system very complex…
I cite the SOLID principles. I spend some a great deal of time examining the role of modularity in agile architecture, which in my opinion, is a requirement (not the only one, but one that has been missing). I might even talk a bit about services. In the end, I pull all of this information together into what is a clear and cohesive strategy for increasing architectural agility. If you’re attending one of these conferences, I hope you’ll stop by.