Accelerating Agile - an experience report Dan North @tastapod Dan - - PowerPoint PPT Presentation

accelerating agile
SMART_READER_LITE
LIVE PREVIEW

Accelerating Agile - an experience report Dan North @tastapod Dan - - PowerPoint PPT Presentation

Accelerating Agile - an experience report Dan North @tastapod Dan North & Associates Once upon a time... @tastapod Step 1: Learn the domain Seed the team with a domain expert Study trading just like a trader! Practise


slide-1
SLIDE 1
  • an experience report

Dan North @tastapod Dan North & Associates

Accelerating Agile

slide-2
SLIDE 2

@tastapod

Once upon a time...

slide-3
SLIDE 3

@tastapod

Step 1: Learn the domain

✔ Seed the team with a domain expert ✔ Study trading – just like a trader! ✔ Practise trading with the traders

and while you're there...

slide-4
SLIDE 4

@tastapod

Step 2: Prioritise risky over valuable

✔ Actively surface uncertainty ✔ Domain uncertainty

– Integrating with a trading exchange – Managing orders

✔ Technical uncertainty

– Latency, Throughput – Toolchain

slide-5
SLIDE 5

@tastapod

Step 3: Plan as far as you need

✔ Adjust as you learn ✔ Reset the board

– Every week? Every day?

✔ Review your planning horizon

slide-6
SLIDE 6

@tastapod

Step 4: Try something different

Languages

– Scala – JavaScript and nodejs – Erlang, Clojure, Go

Programming styles

– CSP – Actors – Single Event Loop a.k.a. “Turn-based processing” – Fork-join

slide-7
SLIDE 7

@tastapod

Step 5: Fire, Aim, Ready

✔ Get something (anything!) in front of users ✔ The best feedback is from real use ✔ Showcase frequently – even daily!

slide-8
SLIDE 8

@tastapod

Step 6: Build small, separate pieces

“Share memory by communicating” DRY is the enemy of decoupled Don't be afraid of functions ...languages or libraries

slide-9
SLIDE 9

@tastapod

Step 7: Deploy small, separate pieces

✔ Make component deployment quick ✔ Make product deployment consistent ✔ Make components self-describing ✔ Make environments unsurprising

slide-10
SLIDE 10

@tastapod

Step 8: Prefer simple over easy

I'm using Java. I'm writing HTTP-based services. Do I really need a servlet container?

– https://github.com/webbit/webbit

I need to manage binary dependencies. Do I really need an XML-based Internet downloader?

– https://github.com/mfoemmel/fig

How hard does monitoring really need to be?

– Idea to wireframe to working implementation in a morning!

slide-11
SLIDE 11

@tastapod

Step 9: Make the trade-offs

Build vs. buy vs. OSS Learning a framework vs. rolling your own Does logging really need a “framework”?

slide-12
SLIDE 12

@tastapod

Step 10: Share the love

✔ Pairing ✔ Learning lunches ✔ Code review (!!) ✔ On-boarding

slide-13
SLIDE 13

@tastapod

Step 11: Be ok with “failure”

Product Development not Project Delivery Progress is a series of experiments Failing fast is succeeding!

slide-14
SLIDE 14

@tastapod

Step 12: There are always 12 steps

Delivering this fast can be addictive :) It can also cause feelings of euphoria There are probably groups you can talk to

slide-15
SLIDE 15

@tastapod

Thanks for listening

dan@dannorth.net http://dannorth.net And big thanks to my former team at DRW