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