Engineering the Future of Software
April 2–3, 2017: Training
April 3–5, 2017: Tutorials & Conference
New York, NY
 
Grand Ballroom West
Add An architect's guide to evaluating cloud services: 10 things to consider to your personal schedule
10:45am An architect's guide to evaluating cloud services: 10 things to consider Matt Stine (Software Architecture Radio)
Add The hardest part of microservices: Your data to your personal schedule
1:15pm The hardest part of microservices: Your data Christian Posta (Red Hat)
Add Hybrid cloud deployment patterns using Kubernetes to your personal schedule
2:15pm Hybrid cloud deployment patterns using Kubernetes Sandeep Parikh (Google)
Add CQRS and event sourcing: A DevOps perspective to your personal schedule
3:50pm CQRS and event sourcing: A DevOps perspective Stacey Watro (ThoughtWorks), Maria Gomez (ThoughtWorks)
Add Bridging the gap: Event sourcing and system integration to your personal schedule
4:50pm Bridging the gap: Event sourcing and system integration Karun Japhet (ThoughtWorks)
Beekman Parlor
Add Leading software development teams to your personal schedule
1:15pm Leading software development teams Bulama Yusuf (Flexisaf Edusoft Ltd.)
Add Migrating an architecture across batches and streams to your personal schedule
2:15pm Migrating an architecture across batches and streams Michelle Brush (Cerner Corporation)
Add The little things of horror to your personal schedule
3:50pm The little things of horror Alasdair Allan (Babilim Light Industries)
Add Monitoring reactive microservices to your personal schedule
4:50pm Monitoring reactive microservices Henrik Engstrom (Lightbend)
Sutton North/Center
Add Smoothing the continuous delivery path: A tale of two teams to your personal schedule
1:15pm Smoothing the continuous delivery path: A tale of two teams Lyndsay Prewer (Lyndsayp Ltd / Equal Experts)
Add Serverless architecture on AWS: Our experiences to your personal schedule
3:50pm Serverless architecture on AWS: Our experiences Christopher Phillips (Stanley Black and Decker)
Sutton South/Regent Parlor
Add Reactive microservice design to your personal schedule
10:45am Reactive microservice design Duncan DeVore (Lightbend)
Add Three rules for domain-driven design to your personal schedule
1:15pm Three rules for domain-driven design Steven Lowe (ThoughtWorks)
Add Reactive for machine-learning teams to your personal schedule
2:15pm Reactive for machine-learning teams Jeffrey Smith (x.ai)
Add Modules or microservices? to your personal schedule
3:50pm Modules or microservices? Sander Mak (Luminis Technologies)
Nassau East/West
Add Architecting for the "-ilities" to your personal schedule
10:45am Architecting for the "-ilities" Nathaniel Schutta (Ntschutta.com)
Add Applying SRE techniques to microservice design to your personal schedule
2:15pm Applying SRE techniques to microservice design Theo Schlossnagle (Circonus)
Add Serverless applications with Apache OpenWhisk to your personal schedule
3:50pm Serverless applications with Apache OpenWhisk Rodric Rabbah (IBM Research)
4:50pm TBC
Add Wednesday opening remarks to your personal schedule
9:00am Wednesday opening remarks | Room: Grand Ballroom Brian Foster (O'Reilly Media, Inc.), Neal Ford (ThoughtWorks)
Add Give me that old-time pattern language to your personal schedule
9:05am Give me that old-time pattern language Matt Stine (Software Architecture Radio)
Add The architects below to your personal schedule
9:25am The architects below Jessica Kerr (Atomist)
Add It starts and ends with you to your personal schedule
9:50am It starts and ends with you Aaron Bedra (Eligible)
Add Closing remarks to your personal schedule
10:10am Closing remarks Brian Foster (O'Reilly Media, Inc.), Neal Ford (ThoughtWorks)
10:15am Morning Break | Room: Sponsor Pavillion
3:05pm Afternoon Break | Room: Sponsor Pavillion
Add Speed Networking to your personal schedule
8:15am Speed Networking | Room: 3rd Floor Promenade
Add Lunch and Wednesday Topic Tables to your personal schedule
12:15pm Lunch and Wednesday Topic Tables | Room: Mercury Suite and Trianon Complex
10:45am-12:15pm (1h 30m) Fundamentals Best Practice, Overview
An architect's guide to evaluating cloud services: 10 things to consider
Matt Stine (Software Architecture Radio)
The verdict is in: the cloud is NOT a fad. As a software architect, you will soon be called upon to evaluate various cloud services and determine their suitability for your company's use (If you haven't been already). Matt Stine outlines 10 key criteria that you can use to evaluate any cloud service.
1:15pm-2:05pm (50m) Microservices, pros and cons Best Practice, Case Study
The hardest part of microservices: Your data
Christian Posta (Red Hat)
With a microservices architecture, we optimize for speed by developing independent, autonomous services with their own change cadence with minimal dependency coupling. An overlooked dependency, which happens to be the most important, is data consistency. Christian Posta explains how a balance of domain-driven design, transactions, and CAP theorem can guide us in a microservices world.
2:15pm-3:05pm (50m) Integration architecture Best Practice, Framework-Focused
Hybrid cloud deployment patterns using Kubernetes
Sandeep Parikh (Google)
Hybrid and multicloud deployments are critical approaches for bridging the gap between legacy and modern architectures. Sandeep Parikh discusses common patterns for creating scalable cross-environment deployments using Kubernetes and explores best practices and repeatable patterns for leveraging Kubernetes as a consistent abstraction layer across multiple environments.
3:50pm-4:40pm (50m) Distributed systems Best Practice, Overview
CQRS and event sourcing: A DevOps perspective
Stacey Watro (ThoughtWorks), Maria Gomez (ThoughtWorks)
Many organizations are moving toward a distributed system architecture like command query responsibility segregation (CQRS) and event sourcing. Maria Gomez and Stacey Watro discuss the challenges of deploying and supporting these systems in production and explore different strategies to mitigate these challenges, such as building resilient systems and monitoring.
4:50pm-5:40pm (50m) Integration architecture Best Practice, Case Study
Bridging the gap: Event sourcing and system integration
Karun Japhet (ThoughtWorks)
Karun Japhet tells a tale of bridging the technological divide between modern event-sourced systems and more traditional architectures from the last few decades, exploring how a resilient, modern, event-sourced, CQRS-based, domain-driven designed platform can be built with eventual consistency guarantees when third parties provide no guarantees of reasonable service.
10:45am-12:15pm (1h 30m) User experience design Hands-on, Overview
AMP + progressive web apps: Start fast, stay engaged
Chris Wilson (Google)
Progressive web apps (PWAs)—a technology allows sites to deliver rich experiences without worrying about networks—are the future of the mobile experience. Chris Wilson explains how to use PWAs along with accelerated mobile pages (AMP) to deliver fast initial loading and reliable second-visit performance, as well as advanced features like offline reading and a richer UI.
1:15pm-2:05pm (50m) Fundamentals Overview, Theoretical
Leading software development teams
Bulama Yusuf (Flexisaf Edusoft Ltd.)
Software architecture and architects focus on engineering, business, and the user—the developer experience is usually an afterthought, which impacts the quality of the system being built. Bulama Yusuf discusses the importance of the developer experience and why it is important that the people who are going to build the system be taken into consideration right from the start.
2:15pm-3:05pm (50m) Distributed systems Case Study
Migrating an architecture across batches and streams
Michelle Brush (Cerner Corporation)
Realizing you want a new architecture is easy, but convincing your leadership is difficult, and actually doing it is by far the hardest part. Michelle Brush shares a case study of migrating from batches to streams, covering the often overlooked impact to operations, support, and team dynamics and providing advice on how to minimize the impact.
3:50pm-4:40pm (50m) Security Best Practice, Case Study
The little things of horror
Alasdair Allan (Babilim Light Industries)
A review of the internet of things finds poor architectural choices, poor decisions, and poorly secured things. In the rush to connect devices to the internet, we have built devices with sloppy privacy and sloppy security. It can't continue. Alasdair Allan explains why our mistakes must inform future architectures before the internet of things becomes a threat to the internet itself.
4:50pm-5:40pm (50m) Devops Best Practice, Theoretical
Monitoring reactive microservices
Henrik Engstrom (Lightbend)
Reactive applications are the next major evolution of the internet. However, this method of architecting systems introduces some new issues (for instance, with monitoring). Henrik Engstrom explores the traditional monitoring approach and outlines different ways to monitor asynchronous applications before offering an overview of the Lightbend monitoring tool for reactive applications.
10:45am-12:15pm (1h 30m) Fundamentals Best Practice, Overview
Designing serverless applications with AWS Lambda and Java
John Chapin (Symphonia)
John Chapin explores AWS Lambda in depth, covering the Lambda execution environment, Lambda’s Java runtime characteristics and best practices for Java-based Lambdas, and techniques for effectively using services like Cloudwatch, DynamoDB, and Kinesis with Lambdas.
1:15pm-2:05pm (50m) Devops Best Practice, Case Study
Smoothing the continuous delivery path: A tale of two teams
Lyndsay Prewer (Lyndsayp Ltd / Equal Experts)
Continuous delivery is gaining recognition as a best practice, yet adopting and iteratively improving it is challenging. Lyndsay Prewer shares various best practices for doing continuous delivery well, drawn from his experiences working with two very different organizations—one with a .Net monolith architecture, the other with a microservice architecture of over 300 Scala microservices.
2:15pm-3:05pm (50m) Optimization Best Practice, Case Study
Software (r)evolution: A crystal ball to prioritize technical debt
Adam Tornhill (Empear)
Adam Tornhill introduces novel techniques to uncover both problematic code and the social dimension of the teams that build your software. This combination lets you prioritize the parts of your system that benefit the most from improvements, detect organizational issues, and make practical decisions guided by data.
3:50pm-4:40pm (50m) Fundamentals Best Practice, Case Study
Serverless architecture on AWS: Our experiences
Christopher Phillips (Stanley Black and Decker)
Stanley Black and Decker's Digital Accelerator has spent the last year migrating existing applications, and creating new ones, using serverless architecture on AWS. Christopher Phillips explores the pros and cons of going serverless, as well as the tools and patterns you need and the caveats learned along the way.
4:50pm-5:40pm (50m) Microservices, pros and cons Anti-Pattern, Best Practice
10 lessons learned from building cloud-native middleware microservices
Kai Wähner (Confuent)
Kai Wähner shares 10 lessons learned from building cloud-native microservices in the middleware world, including the concepts behind cloud native, choosing the right cloud platform, and when not to build microservices at all, and shows how to apply these lessons to real-world projects by leveraging Docker, CloudFoundry, and Kubernetes to realize cloud-native middleware microservices.
10:45am-12:15pm (1h 30m) Microservices, pros and cons Best Practice, Hands-on
Reactive microservice design
Duncan DeVore (Lightbend)
Reactive microservice design is the future of application design. Drawing on his deep understanding of distributed systems and reactive programming, Duncan DeVore shares the know-how for building apps that are responsive, resilient, and elastic in the face of failure and extreme load.
1:15pm-2:05pm (50m) Fundamentals Best Practice
Three rules for domain-driven design
Steven Lowe (ThoughtWorks)
Domain-driven design (DDD) helps focus and guide software development efforts, but learning DDD can be a daunting task. Steven Lowe shares three simple philosophical rules that guide understanding and application of DDD—capture the domain model, embed it in the code, and protect it from corruption—and explains how these rules guide DDD at all scales.
2:15pm-3:05pm (50m) Reactive and its variants Best Practice
Reactive for machine-learning teams
Jeffrey Smith (x.ai)
Machine-learning systems can be designed to be just as reactive as the most bulletproof web or mobile app. It takes a system-level understanding of your machine-learning system and a team-level commitment to continual evolution. But you can succeed. Jeffrey Smith shows you how.
3:50pm-4:40pm (50m) Microservices, pros and cons Best Practice, Overview
Modules or microservices?
Sander Mak (Luminis Technologies)
Microservices offer advantages but also come with associated costs. Modularizing applications without going the full microservices route is a viable alternative that is often overlooked. Sander Mak helps you ask the right questions in order to make good decisions for the right reasons.
4:50pm-5:40pm (50m) User experience design Best Practice
Story mapping evolved: How to tie architecture to user experience design using annotated journeys
Dion Stewart (Third Star, Inc.)
Dion Stewart offers an overview of user story mapping—a technique for improving product delivery by keeping development focused on users—using annotating user journeys, which help architects design elegant systems by ensuring the needs of the user experience are met and using the user experience to inform architectural decisions.
10:45am-12:15pm (1h 30m) Fundamentals Best Practice
Architecting for the "-ilities"
Nathaniel Schutta (Ntschutta.com)
Developers focus on functional requirements, but once you step into the architect role, your world is increasingly inhabited by the "-ilities"—the nonfunctional or quality attributes of a software system. But which "-ilities" matter and which don't? Nathaniel Schutta explores approaches to architectural problems and explains how to best document the inevitable decisions we arrive at.
1:15pm-2:05pm (50m) Sponsored
It’s not continuous delivery if you can’t deploy right now.
Ken Mugrage (ThoughtWorks )
People often say that they're practicing continuous delivery followed by something like "I can let the security team know any time" or "I just have to run the performance tests." Ken Mugrage explains why you're not done with your continuous delivery journey if you can't push your software to production right now.
2:15pm-3:05pm (50m) Sponsored
Applying SRE techniques to microservice design
Theo Schlossnagle (Circonus)
The domain of the SRE has evolved tremendously over the last several years. Central to this evolution is the construction and operations of resiliency in services. Theo Schlossnagle shares techniques learned from the world of SRE to build faster, safer, and better microservice architectures.
3:50pm-4:40pm (50m) Sponsored
Serverless applications with Apache OpenWhisk
Rodric Rabbah (IBM Research)
Apache OpenWhisk is a state-of-the-art serverless computing platform. Rodric Rabbah explores OpenWhisk features and demonstrates how they can be used to develop rich web applications, including chatbots with Slack and Facebook Messenger integration.
4:50pm-5:40pm (50m)
Session
To be confirmed
9:00am-9:05am (5m)
Wednesday opening remarks
Brian Foster (O'Reilly Media, Inc.), Neal Ford (ThoughtWorks)
Program chairs Brian Foster and Neal Ford open the first day of keynotes.
9:05am-9:25am (20m)
Give me that old-time pattern language
Matt Stine (Software Architecture Radio)
What is a microservice? What do you mean when you say service discovery? How does a circuit breaker work? These questions (and many more like them) are rapidly circulating within our industry, and we're struggling to answer them well. You'll rediscover the value of pattern languages as Matt Stine explains how they can help us make sense of the ongoing paradigm shift in software architecture.
9:25am-9:45am (20m)
The architects below
Jessica Kerr (Atomist)
These days one of the hardest problems in software is software. Code to run our code, code to change our code, code to see into what our code is doing—all determining how our components run and talk to each other. Jessica Kerr explores those powerful architects below that we call infrastructure engineers.
9:45am-9:50am (5m) Sponsored
Serverless architectures built on an open source platform
Daniel Krook (IBM)
Daniel Krook explores Apache OpenWhisk on IBM Bluemix, which provides a powerful and flexible environment for deploying cloud-native applications driven by data, message, and API call events.
9:50am-10:10am (20m)
It starts and ends with you
Aaron Bedra (Eligible)
Security starts and ends with architects. Designers of systems have the responsibility to ensure that security is built in. Aaron Bedra walks you through the security skills you need as a system designer and architect, identifying common gaps and misconceptions and sharing resources to help you improve your security architecture knowledge.
10:10am-10:15am (5m)
Closing remarks
Brian Foster (O'Reilly Media, Inc.), Neal Ford (ThoughtWorks)
Program chairs Brian Foster and Neal Ford close out the last day of keynotes.
10:15am-10:45am (30m)
Break: Morning Break
3:05pm-3:50pm (45m)
Break: Afternoon Break
8:15am-8:45am (30m) Business skills
Speed Networking
Jumpstart your networking at Software Architecture by coming to Speed Networking on Wednesday morning before the keynotes begin. Bring your business cards and prepare a minute of patter about yourself, your projects, and your interests.
12:15pm-1:15pm (1h)
Lunch and Wednesday Topic Tables
Join other attendees during lunch at Software Architecture to share ideas, talk about the issues of the day, and maybe solve a few. Not sure which topic to pick? Don’t worry—it's not a long-term commitment. Try two or three and settle on a different topic tomorrow.