Workshop: Software Architecture Fundamentals

Location:

Level: 
Beginner
9:00am - 5:00pm

Date:

Fri, 17 Jun

Prerequisites

Participants should be familiar with software development across multiple projects. The workshop accommodates developers aspiring to become architects, “accidental” architects (people who make architectural decisions on projects without the formal title), and existing architects backfilling their knowledge. No laptop is required, although there are hands-on exercises in the afternoon, done with paper.

The job Software Architect places in the top ten of most annual surveys of best jobs, yet no clear path exists from Developer to Architect. Why aren’t there more books and training materials to fill this demand? First, software architecture is a massive multidisciplinary subject, covering many roles and responsibilities, making it difficult to teach because so much context is required for the interesting subjects. Second, it’s a fast moving discipline, where entire suites of best practices become obsolete overnight.

Part 1: From Developer to Architect

Part 1 of this workshop focuses on the many elements required to make the journey from developer to architect, covering process topics like the impact of Continuous Delivery on architecture, technical subjects like application, integration, and enterprise architecture, and soft skills. While we can’t make you an architect overnight, we can start you on the journey with a map and a good compass.

Part 2: Deeper Dive

Part two of this workshop takes a deeper dive in application, integration, and enterprise architecture topics, including evaluating architectures via Agile ATAM, the impacts of continuous delivery on architecture, comparing architectures, SOA, SOAP, and REST, integration hubs, and enterprise architecture approaches and strategies.

Part 3 (hands-on): Architectural Katas

To fully leverage knowledge, you need application. Part three of this workshop uses the public domain Architectural Katas exercise to apply learnings from the first two parts. From the Architectural Katas website: Architectural Katas are intended as a small-group (3-5 people) exercise, usually as part of a larger group (4-10 groups are ideal), each of whom is doing a different kata. A Moderator keeps track of time, assigns Katas (or allows this website to choose one randomly), and acts as the facilitator for the exercise. Each group is given a project (in many ways, an RFP–Request For Proposal) that needs development. The project team meets for a while, discovers requirements that aren’t in the orignal proposal by asking questions of the “customer” (the Moderator), discusses technology options that could work, and sketches out a rough vision of what the solution could look like. Then, after they’ve discussed for a while, the project team must present their solution to the other project teams in the room, and answer challenges (in the form of hard-but-fair questions) from the other project teams. Once that challenge phase is done, the room votes on their results, and the next project team takes the floor.  

Outline

Part 1, From Developer to Architect, covers:

  • Soft skills
  • Continuous Delivery
  • Understanding large codebases
  • Architecture patterns
  • Architecture anti-patterns
  • Integration architecture overview
  • Introduction to enterprise architecture

 Part 2, Deeper Dive, covers:

  • Continuous Delivery for architects
  • Applying abstraction
  • Comparing architectures
  • SOAP vs REST/ WS vs Messaging
  • Integration hubs
  • Enterprise architecture approaches
  • Enterprise architecture strategies

Part 3, Architectural Katas, is an instructor-led hands-on Katas exercise.

Speaker: Neal Ford

Director & Software Architect @ThoughtWorks

Neal Ford is Director, Software Architect, and Meme Wrangler at ThoughtWorks, a global IT consultancy with an exclusive focus on end-to-end software development and delivery. He is also the designer and developer of applications, magazine articles, video/DVD presentations, and author and/or editor of eight books spanning a variety of subjects and technologies, including the most recent Presentation Patterns. He focuses on designing and building of large-scale enterprise applications. He is also an internationally acclaimed speaker, speaking at over 300 developer conferences worldwide, delivering more than 2000 presentations. Check out his web site at nealford.com. He welcomes feedback and can be reached at nford@thoughtworks.com.

Find Neal Ford at

Tracks