...
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.
- 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.
...
- 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
- 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 Codehttps://micro-frontends.org/
- This is the resource that Nimisha used when she introduced micro-frontends as an architectural pattern at edX.
- Building Micro-Frontends, by Luca Mezzalira
- Luca was an invited guest at Arch Hour: Arch Tea with Luca Mezzalira (Pre-Work) - 2020-07-09
- His book covers both architecture theory and tactical best practices for implementing MFEs.
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
- ADKAR - technique to help individuals transition through changes
- Kotter's 8 steps - framework for large-scale changes
- SCARF: a brain-based model for collaborating with and influencing others - neuroscience-backed understanding of our need to move away from perceived threats and toward perceived rewards.