Software Architecture for Developers

Technical leadership by coding, coaching, collaboration, architecture sketching and just enough up front design

3794 readers

100% Happiness guarantee Learn more

Minimum: $20.00

Suggested: $30.00+

Ways to buy

  • Free sample read /download
  • 3794 readers
  • 231 pages
  • Book language: English
  • Updated

About the Book

A developer-friendly guide to software architecture, technical leadership and the balance with agility

This book is a practical and pragmatic guide to lightweight software architecture for developers. You'll learn:

  • The essence of software architecture.
  • Why the software architecture role should include coding, coaching and collaboration.
  • The things that you *really* need to think about before coding.
  • How to visualise your software architecture using simple sketches.
  • A lightweight approach to documenting your software.
  • Why there is *no* conflict between agile and architecture.
  • What "just enough" up front design means.
  • How to identify risks with risk-storming.

JavaRanch awarded the book 10/10 - "Highly recommended reading."

Five things every developer should know about software architecture

1. Software architecture isn't about big design up front

Software architecture has traditionally been associated with big design up front and waterfall-style projects, where a team would ensure that every last element of the software design was considered before any code was written. Software architecture is basically about the high-level structure of a software system and how you get to an understanding of it. This is about the significant decisions that influence the shape of a software system rather than understanding how long every column in the database should be.

2. Every software team needs to consider software architecture

Regardless of the size and complexity of the resulting product, every software team needs to consider software architecture. Why? Put simply, bad things tend to happen if they don't! If software architecture is about structure and vision, not thinking about this tends to lead to poorly structured, internally inconsistent software systems that are hard to understand, hard to maintain and potentially don't satisfy one or more of the important non-functional requirements such as performance, scalability or security. Explicitly thinking about software architecture provides you with a way to introduce technical leadership and stacks the odds of a successful delivery in your favour.

3. The software architecture role is about coding, coaching and collaboration

The image that many people have of software architects is of traditional "ivory tower" software architects dictating instructions to an unsuspecting development team. It doesn't need to be like this though, with modern software architects preferring an approach that favours coding, coaching and collaborative design. The software architecture role doesn't necessarily need to be undertaken by a single person plus coding is a great way to understand whether the resulting architecture is actually going to work.

4. You don't need to use UML

Again, traditional views of software architecture often conjure up images of huge UML (Unified Modeling Language) models that attempt to capture every last drop of detail. While creating and communicating a common vision is important, you don't need to use UML. In fact, you could argue that UML isn't a great method for communicating software architecture anyway. If you keep a few simple guidelines in mind, lightweight "boxes and lines" style sketches are an effective way to communicate software architecture.

5. A good software architecture enables agility

There's a common misconception that "architecture" and "agile" are competing forces, there being a conflict between them. This simply isn't the case though. On the contrary, a good software architecture enables agility, helping you embrace and implement change. Good software architectures aren't created by themselves though, and some conscious effort is needed.

Buy A Bundle, And Save

  • Software Architecture for Developers cover page
    • Working with Legacy Systems cover page

    Software architecture, for systems old and new

    2 books for $45.00 $27.50

  • Software Architecture for Developers cover page
    • Software Craftsmanship cover page

    Craftsmanship and Architecture

    2 books for $55.00 $30.00

  • Software Architecture for Developers cover page
    • Are you an IT project manager? cover page

    Software architecture and project management

    2 books for $45.00 $25.00

About the Author

The Leanpub Unconditional, No Risk, 100% Happiness Guarantee


Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks. We process the refunds manually, so they may take a few days to show up. See full terms.

If you buy a Leanpub book you get all the updates to the book for free! All books are available in PDF, EPUB (for iPad) and MOBI (for Kindle). There is no DRM. There is no risk, just guaranteed happiness or your money back.

Table of Contents

    • Preface
    • About the book
    • About the author
    • Software architecture training
  • I What is software architecture?
    • 1 What is architecture?
    • 2 Types of architecture
    • 3 What is software architecture?
    • 4 What is agile software architecture?
    • 5 Architecture vs design
    • 6 Is software architecture important?
    • 7 Questions
  • II The software architecture role
    • 8 The software architecture role
    • 9 Should software architects code?
    • 10 Software architects should be master builders
    • 11 From developer to architect
    • 12 Broadening the T
    • 13 Soft skills
    • 14 Software development is not a relay sport
    • 15 Software architecture introduces control?
    • 16 Mind the gap
    • 17 Where are the software architects of tomorrow?
    • 18 Everybody is an architect, except when they’re not
    • 19 Software architecture as a consultant
    • 20 Questions
  • III Designing software
    • 21 Architectural drivers
    • 22 Quality Attributes (non-functional requirements)
    • 23 Working with non-functional requirements
    • 24 Constraints
    • 25 Principles
    • 26 Technology is not an implementation detail
    • 27 More layers = more complexity
    • 28 Collaborative design can help and hinder
    • 29 Software architecture is a platform for conversation
    • 30 SharePoint projects need software architecture too
    • 31 Questions
  • IV Visualising software
    • 32 We have a failure to communicate
    • 33 The need for sketches
    • 34 Ineffective sketches
    • 35 C4: context, containers, components and classes
    • 36 Context diagram
    • 37 Container diagram
    • 38 Component diagram
    • 39 Technology choices included or omitted?
    • 40 Would you code it that way?
    • 41 Software architecture vs code
    • 42 You don’t need a UML tool
    • 43 Effective sketches
    • 44 C4 - FAQ
    • 45 Questions
  • V Documenting software
    • 46 The code doesn’t tell the whole story
    • 47 Software documentation as a guidebook
    • 48 Context
    • 49 Functional Overview
    • 50 Quality Attributes
    • 51 Constraints
    • 52 Principles
    • 53 Software Architecture
    • 54 External Interfaces
    • 55 Code
    • 56 Data
    • 57 Infrastructure Architecture
    • 58 Deployment
    • 59 Operation and Support
    • 60 Decision Log
    • 61 Questions
  • VI Software architecture in the development life cycle
    • 62 The conflict between agile and architecture - myth or reality?
    • 63 Quantifying risk
    • 64 Risk-storming
    • 65 Just enough up front design
    • 66 Introducing software architecture
    • 67 Questions
  • VII Appendix A: Financial Risk System
    • 68 Financial Risk System
  • VIII Appendix B: Software Guidebook for

Last updated

This Book is for Sale Through Leanpub

Authors and publishers use Leanpub to publish amazing in-progress and completed books like this one.



Leanpub has a wide selection of in-progress and completed books available to browse, purchase, and enjoy.

Browse the Bookstore


Leanpub is free for authors and publishers to use. We pay authors or publishers 90% royalties minus 50 cents per sale.

Write a Book