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.
- 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
- 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)
- For italian speakers, watch "Perché è così difficile fare Extreme Programming" by Matteo Vaccari (~ 40 minutes)
#onboarding
- Read "What is Extreme Programming?" post - definition of the 13 XP practices by Ron Jeffries
#onboarding
- Read first two sections of Martin Fowler's Pair Programming blogpost (How to pair + Benefits)
#onboarding
- Watch "Vivere per raccontarla: l’importanza del daily journal in un team agile" by Pietro Di Bello (~ 15 minutes)
#onboarding
- 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
- Watch Testing and Refactoring Legacy Code screencast by Sandro Mancuso (~ 75 minutes) - [example code]
- 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 - Testing and Refactoring Legacy Code
- 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 https://web.archive.org/web/20170916120520/http://alistair.cockburn.us/Hexagonal+architecture
#onboarding
- Read http://matteo.vaccari.name/blog/the-hexagonal-architecture
- Read http://matteo.vaccari.name/blog/archives/154
- Read http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid
- Read http://c2.com/cgi/wiki?HexagonalArchitecture
- Read chapters about Stability 3, 4, 5 and Capacity 8, 9, 10 of Release It!
#onboarding
- 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:
- 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
- Watch 7 minutes, 26 seconds, and the Fundamental Theorem of Agile Software Development by J.B. Rainsberger
- 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