Engineering the Future of Software
April 2–3, 2017: Training
April 3–5, 2017: Tutorials & Conference
New York, NY

In-Person Training
Architecture under stress

Allen Holub (Holub Associates)
Sunday, April 2 & Monday, April 3, 9:00am - 5:00pm
Location: Concourse B

Participants should plan to attend both days of this 2-day training course. Platinum and Training passes do not include access to tutorials on Monday.

Allen Holub leads a hands-on training covering the entire system design process, starting with planning strategies and "user stories" and ending with a full implementation architecture.

What you'll learn, and how you can apply it

  • Understand the entire system design process, starting with “user stories” and ending with a full implementation architecture
  • Learn how to develop stories, how to factor them into smaller units, how to extract architectural elements from them, and how to derive classes and microservices from them
  • Know how to look at your system design from both the within-the-application coding architecture and the system architecture perspective

This training is for you because...

  • You are an engineer who has learned (or is learning) an Agile process but is unsure how best to build code that works well with that process
  • You are a software architect currently migrating architectures from monolith to microservices

Prerequisites:

  • Familiarity with object-oriented concepts, such as classes, interfaces, and subclassing (useful but not required)

We live in a world of volatile requirements.

We’ve learned that big up-front design processes don’t work. You have to approach design incrementally so that you can incorporate lessons learned. Our designs are constantly under stress because they’re constantly changing.

Programs not designed to handle that stress will kill your project. Code that resists change slows you down so much that Agile processes will fail, no matter how well you execute.

A new approach to design is essential. Traditional n-tier architectures just don’t work in this environment, for example. The best way to handle volatility is to firmly ground your architecture in the domain and then implement it in a highly modular way where the modules really are independent. Microservices and messaging are integral to this approach, and systems developed in this way are scalable, robust, and well suited for deployment in a cloud environment.

Allen Holub leads a hands-on training covering the entire system design process, starting with planning strategies and “user stories” and ending with a full microservice-based implementation architecture. You’ll work on real-world problems that you bring to class rather than a pedagogic exercise.

Outline

Orientation

  • Tools
  • Process
  • The physical environment
  • What is an object?
  • What is a story?

Defining a story

  • The conversation
  • How do you test it?
  • Developing an Agile architecture

Planning for uncertainty

  • #NoEstimates
  • Story maps
  • Cumulative flow diagrams
  • The Kanban board
  • The server (microservices)

Domain-focused design

  • Defining the problem (problem statements)
  • Epics

Stories

  • Story maps and system coherence
  • Refining the story
  • Factoring (narrowing)
  • Stories to activities

Communicating

  • Diagramming complex systems
  • Simplified UML as a communication tool
  • CRC-card walls

Responsibility-based design

  • CRC cards and roles
  • Using code to develop architecture
  • Demo: authentication

Implementation architecture

  • Design by coding
  • Leveraging simulation

Micro- and miniservices

  • Essential characteristics and how to implement them
  • Messaging systems
  • A quick overview of ZeroMQ
  • Services as objects

A case study: Blogging and authentication

About your instructor

Photo of Allen Holub

Allen Holub is one of the country’s foremost software architects. Allen speaks internationally about all things Agile and software architecture and provides in-house training and consulting in those areas. He’s also an expert-level programmer, specializing in Swift, Java, and Web 2.0 applications and microservices. Allen can build highly dynamic websites (along the lines of Gmail) from front to back: both the frontend code—JavaScript, JQuery, Angular, HTML5, and CSS3—that runs in the browser and the backend code—Java, PHP, MySQL, Ruby, Mongo, C++, ZeroMQ, and EC2—that runs either on your server or in the cloud. Allen is widely published. His works include 10 books, hundreds of articles in publications ranging from Dr. Dobb’s Journal to IBM developerWorks, and video classes for Pluralsight (Swift in Depth_) and O’Reilly (_Design Patterns in the Real World).

Twitter for allenholub

Conference registration

Get the Platinum pass or the Training pass to add this course to your package.