Cut me
Some
Slack
Morgan KOBEISSI
Best of Web Paris
June 2018
bestofwebconf
mc_moe
@
The road to continuous
learning and improvement
sli.do >> #slack
@
Business Intelligence
Full Stack Dev
Coach
Context
-
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:
We will answer the Q:
How can we continuously learn and improve in an agile context while maintaining consistent delivery, long term health, happiness and productivity?
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."
An organization that can accelerate but not change direction...
short run
...lot of progress...
long run - curves!
must 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
Welcome changing reqs, even late in development...
Build projects around motivated individuals...
Agile processes promote sustainable development...
"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."
The Goal
source: https://good.co/blog/workplace-happiness/
source: https://good.co/blog/workplace-happiness/
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.
Slack is an Investment
It is capacity sacrificed in the interests of long-term health
Lack of Slack
We Slackin'
Great!
But How?!
Reduce Stress
Capacity for Change (agility)
Key personnel retention
Improved ability to invest
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
Slack as a 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
Let's tackle TD!
Like...
* automate all the things!
* refactor
* exploratory testing
* static code analysis warnings
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!
* Watch videos
* MOOCs - coursera, edx, ...
In case of Emergency
CI failing?
Production issue?
Change of scope?
Underestimated story?
Developer sick?
Tests failing "randomly"?
Slack as a Shock Absorber
Smooth iteration? refactor
Behind schedule? don't
A buffer to meet commitment
BTW: Always refactor new code!
Big Problem?
Cancel Research Time
Too big?!
Out of Slack scope...
Slack as a Shock Absorber
Pitfalls!
Always cancelling Slack?
If you consistently use most of your slack, you’ve overcommited.
Results
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
Invest in Slack!
Invest in your organization's
long term health
References
by James Shore and Shane Warden
References
by Tom Demarco
Thank you
☺︎
@
Slack
By mcmoe