Contents
Introduction
PART I: AN AGILE FOUNDATION
Chapter 1 Introduction to Scrum
Scrum versus waterfall
Roles and responsibilities
Artifacts
The sprint
Problems with Scrum and Agile
Conclusion
Chapter 2 Dependencies and layering
The definition of dependency
Managing dependencies
Layering
Conclusion
Chapter 3 Interfaces and design patterns
What is an interface?
Adaptive design patterns
Further versatility
Conclusion
Chapter 4 Unit testing and refactoring
Unit testing
Refactoring
Conclusion
PART II: WRITING SOLID CODE
Chapter 5 The single responsibility principle
Problem statement
SRP and the Decorator pattern
Using the Strategy pattern instead of switch
Conclusion
Chapter 6 The open/closed principle
Introduction to the open/closed principle
Extension points
Protected variation
Conclusion
Chapter 7 The Liskov substitution principle
Introduction to the Liskov substitution principle
Contracts
Covariance and contravariance
Conclusion
Chapter 8 Interface segregation
A segregation example
Client construction
Splitting interfaces
Conclusion
Chapter 9 Dependency injection
Humble beginnings
Beyond simple injection
Conclusion
PART III: ADAPTIVE SAMPLE
Chapter 10 Adaptive sample: Introduction
Trey Research
Initial backlog
Chapter 11 Adaptive sample: Sprint 1
Planning
“I want to create rooms for categorizing conversations.”
“I want to view a list of rooms that represent conversations.”
“I want to view the messages that have been sent to a room.“
“I want to send plain text messages to other room members.”
Sprint demo
Sprint retrospective
Chapter 12 Adaptive sample: Sprint 2
Planning
“I want to send markdown that will be correctly formatted.”
“I want to filter message content so that it is appropriate.”
“I want to serve hundreds of users concurrently.”
Sprint demo
Sprint retrospective
Appendix A: Adaptive Tools
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
About the author
Free ebooks
Tell us what you think!