Design It!
From Programmer to Software Architect
by: Michael Keeling
Published | 2017-10-10 |
---|---|
Internal code | mkdsa |
Print status | In Print |
Pages | 358 |
User level | Beginner |
Keywords | Software architecture, design, development, communication |
Related titles |
|
ISBN | 9781680502091 |
Other ISBN |
Channel epub: 9781680503449 Channel PDF: 9781680503456 Kindle: 9781680502916 Safari: 9781680502923 Kindle: 9781680502916 |
BISACs | COM051240 COMPUTERS / Software Development & Engineering / Systems Analysis & DesignCOM060090 COMPUTERS / Internet / Application DevelopmentCOM060090 COMPUTERS / Internet / Application Development |
Highlight
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!
Description
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.
Contents and Extracts
- Introducing Software Architecture
- Become a Software Architect
- What Software Architects Do excerpt
- What Is Software Architecture?
- Become an Architect for Your Team
- Build Amazing Software
- Case Study: Project Lionheart
- Next Up
- Design Thinking Fundamentals
- The Four Principles of Design Thinking
- Adopt a Design Mindset
- Think, Do, Check
- Next Up
- Become a Software Architect
- Architecture Design Fundamentals
- Devise a Design Strategy
- Find a Design That Satisfices
- Decide How Much to Design Up Front
- Let Risk Be Your Guide
- Create a Design Plan
- Project Lionheart: The Story So Far…
- Next Up
- 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
- Look for Classes of Functional Requirements
- 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)
- Diverge to See Options, Converge to Decide
- Accept Constraints
- Promote Desired Quality Attributes
- Assign Functional Responsibilities to Elements
- Design for Change
- Project Lionheart: The Story So Far…
- Next Up
- Create a Foundation with Patterns
- What Is an Architecture Pattern?
- Layers Pattern
- Ports and Adapters Pattern
- Pipe-and-Filter Pattern
- Service-Oriented Architecture Pattern
- Publish-Subscribe Pattern
- Shared-Data Pattern
- Multi-Tier Pattern
- Center of Competence Pattern
- Open Source Contribution Pattern
- Big Ball of Mud Pattern
- Discover New Patterns
- Project Lionheart: The Story So Far…
- Next Up
- Manage Complexity with Meaningful Models
- Reason About the Architecture
- Design the Meta-Model
- Build Models into the Code
- Project Lionheart: The Story So Far…
- Next Up
- Host an Architecture Design Studio
- Plan an Architecture Design Studio
- Choose Appropriate Design Activities
- Invite the Right Participants
- Manage the Group
- Work with Remote Teams
- Project Lionheart: The Story So Far…
- Next Up
- Visualize Design Decisions
- Show the Architecture from Different Views
- Draw Fantastic Diagrams
- Project Lionheart: The Story So Far…
- Next Up
- Describe the Architecture
- Tell the Whole Story
- Match the Description Method to the Situation excerpt
- 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
- Empower the Architects on Your Team
- Promote Architectural Thinking
- Facilitate Decision Making and Foster Skills Growth
- Create Opportunities for Safe Practice
- Delegate Design Authority
- Design Architecture Together
- Project Lionheart: The Epic Conclusion
- Next Up
- Devise a Design Strategy
- The Architect’s Toolbox
- Activities to Understand the Problem excerpt
- Activity 1. Choose One Thing
- Activity 2. Empathy Map
- Activity 3. Goal-Question-Metric (GQM) Workshop
- 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
- Activities to Explore Potential Solutions
- Activity 11. Personify the Architecture
- Activity 12. Architecture Flipbook
- Activity 13. Component Responsibility Collaborator Cards
- Activity 14. Concept Map
- Activity 15. Divide and Conquer
- Activity 16. Event Storming
- Activity 17. Group Posters
- Activity 18. Round-Robin Design
- Activity 19. Whiteboard Jam
- Activities to Make the Design Tangible
- Activity 20. Architecture Decision Records
- Activity 21. Architecture Haiku
- Activity 22. Context Diagram
- Activity 23. Greatest Hits Reading List
- Activity 24. Inception Deck
- Activity 25. Modular Decomposition Diagram
- Activity 26. Paths Not Taken
- Activity 27. Prototype to Learn or Decide
- Activity 28. Sequence Diagram
- Activity 29. System Metaphor
- Activities to Evaluate Design Options
- Activity 30. Architecture Briefing
- Activity 31. Code Review
- Activity 32. Decision Matrix
- Activity 33. Observe Behavior
- Activity 34. Question–Comment–Concern
- Activity 35. Risk Storming
- Activity 36. Sanity Check
- Activity 37. Scenario Walkthrough
- Activity 38. Sketch and Compare
- Activities to Understand the Problem excerpt