Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Systems

  • Building Evolutionary Architecture, by Ford, Parsons & Kua
    • Provides a holistic overview of the current landscape of large-scale distributed systems with a perspective of how well they support on-going evolutionary changes.
      • Aligns very well with edX architecture thoughts on domain-driven design and the reactive manifesto.
    • Explains Fitness functions and how to use them to evolve a large-scale system.
    • Some book club notes are captured at Building Evolutionary Architecture.

...

  • Reactive Manifesto
    • Very clearly describes and explains how a well-crafted message-driven (event-passing) system architecture can lend itself to a highly Responsive, Resilient, and Elastic system.
    • edX experiences in following this manifesto have thus far yielded good results.
       
  • Self-contained Systems
    • Building on top of the design principles of the Reactive Manifesto, SCS takes a more extreme standpoint and encourages entirely autonomous, highly decoupled, self-contained services that contain their own UI, business logic, and data storage, with only asynchronous communications between SCS'.
    • The slides at the top of their page provide great visuals of these concepts.

  • Thinking in Systems 

Coding Best Practices

  • Clean Code, by Robert Martin (Uncle Bob)
    • Good perspective on coding best practices - though some may have differing thoughts on some recommendations.
    • Book club notes captured at Clean Code.
  • A Philosophy of Software Design, by John Osterhaut
    • Relatively easy to read, given its structure of short sections. Covers concepts of information hiding, controlling complexity, and naming.

Extensions

  • Clean Architecture, by Robert Martin (Uncle Bob)
    • Excellent description of how SOLID coding design principles can be taken to a higher (course-grained) component level.
    • Great read to formulate ideas around plugins and extensions.

...

  • Atomic Design, by Brad Frost
    • 1st half provides a ubiquitous language for reusable frontend components: Atoms, Molecules, Organisms, Templates, and Pages.
    • 2nd half speaks to the challenges and importance of alignment throughout the organization on developing, using, and maintaining a Design System.

Architecture (basic)

  • Design It!, by Michael Keeling
    • Provides a high-level overview of some elements of software architecture.
    • Part 3 contains good ideas on architecture/design workshops and katas.

Coding Best Practices

Soft Skills

  • Non-violent Communication: A Language of Life, by Marshall Rosenberg
    • "If we change ourselves, we can change the world and changing ourselves begins with changing our language and methods of communication." - Arun Gandhi, grandson of Mahatma Gandhi
    • Part 1 provides a structured method for communication: Observation, Feeling, Need, Request
    • Part 2 describes empathic listening, which can be transformative in any relationship. Simply paraphrasing and echoing what you hear enables compassionate communication.
  • Change Management