GOTO is a vendor independent international software development conference with more that 90 top speaker and 1300 attendees. The conference cover topics such as .Net, Java, Open Source, Agile, Architecture and Design, Web, Cloud, New Languages and Processes

Michael T. Nygard, Author of "Release It!", Member of Program Advisory Board

Michael T. Nygard

Biography: Michael T. Nygard

Michael Nygard strives to raise the bar and ease the pain for developers across the country. He shares his passion and energy for improvement with everyone he meets, sometimes even with their permission. Living with systems in production taught Michael about the importance of operations and writing production-ready software. Highly-available, highly-scalable commerce systems are his forte.

Michael has written and co-authored several books, including "97 Things Every Software Architect Should Know" and the best seller "Release It!", a book about building software that survives the real world.
Michael is member of the GOTO Aarhus Program Advisory Board


Presentation: Disband the Deployment Army

Track: Continuous Delivery / Time: Tuesday 13:20 - 14:10 / Location: Store Sal, Musikhuset

In operations, it is conventional wisdom that most incidents (read: failures) occur immediately after someone makes changes to the system. Hence, elaborate change management systems are supposed to reduce this risk. On the other hand, both lean and agile disciplines say, "When something is painful, do it more often," because we improve at that which we practice. How can we resolve these opposing perspectives?

It turns out that conventional wisdom deals more with perceived risk than true risk. Conventional wisdom is dangerous. This session will examine the true origins of risk, starting with an economic foundation, and developing ideas about how to reduce real risk.

Workshop: Production ready software

Track: Architecture Training / Time: Sunday 09:00 - 16:00 / Location: Room 3

In this tutorial, you will learn how to create applications that survive the rigors of life in production. Too often, project teams aim to pass QA instead of aiming for success in production. Testing is not enough to prove that your software is ready for continuous availability in the corrosive environment of the Internet.

During this tutorial, you will receive an understanding of the architecture and design patterns that can produce high availability in distributed, multithreaded systems such as those based on Java EE, .Net, or Ruby on Rails. You will also learn about the antipatterns that can sabotage your systems availability and capacity.  

Learn how to:

  •    Avoid common design antipatterns that sap capacity and availability.
  •    Apply stability patterns to produce highly available systems.
  •    Design software for production networks.
  •    Create applications that administrators love.
  •    Design your applications for easy deployment and change.


Introducing Production-Ready Software:

  •    Hostile, high-consequence environments
  •    The testability gap
  •    Recovery-oriented computing
  •    Focus on features
  •    The failure-oriented mindset


  •    Defining stability: What matters to your users?
  •    Failure modes: stability anti-patterns
  •    Architecting for stability: patterns

Capacity and scalability:

  •    Relating performance, capacity, and scalability
  •    Myths about resources
  •    Failure modes: capacity anti-patterns
  •    Capacity improvements: patterns
  •    Architecting for scalability


  •    Appreciating Operations
  •    Evolving interfaces
  •    Evolving schemas
  •    Handling configuration properties and configuration files
  •    Automating everything