Software Architecture in 2018: what’s on everyone’s mind?
I recently had the chance to attend O’Reilly’s Software Architecture Conference in London. For me, it consisted of two fully-packed days of sessions on various topics and an extra day of instructor-led tutorials.
What’s on everyone’s mind, this year? Mainly Kubernetes, microservices, soft skills, and event-driven architecture.
Most of the talks fell into one (or more) of these categories. Kubernetes was the main act (no surprise there) and carried all kinds of presentations falling into both Administrator and Developer territory. Many people were preoccupied with breaking up their monoliths into smaller services while also recognizing that the microservices term might be a buzzword which carries a risk when insisting too much on “micro.” Concerning soft skills, the focus was on communicating architectural decisions, being better communicators in general, and influencing stakeholders. Finally, Kafka and event-streaming are synonymous terms, with various talks and tutorials explaining the features and advantages of event-driven architectures over OOP.
Out of the sessions I attended, I found the ones below particularly engaging. However, there are more, and if you have a Safari Books Online subscription, you will be able to check all of these when O’Reilly Media publishes them (or Youtube, definitely try Youtube!) :)
Sarah J. Wells of the Financial Times, gave an excellent keynote titled “The challenges of migrating 150+ microservices to Kubernetes”, pointing out that automation is very important or in their own words, “doing anything 150 times, takes time!” Having introduced the concept of “innovation tokens,” they advise us to “spend your innovation tokens wisely,” as not all improvements can be made at the same time, and after all, there are so many hours in the day; meanwhile feature requests don’t just go away. One thing I particularly liked was a suggestion for a key metric in software development: “number of sarcastic comments on Slack.” If only they were easy to classify! :) You can find an excerpt on Youtube or watch the full video here.
Chris Richardson talked about “Potholes in the road from monolithic hell: Microservices adoption anti-patterns.” Chris posits it’s important to “learn to walk before you fly,” explaining how teams fail by trying too much too soon (or flying too close to the Sun.) One should aim to improve the following, in order: clean code, test automation, Object Oriented Programming design, Domain Driven Design, DevOps efforts, and lastly Microservices. One point that particularly resonated with me was that it is “easy to get stuck trying to make things better!” Focus on delivering value, not perfection! An excerpt of the presentation is available on Youtube, while the full recording is available here.
Stefan Tilkov presented an amusing and entertaining talk, titled “Why software architects fail and what to do about it.” Stefan made the point that “an Architect’s success formula” is “a little bit of experience, a little bit hands-on, focus on delivery, and no vendor advice!” It doesn’t make a lot of sense for me to try and summarize this presentation, and I highly recommend you watch it here (it’s only 20 minutes!) You can also find an excerpt of it on Youtube.
I am extremely glad I attended Seth Dobbs’s tutorial, named “Shaping and communicating architectural decisions.” I generally struggle with watching three-hour long presentations. However, I found Seth’s advice very interesting and I managed (for the most part) to immerse myself in the various concepts touched upon in this talk. One thing I was left with is Seth’s great advice: “listen to understand, not to interrupt!” It is too common that we are ready and waiting to jump into a conversation and say our piece, often losing focus on what the other person was trying to say. I for one will try to apply this principle and minimize my use of this disruptive behavioral pattern!
Other topics were to look out for “bad team members who do not ask any questions, question everything or question to filibuster.” Seth also advises “avoiding to play the Devil’s advocate” as it’s irrelevant to talk about a point of view that nobody’s concerned of and to attempt and control emotions or in Seth’s own words “responding is better than reacting!”
Another good piece of advice Seth gave, was that “words have lots of meanings!” Using the word hard in conjunction with a task could lead to business owners reaching negative conclusions about you as a person (lazy, uncooperative, etc.), when in fact hard actually implied taking longer. Clarify meaning to avoid confusion!
As always, working in a team is better, and to accentuate this point, Seth left us with a quote:
All of us are smarter than any of us — Tim Brown.
Details of this talk are available here, and while the recording hasn’t been made available yet, you can watch one of Seth’s previous presentations on the subject from earlier in the year:
Part 1: https://www.safaribooksonline.com/videos/oreilly-software-architecture/9781492028116/9781492028116-video318598
Part 2: https://www.safaribooksonline.com/videos/oreilly-software-architecture/9781492028116/9781492028116-video319243
Part 3: https://www.safaribooksonline.com/videos/oreilly-software-architecture/9781492028116/9781492028116-video319242
Part 4: https://www.safaribooksonline.com/videos/oreilly-software-architecture/9781492028116/9781492028116-video319265
I can’t recommend Seth’s talk enough; I for one will be watching it again!
Last but not least, a presentation that doesn’t fall into either of the previous categories, but still a presentation I enjoyed greatly: “All the world’s a staging server” by Heidi Waterhouse.
Heidi’s talk touches on quite a few fallacies of running staging/QA environments and why we should take steps to get rid of running them. Heidi makes the point that staging environments are “a plausible lie” and that they should be “killed!” … to which someone suggested a meme:
In my experience, these types of environments are mostly out-of-date, uncared for, and painful to work with. I wish it were straightforward to do; meanwhile, I can dream!
Details of the talk are available here, while the slides can be found here.
A few other talks that are worth watching are:
- Choreographing microservices — Allen Holub
- Putting microservices on a diet with Istio — Mario Reiner
- Event streaming as a source of truth — Benjamin Stopford
- … I’m sure there are more!
You can also find more details about the conference, below:
- https://conferences.oreilly.com/software-architecture/sa-eu
- https://twitter.com/OReillySACon
- https://twitter.com/hashtag/OreillySACon?src=hash
That pretty much sums it up! Plenty of great talks on Kubernetes and microservices topics, with a focus on breaking up the monolith, improving communication skills (since it’s a conference geared towards Software Architects after all), and a few presentations on event streaming.
As it goes with conferences, I couldn’t physically attend all the interesting sessions, but fortunately, they were all recorded and will be available on Safari Books Online shortly.
Let me know about your conference experience, in the comments!
Thanks,
Mihai