small medium large xlarge

Design It!: From Programmer to Software Architect


Cover image for Design It!

Design It!

From Programmer to Software Architect


Don’t engineer by coincidence—design it like you mean it! Grounded by fundamentals and filled with practical design methods, this is the perfect introduction to software architecture for programmers who are ready to grow their design skills. Ask the right stakeholders the right questions, explore design options, share your design decisions, and facilitate collaborative workshops that are fast, effective, and fun. Become a better programmer, leader, and designer. Use your new skills to lead your team in implementing software with the right capabilities—and develop awesome software!

Printed in full color.

Choose Your Format(s)

  • $26.95 In Stock
    • Beta: What do I get?

  • Ebooks are DRM free.

  • Ebook delivery options.

About this Title

Pages: 350 (est)
Published: 2017-06-10
Release: B8.0 (2017-08-08)
ISBN: 978-1-68050-209-1

Great software comes from great designers. Learn the essential software architecture fundamentals every programmer needs to know. With hands-on examples in every chapter, tips and advice from respected architects, practical scenarios, and dozens of architectural design activities, Design It! shows you how to lead your team as a software architect to create excellent software.

Uncover the big ideas behind software architecture and learn practical methods for designing software systems big and small. Gain a framework for thinking about design, enabling you to plan, lead, design, implement, and evaluate software architectures. Collaborate with your team, stakeholders, and other architects. Dig for architecturally significant requirements and write detailed quality attribute scenarios. Explore design alternatives, balance trade-offs, manage risks, and choose technologies based on their architectural impact. Make the architecture real for everyone with powerful sketches, engaging stories, and lean documentation people love to read. Evaluate your designs using lightweight methods and harness the power of your team to improve the architecture over time. Host collaborative workshops that create buy-in and get the whole team excited and involved in designing the software architecture.

Hands-on exercises, real-world scenarios, and practical team-based decision-making tools will give you the experience you need to become a confident software architect.

What You Need

No technology pre-requisites.

Contents & Extracts

This book is currently in beta, so the contents and extracts will change as the book is developed.

  • Welcome
  • Introducing Software Architecture*
    • Becoming a Software Architect
      • Build Amazing Software
      • What is Software Architecture?
      • What Software Architects Do excerpt
      • Become an Architect for your Team
      • Case Study: Project Lionheart
      • Next Up
    • Design Thinking Fundamentals
      • The Four Principles of Design Thinking
      • Adopt a Design Mindset
      • Think, Do, Check
      • Next Up
  • Architecture Design Fundamentals
    • Empathize with Stakeholders
      • Talk to the Right People
      • Create a Stakeholder Map
      • Discover the Business Goals
      • Project Lionheart: The Story so Far…
      • Next Up
    • Dig for Architecturally Significant Requirements
      • Limit Design Options with Constraints
      • Define the Quality Attributes
      • Beware the Architecture Killers
      • Find out what else Influences the Architecture
      • Dig for the Information you need
      • Build an ASR Workbook
      • Project Lionheart: The Story so Far…
      • Next Up
    • Choose an Architecture (Before it Chooses You)
      • Accept Constraints
      • Promote Desired Quality Attributes
      • Assign Functional Responsibilities to Elements
      • Guide the Design with Patterns and Tactics
      • Project Lionheart: The Story so Far…
      • Next Up
    • Explore Design Options
    • Host an Architecture Design Studio
      • Make Exploration Fast, Effective, and Fun
      • Plan an Architecture Design Studio
      • Choose Appropriate Design Activities
      • Invite the Right Participants
      • Manage the Group
      • Project Lionheart: The Story so Far…
      • Next Up
    • Visualize Design Decisions with Accurate Models
      • Create Multiple Views of the System
      • Design the Meta-Model
      • Draw Fantastic Diagrams
      • Go Beyond Boxes and Lines
      • Project Lionheart: The Story so far…
      • Next Up
    • Describe the Architecture
      • Tell the Whole Story
      • Match the Description Method to the Situation excerpt
      • Try These Description Methods
      • Respect your Audience
      • Organize Views around Stakeholders’ Concerns
      • Explain the Rationale for your Decisions
      • Project Lionheart: The Story so Far…
      • Next Up
    • Give the Architecture a Report Card
      • Evaluate to Learn
      • Test the Design
      • Host an Evaluation Workshop
      • Evaluate Early, Evaluate Often, Evaluate Continuously
      • Project Lionheart: The Story so Far…
      • Next Up
    • Implement the Architecture
  • The Architect’s Toolbox
    • Activities to Understand the Problem excerpt
      • Activity 1. Business Goals Workshop
      • Activity 2. Choose One Thing
      • Activity 3. Empathy Map
      • Activity 4. Interview Stakeholders
      • Activity 5. List Assumptions
      • Activity 6. Quality Attribute Web
      • Activity 7. Mini-Quality Attribute Workshop
      • Activity 8. Point of View Mad Lib
      • Activity 9. Response Measure Straw Man
      • Activity 10. Stakeholder Map
    • Explore Potential Solutions
    • Make the Design Tangible
      • Activity 12. Architecture Cartoon
      • Activity 13. Architecture Decision Records
      • Activity 14. Architecture Haiku
      • Activity 15. Context Diagrams
      • Activity 16. Greatest Hits Reading list
      • Activity 17. Inception Deck
      • Activity 18. Modular Decomposition Diagram
      • Activity 19. Paths not Taken
      • Activity 20. Prototype to Learn or Decide
      • Activity 21. Sequence Diagram
      • Activity 22. System Metaphor
    • Evaluate Options


Michael Keeling is an experienced software architect, agile practitioner, and programmer. He has worked on a variety of software systems including combat systems, search applications, web apps, and IBM Watson. When not doing software stuff, Michael enjoys hiking, running, cooking, and camping.