This is the learning path every new developer has to follow when joining our team.
This path reflects our team's culture and values, which have their roots in the agile values and principles, as well as in those of XP, and in the software craftsmanship manifesto.
Please feel free to fork and contribute, add materials, fix the existing ones and propose new stuff.
How to use: the resources or kata are divided by macro-topics and in order of complexity. You can compose your study iterations taking resources from the topics (even different) you're interested.
- Read The Agile Manifesto and the Twelve Principles behind it
#onboarding
- Read also about its History if you want to know more
- Read Iterative and Incremental Development paper by Robert C. Martin:
- why Waterfall fails
- why Agile Method can be the alternative
#onboarding
- Watch 7 minutes, 26 seconds, and the Fundamental Theorem of Agile Software Development by J.B. Rainsberger
- how to Transit from first to second one
- Read preface and chapters 1, 4, 5, 7 of XP Explained by Kent Beck
#onboarding
- Watch "The Agile Mindset - And Beyond" by Linda Rising (~ 50 minutes)
- Read "What is Extreme Programming?" post - definition of the 13 XP practices by Ron Jeffries
#onboarding
- For italian speakers, watch "Perché è così difficile fare Extreme Programming" by Matteo Vaccari (~ 40 minutes)
#onboarding
- For italian speakers, watch "Vivere per raccontarla: l’importanza del daily journal in un team agile" by Pietro Di Bello (~ 15 minutes)
#onboarding
- Read Scrum Guide (LeSS Version) by Craig Larman and Bas Vodde
- Read first two sections of Martin Fowler's Pair Programming blogpost (How to pair + Benefits)
#onboarding
- Read Pairing Session Template on how setting up a pairing session by Tuple
- Focusing on pair programming antipatterns:
- Read Pair programming antipatterns
- Watch Pair programming antipatterns (~ 5 minutes)
- Watch Killing me softly - with this Pair (~ 20 minutes)
- Read chapter 2 of Working Effectively with Legacy Code up to "What is Unit Testing?" section
#onboarding
- Read chapter 9 of Clean Code up to "The Three Laws of TDD" section
#onboarding
- Read preface and chapters 1, 2, 3 of Test Driven Development: By Example
#onboarding
- Try the String Calculator Kata in TDD
#onboarding
- For italian speakers, watch Piergiuliano Bossi's screencasts on TDD basics and emergent design (~ 40 minutes x5 videos)
- Watch the Google Clean Code Talks series by Miško Hevery:
- Unit Testing (~ 30 minutes) - [slides] [blogpost]
#onboarding
- Inheritance, Polymorphism, & Testing (~ 40 minutes) - [blogpost and slides]
#onboarding
- Don't Look For Things!: includes Dependency Injection pattern (~ 35 minutes) - [blogpost and slides]
- Global State and Singletons (~ 55 minutes) - [blogpost and slides]
- Unit Testing (~ 30 minutes) - [slides] [blogpost]
- Read Miško Hevery's guide on "Writing Testable Code"
- Try the Sales Kata in TDD
- Read introduction and first six chapters of Clean Code book by Robert C. Martin
#onboarding
- Read preface and first chapter of The Pragmatic Programmer book
#onboarding
- Watch Venkat Subramaniam's talk about "Core Design Principles for Software Developers" (~ 150 minutes)
#onboarding
- Read first chapter of "Applying UML and Patterns"
- Study the SOLID principles
- Try the Racing Car Katas:
- find SOLID violations and discuss them with some collegues
#onboarding
- try to write unit tests for analyzed classes
- find SOLID violations and discuss them with some collegues
- Read Names objects after things, not actions! by Matteo Vaccari
- Read the article Keep It DRY, Shy, and Tell the Other Guy
#onboarding
- Read the article You Aren't Gonna Need It
- Read preface and first three chapters of Refactoring: Improving the design of existing code by Martin Fowler
#onboarding
- Watch "Workflows of Refactoring" talk by Martin Fowler (~ 25 minutes)
- Try the Tennis-Refactoring-Kata and spot the code smells (chapter 3 of Refactoring book)
#onboarding
- Read part I - Tydings of Tidy First? by Kent Beck
- Try Tennis-Refactoring-Kata again spotting the tydings you used
- Watch Testing and Refactoring Legacy Code screencast by Sandro Mancuso (~ 75 minutes) - [example code]
- take also a look into his trip-service-kata code
- Read Parallel change (aka: expand and contract) by Martin Fowler
- Try the GildedRose-Refactoring-Kata following this steps:
#onboarding
- Code Coverage
- Code Refactoring
- Add the new feature
- Read Kent Beck's 4 Rules of Simple Design Martin Fowler's article
#onboarding
- Watch How to Write Clean, Testable Code by Miško Hevery (~ 75 minutes)
- Read Good Design is Easily-Learned Scott Bellware's post
- Encapsulation and Information Hiding
- Read Nat Pryce's article
- Read C2 Wiki article
- Try these Katas and compare your solution with related videos:
- Read the first eight chapters of Growing Object Oriented Software, Guided by Tests
- Read introduction and chapters 1-6 of xUnit Test Patterns: Refactoring Test Code
- Read Mocks Aren't Stubs Martin Fowler's article
- Read The Little Mocker Robert Martin's article
- Read How I learned to love mocks - Matteo Vaccari
- Read Overcoming the one weakness of OOP
- Read about the Practical Test Pyramid
- Watch Ian Cooper - TDD, where did it all go wrong
- Watch J.B. Rainsberger - Integrated Tests Are A Scam
- Watch Sandro Mancuso - Crafted Design
- Watch Mock Roles Not Object States - Paper
- Try to do a known kata applying some Object Calisthenics rule and discuss effects with some collegues
- Read Part II, Test Smells, chapters 15-17 of xUnit Test Patterns: Refactoring Test Code
- Read chapter 1, introcuction Lean Architecture: for Agile Software Development
- Read Alistair Cockburn - Hexagonal architecture
#onboarding
- Read Matteo Vaccari - Hexagonal architecture
- Read Matteo Vaccari - Birthday Greetings kata
- Read The Forgotten Layer of the Test Automation Pyramid
- Read Hexagonal architecture - wiki-c2
- Watch Uncle Bob lessons on Clean code/architecture (~ 10 hours)
- Read chapters about Stability 3, 4, 5 and Capacity 8, 9, 10 of Release It!
#onboarding
- Read the definition of continuous delivery What is continuous delivery?
- Read the principles of continuous delivery Principles - Continuous Delivery
- Read Continuous Delivery book to go deeper
- Complete XP Explained by Kent Beck: starts from chapters 2 and 6
- Complete Martin Fowler's Pair Programming blogpost
- Read The Pomodoro Technique paper
- Flat Organizations:
- The Flat Way
- Teal Is The New Black: Self-management and the future of work
- Decision-making methods: a comparison by Sociocracy 3.0
- Consent Decision Making Demonstration by Sociocracy 3.0
- Read Introduction to LeSS - Large Scale Scrum by Craig Larman and Bas Vodde
- Read The Principles of product development flow by Don Reinertsen
- Complete Test Driven Development: By Example
- Lets Play on TDD series by James Shore
- The World's Best Intro to TDD by J. B. Rainsberger
- Complete Clean Code book by Robert C. Martin
- Complete The Pragmatic Programmer book
- Tell Don't Ask principle
- read the article Tell, Don't Ask
- read the article The Art of Enbugging
- Watch Is SOLID A Good Idea (~ 55 minutes)
- Watch Responsive Design (~ 70 minutes)
- Follow the "Clean coders" series by Robert C. Martin
- Read part III, The Patterns of xUnit Test Patterns: Refactoring Test Code
- Read chapter 3
"Economics of Software Development"
of XP Explained - Read chapter 7, section with title
"Tools 22": Contracts
of Lean Software Development: An Agile Toolkit
- "Patterns of Enterprise Application Architecture" by Martin Fowler
- "Working Effectively with Legacy Code" by Micheal Feathers
- "Understanding the Four Rules of Simple Design" by C.Haines