You are viewing details from a past event. Please check our upcoming event schedule if you are looking for current content.

Kirk Knoernschild

Software Developer & Mentor

Kirk is software developer with a passion for building great software. He takes a keen interest in design, architecture, application development platforms, agile development, and the IT industry in general, especially as it relates to software development. His recent book, Java Application Architecture was published in 2012, and presents 18 patterns that help you design modular software.

Presentations

Refactoring the Monolith

3:15 PM MDT

Monoliths are out and microservices are in. Not so fast. Many of the benefits attributed uniquely to microservices are actually a byproduct of other architectural paradigms with modularity at their core.

In this session, we’ll look at several of the benefits we expect from today’s architectures and explore these benefits in the context of various modern architectural paradigms. We’ll also examine different technologies that are applying these principles to build the platforms and frameworks we will use going forward.

Along the way, we’ll explore how to refactor a monolithic application using specific modularity patterns and illustrate how an underlying set of principles span several architectural paradigms. The result is an unparalleled degree of architectural agility to move between different architectural paradigms.

From Fragile to Agile Architecture

5:00 PM MDT

In today’s volatile technology and business climate, big architecture up front is not sustainable. Attempts to define the architectural vision for a system early in the development lifecycle does not work. To accept change, teams are moving to agile methods, but agile methods provide little architectural guidance. In this session, we provide practical guidance for software architecture on agile projects.

We will explore several principles that help us create more flexible and adaptable software systems.We’ll expose the true essence of what’s meant when we say “architectural agility.” And we’ll explore the real goal of software architecture and how we can accommodate architectural change to help increase architectural agility.

Understanding the Java Platform Module System

8:30 AM MDT

As of Java 9, modularity is built in to the Java platform…Finally! Yet few teams are using it. And in reality, you may never use it…at least not for a while. However by understanding the module system, you're guaranteed to see the Java platform in a completely different light. In this session, we explore the default module system, how it works on the Java platform, and what’s in the future for the Java Platform Module System.

We will demonstrate the impact that JPMS will have on our existing applications and identify what we must do to get ready for JPMS. You will also see firsthand how to use the JPMS and the benefits that support for modularity on the Java platform will have on your applications.

30 Years of Software Development: Lessons from the Trenches

10:30 AM MDT

Software development is an amazing profession, requiring the delicate combination of analytical and creative skills. Understanding architectural patterns, agile best practices, and exploring the depths of platforms, tool, and languages requires deep analytical skills. Yet crafting a system also requires vision and understanding when to deviate from traditional best practices.

In this session, we will explore lessons learned over many years of building large software systems. We will challenge traditional assumptions and explore new ways of thinking.

Books

Java Application Architecture: Modularity Patterns with Examples Using OSGi (Robert C. Martin Series)

by Kirk Knoernschild

“I’m dancing! By god I’m dancing on the walls. I’m dancing on the ceiling. I’m ecstatic. I’m overjoyed. I’m really, really pleased.”

–From the Foreword by Robert C. Martin (a.k.a. Uncle Bob)

 

This isn’t the first book on Java application architecture. No doubt it won’t be the last. But rest assured, this title is different. The way we develop Java applications is about to change, and this title explores the new way of Java application architecture.

 

Over the past several years, module frameworks have been gaining traction on the Java platform, and upcoming versions of Java will include a module system that allows you to leverage the power of modularity to build more resilient and flexible software systems. Modularity isn’t a new concept. But modularity will change the way we develop Java applications, and you’ll only be able to realize the benefits if you understand how to design more modular software systems.

 

Java Application Architecture will help you

 

  • Design modular software that is extensible, reusable, maintainable, and adaptable
  • Design modular software today, in anticipation of future platform support for modularity
  • Break large software systems into a flexible composite of collaborating modules
  • Understand where to place your architectural focus
  • Migrate large-scale monolithic applications to applications with a modular architecture
  • Articulate the advantages of modular software to your team

 

Java Application Architecture lays the foundation you’ll need to incorporate modular design thinking into your development initiatives. Before it walks you through eighteen patterns that will help you architect modular software, it lays a solid foundation that shows you why modularity is a critical weapon in your arsenal of design tools. Throughout, you’ll find examples that illustrate the concepts. By designing modular applications today, you are positioning yourself for the platform and architecture of tomorrow. That’s why Uncle Bob is dancing.