· patched

An Agile study path for senior developers

This is a learning path every developer looking to become “senior” can follow.

This is a learning path every developer looking to become “senior” can follow.

This path reflects agile culture and values, which have their roots in the agile manifesto, as well as in those of XP, and in the software craftsmanship manifesto.

This study path is not meant to teach specific languages and tech stacks: rather it reflects how to builds all sort of software according to reusable agile, clean code and design principles.

Yes, it is a lot of content. No, you don’t have to have read all of it before you start your career growth to the next level. However, you should at the very least be comfortable explaining each and every topic in this list. If you are not, then that should be considered a knowledge gap.

This study path is adapted from a battle tested one https://github.com/xpeppers/starway-to-orione and is composed of basic reference literature, articles and videos for each topic. After following this, you should be able to hold your own and provide meaningful references in any conversation with your peers.

It is meant to be consumed in sequence.

1) Software Architecture

  • Read these chapters from Fundamentals of Software Architecture book
    • Preface: Invalidating Axioms
    • 1. Introduction
    • I. Foundations
    • 2. Architectural Thinking
    • 3. Modularity
    • 4. Architecture Characteristics Defined
    • 5. Identifying Architectural Characteristics
    • 6. Measuring and Governing Architecture Characteristics
    • 7. Scope of Architecture Characteristics
    • 8. Component-Based Thinking
    • Make sure you are aware of the architecture styles mentioned in later chapters too
  • Read these chapters from the Clean Architecture book
    • 12 Components
    • 13 Component Cohesion
    • 14 Component Coupling
  • Learn about making architecture diagrams with the C4 model
  • Be aware of the Gang of Four Design Patterns (skim through this one and make sure to check ones you have never heard of)
  • Be aware of Enterprise Architecture Patterns (skim through this one and make sure to check ones you have never heard of)

1.1) Layered architecture

1.2) Onion architecture

1.3) Clean architecture

1.4) Hexagonal architecture

1.5) Domain Driven Design

  • Watch Tackling Complexity in the Heart of Software
  • Read these chapters from Domain Driven Design Quickly
    • Chapter 1: What Is Domain-Driven Design
    • Chapter 2: The Ubiquitous Language
    • Chapter 3: Model-Driven Design
    • Chapter 4: Refactoring Toward Deeper Insight
    • Chapter 5: Preserving Model Integrity
  • If you want to dig deeper read the rest of the book and try
    • Implementing Domain Driven Design by Vaugh Vernon
    • Domain Driven Design by Eric Evans
  • Read this article about Martin Fowler about Bounded Context

1.6) CQRS and Event Sourcing (optional)

2) Microservices

3) Continuous Delivery

  • Read these chapters from Continuous Delivery
    • Foundations
      • The problem of delivering software
      • Configuration management
      • Continuous Integration
      • Implementing a testing strategy
    • The deployment pipeline
      • Anatomy of the deployment pipeline
      • Build and deployment scripting
      • The commit stage
      • Automated acceptance testing
      • Testing nonfunctional requirements
      • Deploying and releasing applications
    • The delivery ecosystem
      • Managing infrastructure and environments
      • Managing data
      • Managing components and dependencies
      • Advanced version control
      • Managing continuous delivery

4) DevOps

  • Read these chapters from the DevOps handbook

    • Imagine a World Where Dev and Ops Become DevOps: An Introduction to The DevOps Handbook
    • PART I—THE THREE WAYS
      • Part I Introduction
      • 1- Agile, Continuous Delivery, and the Three Ways
      • 2- The First Way: The Principles of Flow
      • 3- The Second Way: The Principles of Feedback
      • 4- The Third Way: The Principles of Continual Learning and Experimentation
    • PART II—WHERE TO START
      • Part II Introduction
      • 5- Selecting Which Value Stream to Start With
      • 6- Understanding the Work in Our Value Stream, Making it Visible, and Expanding it Across the Organization
      • 7- How to Design Our Organization and Architecture with Conway’s Law in Mind
      • 8- How to Get Great Outcomes by Integrating Operations into the Daily Work of Development
    • PART III—THE FIRST WAY: THE TECHNICAL PRACTICES OF FLOW
      • Part III Introduction
      • 9- Create the Foundations of Our Deployment Pipeline
      • 10- Enable Fast and Reliable Automated Testing
      • 11- Enable and Practice Continuous Integration
      • 12- Automate and Enable Low-Risk Releases
      • 13- Architect for Low-Risk Releases
    • PART IV—THE SECOND WAY: THE TECHNICAL PRACTICES OF FEEDBACK
      • Part IV Introduction
      • 14- Create Telemetry to Enable Seeing and Solving Problems
      • 15- Analyze Telemetry to Better Anticipate Problems and Achieve Goals
      • 16- Enable Feedback So Development and Operations Can Safely Deploy Code
      • 17- Integrate Hypothesis-Driven Development and A/B Testing into Our Daily Work
      • 18- Create Review and Coordination Processes to Increase Quality of Our Current Work
  • Read this article by Rouan Wilsenach about DevOps culture

  • Read about the principles of Infrastructure as Code (introduced in this book)

  • Read the article There’s No Such thing as a DevOps team

5) Quality Strategy

6) Legacy Code

7) Mobile

8) Team and Communication

Next: Lead Developers →

← Previous: Junior to Mid Level Developers

Table of Contents:

  1. Junior to Mid Level Developers
  2. Senior Developers
  3. Lead Developers
READYjk move openh/b/a goto? help