Acceptance Tests
Behavior-Driven Development, 90
collaboration between business analysts, QA, and developers, 91–93
Continuous Build server in, 93
developer’s responsibility for, 93
expectation of test automation, 53
expectation that QA finds no faults, 52
ACSM (Advanced Certified Scrum Master), 165
Adaptability
expectation related to expense of, 49–50
Adaptive Software Development (ASD), 174–175
Adkins, Lyssa, 158
Advanced Certified Scrum Master (ACSM), 165
Adzic, Gojko, 44
Agile & Iterative Development: A Manager’s Guide (Larman), 3
Agile in the large (big or multiple teams)
appropriateness of Agile for, 144–147
becoming Agile and, 161
Agile Introduction
Analysis Phase of Waterfall approach, 19–20
chart use in data presentation, 15–18
Circle of Life of XP practices, 31–34
comparing Agile with Waterfall approach, 23–24
data produced by Agile approach, 25–27
dates frozen while requirements change, 18
Death March Phase of Waterfall approach, 22
Design Phase of Waterfall approach, 20–21
features implemented based on business value, 31
hope vs. management, 27
Implementation Phase of Waterfall approach, 21–22
Iron Cross of project management, 15, 27
managing software projects, 14
The Meeting in Waterfall approach, 18–19
overview of, 2
schedule changes, 28
summary, 35
Agile Lifecycle Management (ALM), 153–155
Agile Manifesto
emerges out of many on similar journeys, 155
goals, 34
ideology, 174
origination at Snowbird, 12–14
outcome of Snowbird meeting, 2
simplicity of, 157
Software Craftsmanship adds values to, 173
Agile, process of becoming
addresses small team issue not big team issues, 144–147
Agile in the large (big or multiple teams) and, 161
Agile Lifecycle Management (ALM), 153–155
automation, 152
coaching in multiteam environment, 160
conclusion/summary, 165
creating Agile organizations, 141–142
future of coaching, 165
going big by focusing on the small, 164–165
growing the adaptation, 162–164
insufficiency of coaching skills, 159–160
from process expert to Agile expert, 156–157
selecting methods, 136
Agile Project Management: Creating Innovative Products (Highsmith), 175
Agile, reasons for
ability/willingness to say “no,” 55
competence in face of change, 50–51
continuous improvement, 50
continuous learning, 55
continuous technical readiness, 45–46
customer bill of rights, 56–59
developer bill of rights, 57, 59–61
mentoring, 56
professionalism, 38
QA finding no faults, 52
reasonable expectations, 43
refusal to ship bad code, 43–45
software and its potential dangers, 42–43
software extent and dependence, 39–42
summary/conclusion, 61
team sharing responsibility, 54
ALM (Agile Lifecycle Management), 153–155
Analysis, ongoing in Agile, 24–25
Analysis Phase, Waterfall approach, 19–20
Analysts, subset of developers, 59
Arguments, refactoring code, 123
ASD (Adaptive Software Development), 174–175
Automatic Computing Engine (Turing), 3
Automation
deployment when test suite complete, 119
expectation of test automation, 52–53
tools for, 152
Bamboo, continuous build tool, 109
Basili, Vic, 3
Beck, Kent
Agile basics, 183
attendees at Snowbird meeting, 11
author meeting and partnering with, 9–10
example of Metaphor practice, 98
healing divide between business and development, 96
history of XP, 32
role in Agile bill of rights, 56
rules of Simple Design, 125–126
Behavior-Driven Development (BDD), 90
Best-case, trivariate analysis, 65
Bill of rights
customer bill of rights, 56–59
developer bill of rights, 57, 59–61
Booch, G.
Agile basics, 183
beginning of Agile, 8
“faking it” as strategy to transition to Agile, 140
Brooks, Jr., F.P., 28
Brooks’ law, on staff addition, 28
Bugs
Agile hangover and, 169
debugging, 117
inadequacy of software testing, 41–43
Burn-down charts
Business analysts, collaboration in Acceptance tests, 91–93
Business decisions
continuous technical readiness and, 45
healing divide between business and development, 96
ordering feature implementation by business value, 31
Business practices
Acceptance Tests. See Acceptance Tests
conclusion/summary, 96
planning. See Planning
Small Releases. See Small Releases
Whole Team. See Whole Team
CEC (Certified Enterprise Coach), 165
Certifications
Agile hangover and, 169
ICP-ACC, 158
need for real Agile certification program, 144
Certified Enterprise Coach (CEC), 165
Certified Team Coach (CTC), 165
Change
dates frozen while requirements change, 18
expectation of competence in face of, 50–51
schedule changes, 28
young developers introducing sea change in methodology, 188
Charts, use in data presentation, 15–18
Cheating, costs of, 110
Chief technology officer (CTO), 43
Circle of Life (XP)
Agile basics, 183
methods, 136
Team Practices, 98
Classes, refactoring code, 123–124
Clean Code
practices, 176
Software Craftsmanship’s impact on industry, 179–180
Co-location
increasing team efficiency, 94–95
tools supporting, 151
Coaching
demand for, 171
future of, 165
ICP-ACC certification, 158
misconceived as management, 172
in multiteam environment, 160
Scrum Master as coach, 143
Coaching Agile Teams (Adkins), 158
Code
code coverage as team metric, 120
controlling source code. See Source code control
developers, 59
improving without altering. See Refactoring
minimizing design weight of, 126
pairing as alternative to code review, 129
refusal to ship bad code, 43–45
“Code slingers,” 185
Collaboration
Collective Ownership
expectation of team sharing responsibility, 54
maladroit example of company X, 106–107
XP Circle of Life practices, 33
Command-line tools, for Agile developers, 148
Communication
core tools for Agile developers, 149
Companies. See Organizations/companies
Competence, expected in face of change, 50–51
Continuous Integration
build discipline, 109
core tools for Agile developers, 149
costs of cheating, 110
expectation of test automation, 53
expectation that QA finds no faults, 52
expectation mismatch, 171
Git and, 87
Small releases, 83
Software Craftsmanship practices, 176, 179–180
SOLID principles, 164
Costs
of cheating, 110
Iron Cross, (good, fast, cheap, done), 15
of pairing, 130
of tools, 154
Courage
Agile values, 134
Test-Driven Development and, 121–123
Craftsmanship. See Software Craftsmanship
Craftspeople, 174
Crichlow, Eric, 185
CruiseControl, continuous build tool, 108–109
Crystal Methods (Cockburn), 8, 11
CTC (Certified Team Coach), 165
CTO (chief technology officer), 43
Cucumber, automated test tools, 89–90
Cunningham, Ward
attendees at Snowbird meeting, 11–13
history of Agile, 3
history of XP, 32
role in Agile bill of rights, 56
Customers
communication as value, 134–135
feedback as remedy for shipping bad code, 45
The Daily Scrum, 110–111. See also Standup Meeting
Data
produced by Agile approach, 25–27
Data Dictionaries (DeMarco), 100
Data formats, core tools for Agile developers, 148
Dates
frozen while requirements change, 18
schedule changes, 28
Deadlines, 101
Death March Phase, of Waterfall approach, 22
Debugging, 117
Decoupling, testability and, 121
Dedication, overtime vs. sustainable pace, 103–104
Defects, QA disease and, 92
Delays, artificial delay in software teams, 45
Delivery, continuous. See Continuous Integration
Demo story, for stakeholders, 80–81
Deployment
continuous technical readiness and, 45–46
core tools for Agile developers, 149
when test suite complete, 119
Design. See also Simple Design
minimizing design weight of code, 126–127
Test-Driven Development as design technique, 121
Design Patterns, 8
Design Phase, of Waterfall approach, 20–21
Developers. See also Programmers; Software development/project management
Acceptance Tests and, 80
Agile hangover and, 169
collaboration in Acceptance tests, 91–93
expectation of adaptability, 49–50
expectation of productivity, 46–49
expectation mismatch, 171
Software Craftsmanship steadily adding, 174
software tools to master, 148–149
trend of moving apart from Agile, 172
what they should and should not do, 178
young developers introducing sea change in methodology, 188
Devos, Martine, 8
Directness, simplicity and, 135–136
Disks, in source code control, 85–86
Documentation, in Test-Driven Development, 117–118
Domain-Driven Design (Evans), 99–100
Domain-Driven Design, Metaphor practice, 99–100
Done
definition of, 80
Iron Cross, (good, fast, cheap, done), 15
project end, 73
tests and, 91
Double-entry bookkeeping, compared with Test-Driven Development, 114–115
Dynamic Systems Development Method (DSDM)
comparing ideology with methodology, 174
representatives at Snowbird meeting, 11
Escalation trees, growing the Agile adaptation, 163
Estimates
developer bill of rights, 60
estimating stories, 68–70, 76–77
INVEST guidelines for stories, 75
trivariate analysis, 65
yesterday’s weather in estimating iterations, 72–73
Evans, Eric, 99
Expectation mismatch, in Agile, 170–171
Expectations, reasonable
ability/willingness to say “no” when necessary, 55
continuous improvement, 50
continuous learning, 55
continuous technical readiness, 45–46
fearless competence in face of change, 50–51
mentoring, 56
overview of, 43
QA finding no faults, 52
refusal to ship bad code, 43–45
team sharing responsibility, 54
Expertise, of Agile coaches, 160
Extreme Programming Explained: Embrace Change (Beck), 32, 183
Extreme Programming (XP)
comparing ideology with methodology, 174
comparing with Agile, 180
growing the Agile adaptation, 163
physical management tools, 152
representatives at Snowbird meeting, 11
Software Craftsmanship practices, 176
technical practices, 172
transitioning to, 137
“Faking it” (Booch and Parnas), becoming Agile by, 139–140
Fearlessness, in face of change, 50–51. See also Courage
Feature-Driven Development
comparing ideology with methodology, 175
representatives at Snowbird meeting, 11
Features
creating stories in Iteration Zero, 24–25
Design Phase of waterfall approach, 19–20
Implementation Phase of waterfall approach, 21–22
ordering implementation by business value, 31
Feedback
Agile values, 135
feedback-driven, 17
remedy for shipping bad code, 45
FitNesse, automated test tools, 89–90
“Flaccid Scrum” (Fowler), 136
Flexibility, balancing with robustness, 171. See also Adaptability
Flip charts, as information radiator, 151
Flying Fingers, in story estimation, 76–77
Fowler, Martin
attendees at Snowbird meeting, 10–12
on “Flaccid Scrum,” 136
role in Agile Manifesto, 12
Frameworks, Agile and, 162
Git
example of what makes an effective tool, 149–150
source code control, 87
Given-When-Then, formalizing language of testing, 90
Golden Story
comparing subsequent stories, 69
estimating stories, 82
Grenning, James, 11
Help, in developer bill of rights, 60
Hope, vs. management, 27
Humans vs. Computers (Adzic), 44
Humble Pi (Parker), 44
Hunt, Andy, 11
IBM, birth of PC, 141
ICAgile’s Certified Agile Coach (ICP-ACC), 158
ICF (International Coach Federation), 158, 165
IDE (Integrated development environment), 148
Ideology, comparing with methodology, 174–175
Implementation Phase, Waterfall approach, 21–22
Improvement, continuous and steady, 50
Independent, INVEST story guidelines, 74
Independent, Negotiable, Valuable, Estimable, Small, Testable (INVEST), 74–75
Index cards, in managing stories, 66–67
Individuals, Craftsmanship impact on, 178–179
Industry, Craftsmanship impact on, 179–180
Information radiators, 151
Integrated development environment (IDE), 148
International Coach Federation (ICF), 158, 165
INVEST (Independent, Negotiable, Valuable, Estimable, Small, Testable), 74–75
Iron Cross, (good, fast, cheap, done), 15
Iteration Planning Meeting (IPM), 70–71
Iterations
accumulating of real data, 25–27
checking stories at midpoint, 72
JBehave, automated test tools, 89–90
Jeffries, Ron
attendees at Snowbird meeting, 11
role in Agile bill of rights, 56
Team Practices, 98
Jenkins, continuous build tool, 109
Kanban
growing the Agile adaptation, 163
teaching tools, 159
Kern, Jon, 11
Larman, Craig, 3
Learning, expectation of continuous, 55
LEGO city building, teaching tools, 159
Magnetic tapes, in source code control, 85
Management
barriers to transformation, 137
coaching and, 172
code coverage not a management metric, 120
“faking it” as strategy to transition to Agile, 139–140
physical tools, 152
portfolio management, 163
software projects. See Software development/project management
vs. hope, 27
Waterfall approach. See Waterfall project management
Managers
communication as value, 134–135
vs. coaches, 143
Marathons, Sustainable Pace and, 103
The Meeting, beginning Waterfall approach, 18–19
Meetings
Iteration Planning Meeting (IPM), 70–71
midpoint review, 72
Mellor, Steve, 11
Mentoring, 56. See also Coaching
Metaphor practice
advantages/disadvantages, 98–99
Circle of Life, 33
Methods/methodology
Agile as, 187
comparing with ideology, 174–175
Crystal Methods (Cockburn), 8, 11
Mikado Method, 150
refactoring code, 123
selecting Agile methods, 136
young developers introducing sea change in, 188
Metrics, 187
Mikado Method, 150
Mob programming, 130
Model-Driven programming, 11
Models, in communication with stakeholders, 100
Negotiable, INVEST guidelines for stories, 74
“No,” when to say, 55
Nominal-case, trivariate analysis, 65
North, Dan, 90
Object-Oriented Programming (OOP), 8
On-Site Customer. See Whole Team
Optimistic locks, in source code control, 86
Organizations/companies
Craftsmanship impact on, 180–181
creating Agile organizations, 141–142
Overtime, Sustainable Pace and, 102–103
Ownership. See also Collective Ownership
Software Craftsmanship, 174
Pair Programming
code review and, 129
costs, 130
expectation of team sharing responsibility, 54
mob programming, 130
overview of, 127
reasons for, 129
Software Craftsmanship practices, 176, 179–180
Pairing
Circle of Life practices, 34
expectation of continuous improvement, 50
Parker, Matt, 44
Partnerships, productive, 174
PCs (personal computers), IBM and, 141
PERT (Program evaluation and review technique), 65
Pessimistic locks, in source code control, 86
Pillory board, ALM tools, 154
Ping-Pong, in pair programming, 128
Planning
checking stories at midpoint of iteration, 72
demo of new stories to stakeholders, 80–81
estimating stories, 68–70, 76–77
Golden Story standard for story estimation, 82
project end, 73
QA and Acceptance Tests, 79–80
splitting, merging, and spiking stories, 77–78
trivariate analysis, 65
updating velocity and burn-down charts, 81–82
yesterday’s weather in estimating iterations, 72–73
Planning Game
Circle of Life practices, 33
expectation of honesty in estimates, 55
expectation of stable productivity, 50
Planning Poker, estimating stories, 76–77
Points. See Stories
Poole, Damon, 155
Portfolio management, Kanban, 163
Practices, technical. See Technical Practices
Pragmatic Programmers, at Snowbird meeting, 11
Process expert, becoming Agile expert, 156–157
Product Owner
not feeling part of team, 172
Scrum, 94
Productivity
expectation of stability, 46–49
staff additions and, 29
Profession
uniqueness of programming as a profession, 114
Professionalism
combining Craftsmanship with Agile, 181
community of professionals, 173
overview of, 38
software and its potential dangers, 42–43
for software extent and dependence, 39–42
Program evaluation and review technique (PERT), 65
Programmers. See also Developers
burn out, 101
collaboration in Acceptance tests, 91–93
collaboration in choosing stories, 78–79
communication as value, 134–135
design weight as cognitive load, 127
expectation to not ship bad code, 43–45
ruling the contemporary world, 41–43
as subset of developers, 59
uniqueness of programming as a profession, 114
Programming, comparing XP with Agile, 180
Programming languages, core tools for Agile developers, 148
Project end. See Done
Project management. See Software development/project management; Waterfall project management
QA (quality assurance)
collaboration in, 91
expectation of no faults, 52
liability of testing at the end, 92–93
QA testers as subset of developers, 59
role and burden of, 91
Quality
decreasing to meet schedules, 29–30
developer bill of rights, 59
Iron Cross, (good, fast, cheap, done), 15
Questioning, as coaching competency, 159
Rational Unified Process (RUP), 2, 168
RCS (Revision Control System), 86
Reasonable expectations. See Expectations, reasonable
Refactoring. See also Simple Design
Circle of Life practices, 34
expectation of continuous improvement, 50
expectation of inexpensive adaptability, 50
expectation of stable productivity, 50
Red/Green/Refactor cycle, 124–125
remedy for shipping bad code, 45
Software Craftsmanship practices, 176, 179–180
Refactoring (Fowler), 123, 183
Regression tests, 92
Releases. See also Small Releases
Agile hangover and, 169
defined, 87
expectation mismatch, 171
Repository tools, for Agile developers, 148
Responsibility
for Acceptance Tests, 93
developer bill of rights, 60–61
expectation of team sharing, 54
Return on investment (ROI), estimating stories, 71–72
Revision Control System (RCS), 86
Runaway Process Inflation, 22
Scalability, of Agile, 160
SCCS (Source Code Control System), 85–86
Schedules
changes to, 28
impact of changing quality, 29–30
impact of changing scope, 30–31
impact of staff addition, 28–29
Scope, changing to meet schedules, 30–31
Scripts, core tools for Agile developers, 148
Scrum
Agile synonymous with, 172
comparing ideology with methodology, 174
growing the Agile adaptation, 163
history of Agile, 8
Product Owner, 94
representatives at Snowbird meeting, 11
Scrum Master as coach, 143
Scrum Master certification, 144
selecting Agile methods, 136
Sharon, Yonat, 8
Shirt Sizes approach, estimating stories, 76
Simple Design
Circle of Life practices, 34
expectation of continuous improvement, 50
expectation of inexpensive adaptability, 50
expectation of stable productivity, 50
refactoring and, 125
remedy for shipping bad code, 45
Software Craftsmanship practices, 176, 179–180
SOLID principles, 165
weight of design and, 127
Simplicity, Agile values, 135–136
Sleep, Sustainable Pace and, 104
Small, INVEST guidelines for stories, 75
Small Releases
Circle of Life practices, 33
disks and SCCS in source code control, 85–86
driving team to shorter and shorter release cycles, 87
Git and, 87
SOLID principles, 164
subversion in source code control, 86
tapes in source code control, 85
Smalltalk, 8
Snowbird meeting
goal of, 2
healing divide between business and development, 96
starting the Agile momentum, 183
Software Craftsmanship
Agile and, 181
conclusion/summary, 182
focusing on value and not practice, 176–177
ideology vs. methodology, 174–175
impact on individuals, 178–179
Software development/project management
Agile addressing problems of small teams, 146–147
Agile as religion, 189
Agile promising fast delivery, 168–169
Agile use, 187
Analysis Phase of Waterfall approach, 19–20
charts for data presentation, 15–18
comparing Agile with Waterfall approach, 23–24
comparing Agile with XP, 180
dates frozen while requirements change, 18
Death March Phase of Waterfall approach, 22
dependence of contemporary society on, 39–42
Design Phase of Waterfall approach, 20–21
Design Phase of waterfall approach, 19–20
Implementation Phase of Waterfall approach, 21–22
The Meeting beginning Waterfall approach, 18–19
overview of, 14
SOLID principles
overview of, 164
Software Craftsmanship practices, 176, 179–180
Source code control
Git for, 87
subversion in, 86
tapes in, 85
Source Code Control System (SCCS), 85–86
SpecFlow, automated test tools, 89–90
Specialization, Collective Ownership and, 105
Specification, as tests, 88
Speed. See Velocity
Spikes, story for estimating stories, 77–78
Sprints. See Iterations
Staff, making additions, 28–29
Stakeholders
calculating return on investment, 71–72
models in communicating with, 100
participants in Iteration Planning Meeting, 70
Standup Meeting
Agile hangover and, 170
Stop the Presses events, breaks in continuous build, 109
Stories
checking at iteration midpoint, 72
examples of becoming Agile, 138–139
failure to deliver, 170
Golden Story standard, 82
SOLID principles, 164
splitting, merging, and spiking, 77–78
in trivariate analysis, 65
Story points. See Stories
Structured Programming (Dijkstra), 8
Subversion (SVN), in source code control, 86
Sustainable Pace
Circle of Life practices, 33
getting sufficient sleep, 104
marathons and, 103
overtime and, 102
SVN (Subversion), in source code control, 86
Tapes (magnetic), in source code control, 85
Taylor, Frederick Winslow, 4
TCR (Test && Commit || Revert), 150
TDD. See Test-Driven Development (TDD)
Team Practices
conclusion/summary, 111
Continuous Integration, 107–110
TeamCity, continuous build tool, 109
Teams. See also Team Practices; Whole Team
Agile address to small team issues, 144–147
coaching in multiteam environment, 160
collaborative approach to choosing stories, 78–79
expectation of stable productivity, 46–49
expectation mismatch, 171
growing the Agile adaptation, 163
pairing and, 129
sharing responsibility, 54
Technical debt, Agile hangover and, 169
Technical Practices
focusing on value and not practice, 176–177
methodologies and, 175
overview of, 114
Pair Programming. See Pair Programming
Refactoring. See Refactoring
Simple Design. See Simple Design
Software Craftsmanship, 175–176
technical issues as business problem, 172
Test-Driven Development. See Test-Driven Development (TDD)
Technical readiness (technically deployable)
expectation of continuous, 45–46
iterations and, 87
Test-Driven Development (TDD)
Author’s first experience with, 9
Circle of Life practices, 34
comparing with double-entry bookkeeping, 114–115
debugging and, 117
as design technique, 121
expectation of continuous improvement, 50
expectation of fearless competence, 51
expectation of inexpensive adaptability, 50
expectation of test automation, 53
expectation that QA finds no faults, 52
focusing on value and not practice, 176–177
as fun, 118
overview of, 114
Software Craftsmanship practices, 176, 179–180
XP and, 172
Test && Commit || Revert (TCR), 150
Testable, INVEST guidelines for stories, 75
Testers, as subset of developers, 59
Tests/testing. See also Acceptance Tests; Test-Driven Development (TDD)
Agile hangover and, 169
core tools for Agile developers, 149
coverage as team metric not management metric, 120
expectation of automation, 52–53
expectation of stable productivity, 50
formalizing language of, 90
in remedy for shipping bad code, 45
specification as test, 88
Thomas, Dave, 11
Three Rules
decoupling, 121
Red/Green/Refactor cycle, 124–125
of Test-Driven Development, 116–117
Tools, Agile
Agile Lifecycle Management (ALM), 153–155
automation, 152
coaching tools, 159
overview of, 148
physical tools, 151
Torvalds, Linus, 150
Trainers, vs. coaches, 142
Training. See also Coaching
great tools and, 153
Transition/transformation. See also Agile, process of becoming
“faking it” as strategy to transition to Agile, 139–140
from non-Agile approach, 137
Transparency, great tools and, 153
Trivariate analysis, in estimation, 65
Ubiquitous Language (Evans), 99–100
User stories, 66. See also Stories
defined
Valuable, INVEST guidelines for stories, 74–75
Values, Agile
courage, 134
feedback, 135
focusing on value and not practice, 176–177
Software Craftsmanship adds to, 173
transitioning from non-Agile approach, 137
van Bennekum, Arie, 11
Velocity
estimating in Iteration Planning Meeting, 70–71
falling, 82
Iron Cross, (good, fast, cheap, done), 15
slope of velocity charts, 81
Velocity charts
Agile data presented in chart views, 16
Waterfall project management
Crichlow on, 186
Death March Phase, 22
dominance as programming approach, 7–8
limitations of, 156
Snowbird meeting to address limitations in, 2
Whole Team
Circle of Life practices, 33
co-location increasing efficiency, 94–95
expectation of continuous aggressive learning, 55
expectation of honesty in estimates, 55
expectation of mentoring, 56
expectation of team sharing responsibility, 54
expectation of willingness to say “no,” 55
participants in Iteration Planning Meeting, 70
Wideband Delphi, estimating stories, 76
Worst-case, trivariate analysis, 65