keeping code agile

Post on 16-Apr-2017

215 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Keeping Code Agile

Agile Manchester

11th May 2016

#AgileManc

#KeepingCodeAgile

David Legge

@TheCodeCleaner

Working effectively with Legacy Code Michael Feathers

“I never wrote any

other sort”

- my dad

Working Effectively with Legacy Code Michael Feathers

Invaluable toolbox

● How to isolate for testing

● Create a test harness

● Baselines and documents current behaviour

● Allows further development with confidence

#KeepingCodeAgile

Why?

Entropy happens

Imagine yourself

3am on the day of release

Who?

Everyone

Needs support from business

When?

All the time

Small deferments possible

What?

Changable

Maintainable

Readable

No Dragons

What isn't Agile Code?

Greenfield to Legacy

In 6 months

Swimming in Treacle

Spaghetti Code

Weak groupings

Big Buckets

Scared to Commit

Code Wars

“Don't touch my code”

Here be Dragons

Here be Dragons

Well go slay them

Learn the code by changing it

Build momentum

It's

software

not

stoneware

Make it work

Then make it better

You're not 'Done'

Until you've refactored

Integrating more than a days work is risky

Work In Progress

=

Work At Risk

Small change

Smaller risk

“Software has diseconomies of scale”

@allenkellynet

Bank your work

Use git/hg's local repo

Minimal branching

Manage the risk

Evolve it

Manage the risk

Prototype it

Manage the risk

Frontload it

There's only

one

source of truth in the codebase

And its not the comments

Clean Code – 'Uncle Bob' Martin

My bible

Key concepts:

● Abstraction

● Don't repeat yourself

● Naming

● Commenting

Need tests you can be confident in

Don't be strangled by tests

Not enough

Too many

Too fragile

Too slow

Pyramid of Tests

Christmas Tree of Tests

UI

Rest API

Lean build

Art of Agile Development – Warden & Shore

Key Concepts:● 10 minute build● Collective Code

Ownership

Move analysis offline

It's a Learning Opportunity

Look after the

Goose that lays the Golden Egg

Be Proactive

Manual decision

Single-click deploy

#KeepingCodeAgile

David Legge

@TheCodeCleaner

top related