Engineering the Future of Software
29–31 Oct 2018: Tutorials & Conference
31 Oct–1 Nov 2018: Training
London, UK

Fundamentals of software architecture (Day 2)

Neal Ford (ThoughtWorks)
Location: Hilton Meeting Room 1/2

CNN recently rated software architect the number one job in America. Yet no clear path exists for moving from developer to architect. Why? Because software architecture is a massive multidisciplinary subject with no clear definition or job description, making it difficult to chart a course that covers all of the training and knowledge required to become an effective software architect.

Being a software architect involves more than just drawing boxes and lines. It requires thinking like an architect, being a leader, and understanding the elements, patterns, and styles necessary to create effective software architectures. Leveraging many of the topics found in his Software Architecture Fundamentals videos from O’Reilly, Neal Ford blends lecture and hands-on real-world group exercises to explore the many aspects of software architecture.

Knowing what styles and patterns best fit your situation is critical to the success of your architecture. You’ll learn various integration styles—including event-driven architecture, microservices architecture, microkernel architecture, and service-oriented architecture—and when to use each. You’ll then apply your knowledge in real-world small-team exercises, making decisions about which patterns best fit various business needs and requirements.

Along the way, Neal emphasizes how important soft skills such as leadership, communication, facilitation, and negotiation are to a software architect and demonstrates related techniques, including some core leadership best practices and how to make development teams effective. Neal also shares tips for developing a career as a software architect.

Outline

Day 1

Introduction

  • Course logistics and introductions
  • Roles and expectations of an architect
  • Architecture knowledge and technical breadth
  • Architecture versus design
  • Balancing hands-on coding and architecture

Architecture characteristics

  • Identifying architecture characteristics
  • Translating requirements into architecture
  • Team exercises: Identifying architecture characteristics

Architecture patterns

  • Microservices architecture pattern
  • Service-oriented architecture pattern
  • Service-based architecture pattern
  • Layered architecture pattern

Day 2

Architecture patterns (cont.)

  • Event-driven architecture pattern
  • Pipeline architecture pattern
  • Microkernel architecture pattern
  • Space-based architecture pattern
  • Team exercises: Identifying patterns and styles

Component-based thinking

  • Identifying components and services
  • Component granularity
  • Component coupling
  • Component cohesion
  • Team exercises: Identifying architectural components
  • Team architecture presentations

Architecture techniques and soft skills

  • Leadership skills: Making development teams effective
  • Tips for developing an architecture career path
  • Additional architecture resources
Photo of Neal Ford

Neal Ford

ThoughtWorks

Neal Ford is a director, software architect, and meme wrangler at ThoughtWorks, a global IT consultancy that thinks disruptively to deliver technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. Neal focuses on designing and building large-scale enterprise applications. He is an internationally recognized expert on software development and delivery, especially in the intersection of Agile engineering techniques and software architecture. Neal has authored magazine articles, seven books (and counting), and dozens of video presentations and has spoken at hundreds of developers conferences worldwide on the topics of software architecture, continuous delivery, functional programming, and cutting-edge software innovations. Check out his website at Nealford.com. He welcomes feedback and can be reached at nford@thoughtworks.com.

Leave a Comment or Question

Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?

Join the conversation here (requires login)