Jeromy Carriere of Google, member of the SATURN 2014 Program Committee and previously featured speaker at SATURN, dug through presentations from previous years at SATURN and put together a list of some he found valuable:
Invited talk: Games Software Architects Play (Phillippe Kruchten)
“The life of a software architect is a long (and sometimes painful) succession of suboptimal decisions made partially in the dark.” Phillippe takes us on a tour of some of the ways that we make bad decisions: cognitive biases, reasoning fallacies, political games. Sadly, each example resonates with me, and not just because I’ve seen them in other people. Architects have to rely on intuition, but we also need to know when and how it fails us.
Keynote: Architecture in the Age of Composability (Jan Bosch)
Jan brings his usual breadth of experience, depth of engineering expertise, and inimitable style to this presentation. Based on the fundamental observation that speed–minimized software cycle times–is the cornerstone of innovation, Jan talks about the continuing evolution of software engineering toward a focus on platforms and ecosystems, in an effort to maximize composability. Some of my favorite ideas: “interconnected teams and organizations asymptotically reduce productivity to zero” and “the company running the most experiments against the lowest cost per experiment wins.”
BestBuy.com’s Cloud Architecture
I really like the practicality of this presentation–a nice clean case study that’s relevant to any organization or team looking to take advantage of cloud economics.
Low Ceremony Architecture
Now that I’m at Google, I feel even more strongly that the ideas in this presentation are key: we need better approaches to understanding when to invest in “little-A” architecture: how much should a project or team invest in maintainability, scalability, reliability? When?
Big Ball of Mud: Is This The Best That Agile Can Do?
I laughed. I cried. I think everyone is familiar with this prevalent phenomenon in software, but why is it so prevalent, even when every professional developer knows about it? How do we do better?
Analyzing the Evolution of Software by Change Analysis
I’m a big fan of technical debt … yes, you read that right–I think technical debt is a good thing, if managed properly (technical debt is good in the same way that financial debt is good–it’s why I can live in Manhattan). This presentation provides some practical guidance to help with managing technical debt, in the form of change analyses that increase our comprehension of the evolution of a system.
An Architecturally Evident Coding Style
Since my work years ago in “software architecture reconstruction,” I’ve longed for practical and repeatable ways to make design decisions explicit and persistent in code (to make the whole reconstruction thing unnecessary). Evans’ work on domain-driven design is a nice step, but doesn’t take us far enough to see architecture–styles, patterns, quality requirements, evolution–in the code. George takes the next step.
Automated Provisioning of Cloud and Cloudlet Applications
Designing for robust and secure containers is a hot topic in the cloud space. This presentation targets the mobile space, but offers ideas that are applicable for many use cases where a secure multi-party execution environment would be useful.
– Jeromy Carriere, Google