Cut me
Some
Slack
Morgan KOBEISSI
Devoxx Poland
June 2017
#DevoxxPL
mc_moe
@
The road to continuous
learning and improvement
sli.do >> #slack
Business Intelligence
Full Stack Dev
Agile Coach
The Goal
How can we continuously learn and improve in an agile context while maintaining consistent delivery, long term health, happiness and productivity?
and why does it matter?
Why does it matter?
Change is inevitable
"those that cannot respond to change are at a risk of being left behind."
Organisational Slack
"the degree of freedom in a company that allows it to change."
Slack (noun)
"the part of a rope, sail, or the like, that hangs loose, without strain upon it."
An organization that can accelerate but not change direction...
short run
...lot of progress...
but on the long run
the road
is never straight
we have to "be" agile
what is agile?
"The ability to create and respond to change in order to succeed in an uncertain and turbulent environment."
The agile manifesto
"Responding to change
over following a plan"
the agile manifesto
Welcome changing reqs, even late in development...
Build projects around motivated individuals...
Agile processes promote sustainable development...
Game of Fifteen
layout efficiency
Game of Fifteen
Efficient use of space
Efficiency has a Cost
It’s possible to make an organization more efficient without making it better.
Sub
Optimization
Introduce Slack
Make an organization a little less efficient and improve it enormously.
Introduce Slack
Allow the organization to breathe, to reinvent itself, and to make necessary change.
Busyness vs Business
Extreme busyness is injurious to the real work of the organization.
"The goal is only partly expressed in getting something done"
"The other part of the goal is that we learn, grow and enjoy ourselves along the way."
source: https://good.co/blog/workplace-happiness/
source: https://good.co/blog/workplace-happiness/
source: https://good.co/blog/workplace-happiness/
source: https://good.co/blog/workplace-happiness/
Slack is an Investment
It is capacity sacrificed in the interests of long-term health
Slack is not waste
If you're too busy, you can't invent
Lack of Slack
We Slackin'
Benefits of Slack
Reduce Stress
Capacity for Change (agility)
Key personnel retention
Improved ability to invest
Great!
But How?!
Prereq
iteration / velocity / tech debt
https://www.agilealliance.org/glossary/iteration
https://www.agilealliance.org/glossary/velocity
https://martinfowler.com/bliki/TechnicalDebt.html
Iteration
"A timebox during which development takes place"
Velocity
"total estimates of work completed during an iteration"
1
3
5
8
13
Technical Debt
Reckless
Careful
"we don't have
time for design"
"we must ship now and deal with consequences"
"What's Layering?"
"now we know how we should have done it"
Deliberate
Unintended
source (martin fowler)
Tech Debt Quadrant
Velocity Stabilizer
If your velocity bounces
commit to less!
Velocity Stabilizer
Use the slack time
for non critical work
Work you can set aside in case of an emergency
Technical Debt
Even the best teams accumulate it
(T)echnical (D)ebt
Examples of TD
dependency versions
recurrent manual tasks
static code analysis
variable names
When?
All the time!
Suggestion: Make TD visible
Plus...
* automate all the things!
* exploratory testing
* sonar marathon
* innovate with "one more thing"
Research Time
Programmers must continuously improve their skills
Learn
Widen range
Share
Apply
When?
* morning might be better
* hands-off, your choice
* half a day for each
* day before end of sprint
* focus - no distractions!
* team lunch - share findings
Read or listen!
* Clean code
* Effective java
* TDD By Example
* Design Patterns
* Eloquent javascript
* Soft Skills
* Agile Retropectives
Plus!
* Hive mind
* MOOCs - coursera, edx, ...
* Lunch Crunch (my playlist)
In case of Emergency
CI failing?
Production issue?
Change of scope?
Underestimated story?
Developer sick?
Tests failing "randomly"?
Slack; a Shock Absorber
Smooth iteration? refactor
Behind schedule? don't
A buffer to meet commitment
BTW: Always refactor new code!
Slack; a Shock Absorber
Big Problem?
Cancel Research Time
Too big?!
Out of Slack scope...
Pitfalls!
Always cancelling Slack?
If you consistently use most of your slack, you’ve overcommited.
Results
When you incorporate slack into your iterations, you consistently meet your iteration commitments.
Results
You rarely need overtime.
Results
In addition, by spending so much time paying down technical debt…
Results
Your code steadily improves
and makes further enhancements easier.
increasing your productivity
Results
Research increases knowledge
that helps you develop more effectively
and provides insights
Conclusion
-
practicing Scrum or the like?
-
struggling to stay above water to meet demands?
-
overcommitting in your iterations?
-
committing to your velocity but not delivering?
-
facing inconsistent velocity between iterations?
-
feeling your agility is fragile?
-
frustrated there's no time to learn new things?
Are you in a situation where you are:
Invest in Slack!
Invest in you
References
by James Shore and Shane Warden
References
by Tom Demarco
Thank you
☺︎
@
Slack
By mcmoe
Slack
Slides for my talk at Devoxx Poland 2017 on why the notion of slack is important in the organization and how you can implement it to foster continuous learning and improvement.
- 3,632