Category Archives: Conferences

Reports of conferences visited.

SATURN 2017

Another great SATURN (SEI Architecture Technology User Network) Conference in Denver last week. The cast of interesting and directly applicable topics was led by two main characters: microservices and event sourcing. Apart from those leading roles, there were supporting roles for functional programming, and of course the popular returning role for good old uncle agile architecture. Below is a day-by-day account, with links to the video recordings for each of the sessions discussed.

Tuesday: details and crowdsourcing architecture

A great start with a keynote from @KevlinHenney, stressing the need for attention to details – even (or especially!) for architects. As Edsger Dijkstra wrote, “The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise.” Sometimes architects hide behind the “architecture as an abstraction” definition as an excuse not to go into details. However, sometimes the devil is in the details, meaning a tiny detail may have substantial risk and cost impact – meaning it is architecturally significant (according to Risk and Cost Driven Architecture).

The highest impact speaker this year was undoubtedly Sebastian @vonConrad, whose first session had some great tips about being an influential architect among 23 fully autonomous teams. If you have no decision authority, influence the decision makers (in the teams). And people are most likely to be influenceable when you help them. Sebastian did this by setting up an architecture guild, facilitating inter-team knowledge sharing and peer reviews based on very light-weight architecture documentation for projects (“project docs”) and architectural vision (“light on the hill”). Especially his approach for setting technology standards without stymieing innovations (“sensible defaults”) was refreshing. (I unfortunately had to miss Sebastian’s second session on event sourcing because it coincided with my own session on architecture life cycles – but I will certainly watch the recording once it is published.) Later that day, Stefan Toth (@st_toth) spoke about more or less the same topic under the title “the distributed architect”. Stefan presented a very nice model to decide how “crowd-sourced” your architecture can afford to be, with four levels of central roles: fully crowd-sourced (no architect), architecture marshalls, an architecture owner or the classic architect.

Wednesday: microservices and functional programming

This year’s highlight in terms of usefulness to me was Chris Richardson’s (@crichardson) keynote “There’s no such thing as a microservice“. I have seldom seen one of the field’s rockstars explain a concept so clearly, pragmatically and especially objectively.

Architectures are made to fulfill quality attributes. The quality attributes a microservices architecture is optimized for are all related to development velocity. The price you pay for this velocity is complexity – and it’s not cheap. Making the microservices themselves loosely coupled and simple means that all the remaining essential (coordination) complexity will end up in the surrounding architecture. Chris then went on to introduce his pattern language – a set of architectural tactics meant to address this complexity concern. The most interesting of these patterns was event sourcing, a tactic to avoid microservices having to access common data or using two-phase commits on transactions (often required by business logic). Chris also gave a very pragmatic rule for optimizing the size of a service in a microservices architecture (because “there’s no such thing as an individual microservice”):

  • small enough to be delivered by a small team
  • big enough to have meaningful business functionality

George Fairbanks (@GHFairbanks), one of SATURN’s organizers, won this year’s new directions award for his talk on functional programming, which appears to be coming back in fashion (remember LISP?). George explored the ramifications of this programming paradigm on the architectural level, in a fun way (which included a marbles game).

At the end of the day, I presented at a very interactive session in which we went looking for the common ground between architecting in an agile versus more traditional, project-governed context. Organizations sometimes can be rather sensitive about the words they use to describe elements of architecture work (e.g., “is the solution defined in a project intake form, an epic or a saga?”). In order to stay away from this loaded terminology, I used the metaphor of a human lifetime to analyze how architectural activities and decisions evolve over a solution’s life cycle. I am considering using the response I got in that session to write a little dictionary to help translate between “agilese” and “projectese” language…

Thursday: event storming and architectural decision records

The final conference day started with @RuthMalan‘s acceptance speech for winning this year’s Linda Northrop Software Architecture award. My successor made a passionate plea for visualizing designs that should be based on objective reasoning.

After a hilarious bout of slide roulette, I attended @ThePaulRayner‘s session on event storming, a workshop form for soliciting requirements from stakeholders built on the concept of events (rather than business objects) as the primary entity. It resonated nicely with my plea for time as a first-class citizen in architectural design. Paul’s method seems to be mainly focused on business scenarios, it would be nice to try it out as a way of soliciting change scenarios for architecture roadmapping.

Later, @michaelkeeling gave a nice report of his work introducing architectural decision records (ADRs) in his team at IBM Watson. He observed that modules that have documented ADRs appear to have less rework and greater general design awareness. He gave a series of nice tips in software development teams: — Store with the code, use plain text — Delegate ADR creation — Peer review as you would code — Foster a documentation habit — Make a decision, then document it — Not everything is an ADR! My own experience with ADRs is mostly in a higher level solution architecture context, but points to the same general principles: the threshold to documenting ADRs should be as low as possible, so try to store them in a tool or platform that your team is accessing on a daily basis already – and then coach them.

This was my fifth SATURN conference, and just like the previous years I returned home full of new ideas and inspiration, and with many useful new contacts. You can find recordings of all sessions on the SATURN YouTube playlist.I am already looking forward to the 2018 edition in Plano, TX.

SATURN 2016 – part 2

This is the second and last part of my SATURN 2016 conference report. Since I posted the first part, the organizers have posted video recordings of many of the best talks, and more will follow on the SATURN playlist on YouTube.

Ethical and social considerations in software architecture design featured in many talks, but most prominently in three short “DEV@SATURN” talks by Michael Keeling, João de Sousa and Bett Bollhoefer. DEV@SATURN was a new feature this year: 15 minute talks in the plenary sessions, which yielded some enjoyable and interesting food for thought; I would say a successful experiment. Michael presented a reasoning framework for ethical considerations in architectural decision making, including some reusable quality attribute scenarios for environmental sustainability and fairness to customers and developers. João reported on his work to develop an Internet of Things interaction framework (“Bezirk”) that shifts the power to control data exchanges from companies and application developers to end users – an architecture that gives app users more choices than just the two bad options we are generally given now: give access to everything the app demands or the app doesn’t work at all. João received the conference’s New Directions award for his talk. Bett gave us a glimpse of the insights into mindful software development she gathered in a “Zen of Software Development” booklet (and got the whole audience to do some yoga on the spot…).

Other highlights

For me, the most interesting keynote was Daniel Jackson’s “Rethinking Software Design”. It was mostly about user experience design, and the word “architecture” only appeared once – but Daniel presented some keen insights into the impact of bad user interaction design at the architectural level. Software and solution architects generally do not get very much involved in user interaction design, especially those schooled in the SEI architecture practices, which are mostly based on the notion that non-functional requirements and quality attributes drive architectural design. But isn’t usability also a quality attribute? Bad user interaction design has a substantial risk and cost impact, and can cause a project to fail – both strong indicators that user interaction design is architecturally significant, and thus should be addressed by architects.

Another highlight was Eoin Woods’ talk on Getting your system in production – and keeping it there. 90 minutes of great practical advice. Eoin is a star at systematically presenting solutions, and illustrates each and every point he makes with an amusing (or dramatic) real-life story. Like user interaction, production is another area architects sometimes underestimate, or at best have an ad-hoc approach to. If you have a few minutes, peruse Eoin’s slides, and if you have some more time, watch his presentation here.

getting production

IMG_0472At the close of the conference, I had the honor of receiving the first Linda Northrop Software Architecture Award, a few minutes after Linda herself gave a very nice overview keynote on the status of the software architecture practice. It felt great to get such international recognition for the hard work my CGI colleagues and I put into improving the way we do architecture, during a decade in which the whole idea of up-front design was widely discredited by the mainstream software development community. As noted above, the pendulum seems to be swinging back in the other direction now, and people are back modeling systems in order to build better software – hopefully, before long, with the door open again.
IMG_0470

SATURN 2016 – part 1

This year’s SATURN (Software Engineering Institute (SEI) Architecture Technology User Network Conference) was held in San Diego from May 2-5. Compared to last year, the geographical context was much improved – Southern California felt a lot more relaxed than Baltimore under curfew. The conference organizers had once again prepared an excellent technical program, and as always it was sometimes difficult to choose between tracks – everything was interesting. Fortunately, all presentations were video-recorded, and should appear on the conference website soon.

The fantastic opening keynote was by community guru Grady Booch, who gave us a peek into the future of architecting. He talked about “abstracting the unknown”: architecting the kind of systems that stretch us both technically, socially and ethically. His talk set the stage for a number of central themes that pervaded the program: evolutionary architecture, ethical considerations, and the renewed recognition of the role of modeling (the real world) and intentional design in software engineering. Slides 43-45 in Grady’s presentation give an elegant summary of the modern view of why and how we architect. As for architecting the unknown, it is clear that there is much less opportunity for reuse, and that we need a method that allows our intuition to play a much more prominent role.

architecting the unknown

Grady Booch’s tips when you find yourself having to architect the unknown.

Evolutionary architecture and roadmapping was the topic of talks by Patrick Kua, David Adsit, Alejandro Bianchi, Pierre Pureur (continuous architecture) and myself, and of a keynote by IoT frontrunner Joseph Salvo. The common message here seems to be that the “dot on the horizon”, the architected future state, is becoming less meaningful in a world that changes faster than architectures can be realized. We therefore need architectures and architecting practices that are flexible and resilient enough to maintain their value in a rapidly changing business or technological context. We all reported on our experiences implementing such practices, in my own case introducing an evolution viewpoint to help achieve just enough anticipation in your architecture.

Adding time dimension

Modeling the real world seems to be a prerequisite for an architecture to have that flexibility and resilience. I remember teaching this in Object Oriented Analysis and Design classes in the 90s, but it seems that insight is resurfacing now after having been deprecated by overzealous agilistas for a while. This was the topic of talks by Amber Haley, Arila Barnes and George Fairbanks, and played an important role in Daniel Jackson’s excellent Wednesday morning keynote. George talked about the stigma clinging to modeling in some agile teams, and “modeling with the door shut” to avoid being seen practicing such a shameful activity. It was also funny to see that modern modelers are developing their own, new languages for domain modeling, where we successfully used UML in the past. It seems UML is now so much associated with technical design that people don’t recognize it as a domain modeling language anymore, and feel the need to reinvent the wheel… for similar reasons, much of what we used to call architecture now seems to be relabeled “design thinking”.

model-minded

There is much more to report on SATURN 2016 – next installment coming up soon!

What happened on SATURN 2015

Another great SATURN  (the Software Engineering Institute (SEI) Architecture Technology User Network) conference in Baltimore this year. The setting was a bit surreal – due to social unrest and a curfew(!) we couldn’t really explore the city during the conference, and were pretty much confined to the conference hotel. After three days of intense knowledge exchange, it was a pale, squinting collection of software architects that emerged from the Lord Baltimore Hotel – tired but satisfied. As predicted by George Fairbanks at the start, it was also the “most annoying SATURN ever” – in the sense that there were four parallel tracks, and whichever one I chose to attend, I always knew that there was at least one other very interesting thing going on in one of the other “salons”. Fortunately, many sessions were videotaped and can be viewed on-line.

Last year‘s most prominent topic was DevOps, and it was still prominent on this year’s event. Another topic that keeps attracting attention is the interplay between architecture and agile delivery, the topic of my own two contributions. The rest of the sessions could roughly be divided in coding-oriented (in which MicroServices was the most discussed topic) and business-oriented subjects. I mostly attended the latter.

YouTube-social-icon_red_24px The conference opened with a great keynote address by Mary Shaw about the progress of Software Engineering as an engineering discipline. Mary had studied various engineering disciplines and abstracted a simple and elegant lifecycle, highlighting the growth of a discipline from art to production, commerce, science and eventually engineering. According to Shaw’s model, something is a real engineering discipline if the combination of science, art, production and commerce allows “ordinary” trained people to be systematically successful (as opposed to an art that can only be masted by virtuosi). Mary’s conclusion was “we aren’t quite there yet”.

YouTube-social-icon_red_24px Right after the keynote it was my turn to lead a participatory session on “Maximizing your business value as an architect“, and I felt priviliged that the room was packed with 50 practicing architects from all kinds of organizations.  The discussions were lively, most participated vigorously in the exercise (“prioritize architectural concerns by risk and cost”), and almost all participants indicated they would be able to use the approach immediately in their daily work. I’d like to thank all participants for making this such a gratifying session.

YouTube-social-icon_red_24px On Wednesday morning, InspearIT’s Jochem Schulenklopper gave the presentation that would win the Architecture in Practice award: “Why they just don’t get it: communicating architecture to business stakeholders.” Jochem made some excellent points about the need for architects to learn and communicate in business stakeholders’ language. Learning a language is not trivial and requires exposure. And using a modeling language like UML or ArchiMate to communicate with business stakeholders is useless: you will quickly find yourself explaining the language in stead of explaining the architecture. After the session, even Len Bass indicated that he had learned new insights from Jochem’s talk – a true compliment! Wednesday afternoon started with another great keynote, by Gregor Hohpe: “It’s good to be architect”. Gregor had some very interesting insights into the value of architects to organizations, such as “If you make architecture a second class citizen, you will attract second-class architects who build a third-class architecture”. His metaphor of the “architecture elevator” immediately struck a chord: the value of architects can be measured by how many levels of hierarchy and abstraction they can traverse quickly. Good architects talk to technical engineers and translate their concerns in such a way that they get the attention they deserve at C-level. Conversely, they make the translation of policy and business goals all the way through to the levels below. Gregor posted his own SATURN impressions here.

YouTube-social-icon_red_24px Thursday morning we discussed Fast and Slow Thinking for architects with Rebecca Wirfs-Brock: apart from “be aware of all your biases”, Rebecca had a valuable tip about using pre-mortems at the start of projects to fight some of the more dangerous biases. A pre-mortem is a group exercise in which attendants imagine they are in the future: the project has failed, and everyone describes the scenario that led to failure. A great remedy against WYSIATI (What You See Is All There Is), availability bias etc. I also gave my presentation “Agilizing the Architecture Department”, about our experiences implementing RCDA at ProRail.

YouTube-social-icon_red_24px In the closing keynote, Mark Schwartz of the US Citizenship and Immigration services gave a fascinating and very frank account of a large governement organization’s struggle to find the right architecture organization form to balance agile delivery with cross-system architectural reasoning. Is it Architect as Teacher? Architecture as a Service? The final verdict is still out…

Thanks to all participants who were cooped up together and made this another great SATURN. And it’s not over yet: we still have to watch the recorded trackes that we didn’t attend, so we’ll be busy for a while yet. Next year: San Diego.

 

Impressions of SATURN 2014

SATURN (the Software Engineering Institute (SEI) Architecture Technology User Network (SATURN) Conference) has become my favorite annual professional event. What a great mix of architects, developers and researchers, and what a nice way to learn from each other.

The pervasive theme at this year’s SATURN was DevOps. Throughout the conference it became clear that DevOps is not just a hype-movement “taking agile to the next level”. DevOps will quickly become the standard way to produce a significant part of the world’s software. It is the only way to achieve real web-scale IT, supported by a high degree of automation – and by a strong architecture foundation to ensure qualities like reliability, availability and security.

The goodness started with Stephany Bellomo and Rick Kazman’s tutorial on the architectural foundations for achieving DevOps goals – most notably “deployability”. Stephany and Rick have looked into a number of cases to identify architectural strategies and tactics to decrease deployment time. They did not find any new techniques, but found that existing strategies often needed to be revisited to achieve DevOps goals. According to Stephany, DevOps forces architects to think about streamlining: removing stuff rather than adding. In some cases, this meant removing SOA components… which was ironic, since Stephany is one of the SEI’s leading SOA experts.

On Tuesday afternoon, I gave my own tutorial about Agile Solution Architecting. We had a nice crowd, which included OO design guru Rebecca Wirfs-Brock. Great discussions and feedback.

Wednesday had a nice keynote on refactoring by Bill Opdyke of JPMorgan Chase – some interesting points about making the business case for refactoring to your stakeholders reminded me of a previous blog post. In a session on Customer Collaboration, Samsung told us how they analyzed Twitter data to gather quality attribute requirements for their Galaxy model S5 – quite revealing. My presentation on the Costing View of Architecture was part of the afternoon’s Leadership and Business session.

The final session on Wednesday triggered some great discussion on fostering architecture communities in companies, which led to the creation of a LinkedIn group to allow the discussion to continue after the conference.

Thursday’s highlights were the two keynotes. Netflix’s Dianne Marsh told the story of the open source based tool stack supporting continuous delivery at Netflix. Very inspiring to see DevOps at work, although Dianne’s remark that she “never had to argue a business case or think much about cost” caused some of us to wonder whether successful DevOps implemenations were dependent on unlimited budget availability…

In the closing keynote, IBM’s Jerome Presenti gave us an awesome glimpse into the future. Jerome’s team develops cognitive systems, based on the IBM Watson system that won the Jeopardy quiz. It looks like the “Minds” in Iain M. Banks’s Culture novels are closer than we think… 🙂

On Friday, Rebecca Wirfs-Brock gave a tutorial on “Being Agile about System Qualities”. In terms of concepts, Rebecca’s had a lot of overlap with my own tutorial on Tuesday – but she explained them from the point of view of the agile mindset, which was quite enlightening. Architects can gain more traction with agile teams by being aware of their jargon (e.g. say “Design Spike” in stead of “Architectural Prototype”) and allergies (e.g. don’t use Powerpoint…). Perhaps we should stop using the A-word alltogether, and rather call ourselves “Master Builder” as suggested to me yesterday by a chief architect in a client organization…

All in all, a great week, many new ideas and new friends. Many thanks to all participants and organizers!


Edit (October 2014): you can now watch my Saturn talk (and most others as well) on YouTube:

What happened on Saturn

saturn-tutLast week, I had the priviledge of attending the Saturn 2013 conference in Minneapolis. Those who follow @eltjopoort on Twitter may have already seen some posts about it, but I thought I’d summarize the hightlights in this blog. SATURN is an important international architecture conference, organized annually by the Software Engineering Institute. It attracts an international audience of senior architecture professionals and thought leaders from all industries. All slides and summaries of the talks can be found on the SATURN conference website.

The first tutorial I attended was “Coaching architects” by Felix Bachmann on Monday. Felix talked about non-technical aspects of coaching or leading a group of architects, designers, lead-engineers etc. in a project. For me, the key take-away was his tip to “speed up the process of making mistakes” if you find people are slow to pick up your coaching. That way, people get quicker feedback and learn faster. Felix also repeatedly confirmed the RCDA principle that a leading or coaching architect is responsible for the architecture and the decisions that shape it, “even if the organisation says differently”.

On Tuesday, I gave a tutorial on RCDA’s principle of prioritizing architectural concerns by risk and cost. There was a lively interaction, and positive feedback from the attendants.

saturn-snowUp until Wednesday, we had had nice spring weather at >20 Celsius: then a rare May snow storm hit Minneapolis… fortunately, the Minnesotans had no trouble whatsoever dealing with that. The first keynote was by Stephan Murer, IT director at Credit Suisse. He presented the lessons learned of 15 years of SOA. Very interesting to see the lifecycle of this hyped technology summarized so nicely. Startling fact: it took 5 years (1998-2003) before the SOA services (CORBA-based) started to be used by more than a handful of applications – up till then, the business case for SOA at Credit Suisse was based on small gains from individual projects. Nowadays (2013), the application landscape completely depends on the SOA services exposing the company’s data, and the architecture has paid itself back multiple times. This story shows that long-term decision making is key in enterprise architecture. It also stresses the importance of a vision which may be based largely on belief in good design rather than demonstrable ROI. On the other hand, such a vision can only be sold to management if it is presented with economic arguments, or “you may have a short life as an architect”… Wednesday evening, I gave a lightning talk on assumption-free architecting, which according to the response from the audience was either quite funny or laughable…  see this previous post.

On Thursday, Simon Brown was the winner of the Architecture in Practice presentation award with his talk about the conflict between agile and architecture: myth or reality? (short answer: it’s a myth). Simon is a great presenter, and his award well-deserved. I’ll come back to my own presentation on lean and mean architecting in a later blog.

The closing keynote by Philippe Kruchten was very entertaining. Philippe discussed cognitive bias in architectural decision making; this seems to become an important theme in the architecture community. Philippe’s basis was Kahnemanns “Thinking – Fast and Slow”, a book about which I blogged earlier. Architects have to deal with a lot of cognitive bias, either unconsciously or consciously induced in reasoning fallacies and political games. He gave a long list of (often amusing) examples of how architects can make wrong decisions due to anchoring, confirmatory bias and availability bias. We have all run into  “Golden Hammer” (everything looks like a nail), “Elephant in the Room”, “Not Invented Here”, “Analysis Paralysis” and “Perfection or Bust”. Organizations often engage in architectural “Cargo Cult”, imitating the externally visible behaviour or architecture that appeared to work in another organization, hoping to achieve the same results – without verifying applicability of the underlying mechanisms in your context. Let’s kick our System 2 into gear!

utilization2On Friday, I attended two tutorials. Mary Poppendieck (LEAN high-priestess) taught us the LEAN mindset in a nutshell. I was amazed when she very simply demonstrated that optimizing a delivery organization for utilization inexorably leads to a substantial reduction of throughput! This effect from queueing theory starts at utilization over 50% if the batches of work are large. Powerful illustration: “Highways that are fully utilized are called parking lots”. I need to talk to management about our KPIs… J.

Finally, I attended Philippe Kruchten’s tutorial about roadmapping. RCDA’s Architectural Roadmapping practice is based on Philippe’s work, so there were no new insights for me – but we did have a lot of fun playing his Mission to Mars game.

All in all, a very enjoyable conference –presented RCDA, made new friends and learned a lot. Many thanks to all who made this possible.