Host:
Frank Buschmann
Today's software systems grow in size, complexity, and scale. Choosing and mastering the appropriate design and programming technologies is no longer sufficent for success. Key to success are the architect's skills to utilize these technologies for designing software systems that, with economy and elegance, are able to meet the requirements to which they are subjected. For a selection of important types of software system we will therefore present concrete real-world examples from which we can learn how to design such systems but also how experienced architects master the challenenges in the systems' domains. This practical experience helps taking a fresh new perspective on our own systems, enabling us to ensure their architecture sustainability and appropriate technology use.
Host:
Erik Dörnenburg
Some companies have implemented agile processes, and they need to know how to make them work better. Some companies are considering to switch to agile, but are worried about the implications of doing that. We will hear how leading practitioners present and explain their latest experiences and pitfalls in implementing agile principles.
Host:
Erik Dörnenburg
This track is about the technical essentials you need to know to make Agile software development reliable and sustainable. It will include "refresher" topics, for those who are just starting or have been getting a bit rusty, and some of the new ideas and practices that have come out of a decade of experience in the discipline.
Host:
Michael T. Nygard
A collection of systems doesn't behave like a "single system only bigger." Dealing with a portfolio of systems isn't just a question of where to put a new feature or tweak some functionality. Complexity creeps in everywhere--from technological issues, certainly, but also from organizational and financial concerns. (Conway's Law holds in the large just as it does in the small.) The accumulation of complexity in systems and organizations gradually leads to that swamplike, paralyzing condition we usually label "Enterprise".
This track examines two approaches to attacking this complexity. You will learn architectural and portfolio management techniques to dealing with collections of systems. Using these methods, your organization can deliberately create opportunities to move, adapt, and flex in the future.
Host:
Gregor Hohpe
Cloud Computing is an exciting emerging technology which will impact everything from the IT Data Center to Personal Mobile Devices. Unlike traditional monolithic applications most cloud applications will be composed of multiple services leveraging the programmable web. But there are two sides of this, and this is the parts that is close to the users of the systems.
Host:
Gregor Hohpe
Cloud Computing is an exciting emerging technology which will impact everything from the IT Data Center to Personal Mobile Devices. Unlike traditional monolithic applications most cloud applications will be composed of multiple services leveraging the programmable web. But there are two sides of this, and this is the "behind the stage" side of things.
Host:
Kresten Krab Thorup
This track aims to push this revolution forward by giving an overview of techniques and methodologies that can make efficient and correct(!) concurrent programming mainstream. Programming languages have an important role here in providing programming models and compiler support to deal with complexity and efficiency issues. Hence, important programming language concurrency models are covered as well as more basic concurrency problems and solutions.
Prepare to be surprised and amazed!
Host:
Michael T. Nygard
Today's high-volume websites operate at unprecedented scale. Applications running at web scale present unique management, monitoring and operations challenges. In this track, we explore these challenges, and some of the solutions that high-scale websites are using to deliver successful results.
Host:
Brian Goetz
An embedded system is a computer system designed to perform one or a few dedicated functions often with real-time computing constraints. We will hear how the embedded systems experts work around or even make use of the constraints faced by embedded systems.
Host:
Dan Ingalls
End Users Increasingly play more of a role in development. This ranges from requirements coming out of acceptance testing to complete application development. In this session we explore languages, tools and techniques that increase user participation in application development.
Host:
Brian Goetz
The applications that we build are constrained by the limitations and features of the systems that we build upon. In this track, we explore these limitations, with a particular focus on scalability, parallelism, and support for new language features. Attend these talks to learn about how the language and systems engineers build the features that we depend upon, and about the features you will use when building the applications of tomorrow.
Host:
Beat Schwegler
Understanding frameworks and platforms is arguably one of the key skills for successful software developers. While they abstract the details and complexity of the underlying infrastructure they mostly impose a certain architecture or design. Leveraging them to their advantage not only includes a thorough knowledge on the APIs but also a deep understanding of their specific guidelines for application design and architecture. This track covers different frameworks and provides crucial insight to become even more productive in creating efficient and reliable applications.