Richard rodger technical debt - web summit 2013
-
Upload
richard-rodger -
Category
Technology
-
view
1.147 -
download
3
description
Transcript of Richard rodger technical debt - web summit 2013
![Page 1: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/1.jpg)
Falling in Love withTechnical Debt
@rjrodger
senecajs.org
Tuesday 5 November 2013
![Page 2: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/2.jpg)
How did theRomans do
Long Division?Tuesday 5 November 2013
![Page 3: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/3.jpg)
LXXII MMMDCXIIL rem XII
Tuesday 5 November 2013
![Page 4: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/4.jpg)
How did theRomans doAddition?
Tuesday 5 November 2013
![Page 5: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/5.jpg)
IV + XI = ?
Tuesday 5 November 2013
![Page 6: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/6.jpg)
1. Normalize: IV → IIII2. Concatenate: IIII + XI → IIIIXI3. Sort, descending: IIIIXI → XIIIII4. Reduce: XIIIII → XV
IV + XI = ?
Tuesday 5 November 2013
![Page 7: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/7.jpg)
How did theRomans do
Subtraction?Tuesday 5 November 2013
![Page 8: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/8.jpg)
XXIV - XV = ?
Tuesday 5 November 2013
![Page 9: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/9.jpg)
1. Normalize: XXIV → XXIIII2. Eliminate: XXIIII - XV → XIIII - V3. Expand: XIIII - V → VIIIIIIIII - V4. Repeat 2 and 3 until no moves left5. Reduce: IIIIIIIII → IX
XXIV - XV = ?
Tuesday 5 November 2013
![Page 10: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/10.jpg)
How did theRomans do
Multiplication?Tuesday 5 November 2013
![Page 11: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/11.jpg)
III × VI = ?
Tuesday 5 November 2013
![Page 12: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/12.jpg)
III × VI = ?bit shifting
Tuesday 5 November 2013
![Page 13: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/13.jpg)
III → 3VI → 6 → 110
III × VI = ?bit shifting
Tuesday 5 November 2013
![Page 14: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/14.jpg)
III → 3VI → 6 → 110
III × VI = ?
3 × 001 × 0 = 03 × 010 × 1 = 63 × 100 × 1 = 12 18
bit shifting
Tuesday 5 November 2013
![Page 15: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/15.jpg)
III → 3VI → 6 → 110
III × VI = ?
3 × 001 × 0 = 03 × 010 × 1 = 63 × 100 × 1 = 12 18
bit shifting
Tuesday 5 November 2013
![Page 16: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/16.jpg)
III → 3VI → 6 → 110
III × VI = ?
3 × 001 × 0 = 03 × 010 × 1 = 63 × 100 × 1 = 12 18
bit shifting
Tuesday 5 November 2013
![Page 17: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/17.jpg)
How did theRomans doDivision?
Tuesday 5 November 2013
![Page 18: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/18.jpg)
Tuesday 5 November 2013
![Page 19: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/19.jpg)
they didn't
Tuesday 5 November 2013
![Page 20: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/20.jpg)
Tuesday 5 November 2013
![Page 21: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/21.jpg)
Roman Numerals have
Technical DebtTuesday 5 November 2013
![Page 22: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/22.jpg)
http://akvo.org/blog/the-ball-of-mud-transition/
Tuesday 5 November 2013
![Page 23: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/23.jpg)
Tuesday 5 November 2013
![Page 24: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/24.jpg)
The JavaScript Date Object
var today = new Date( 2013, 10, 30)console.log(today)
Sat Nov 30 2013 00:00:00 GMT+0000
Tuesday 5 November 2013
![Page 25: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/25.jpg)
Not allTechnical Debt
is created equalTuesday 5 November 2013
![Page 26: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/26.jpg)
"A good plan, violently executed now,is better than a perfect plan next week."
Intentional
Tuesday 5 November 2013
![Page 27: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/27.jpg)
Unintentional
Tuesday 5 November 2013
![Page 28: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/28.jpg)
Inherent
Tuesday 5 November 2013
![Page 29: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/29.jpg)
Incidental
Tuesday 5 November 2013
![Page 30: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/30.jpg)
2x2 Matrix!
deliberate choice live with it
you are a bad person
unknown unknowns
intentional
unintentional
incidental inherent
Tuesday 5 November 2013
![Page 31: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/31.jpg)
Tuesday 5 November 2013
![Page 32: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/32.jpg)
Tuesday 5 November 2013
![Page 33: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/33.jpg)
Tuesday 5 November 2013
![Page 34: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/34.jpg)
NTSC 1941 Standard:
Black+White onlySignal encodes BrightnessEach Channel gets 6Mhz
Happy Days!
Tuesday 5 November 2013
![Page 35: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/35.jpg)
Color TelevisionThree Colors: Red, Green, Blue
Each Color needs 3MhzYou only have 6Mhzand you need 9Mhz!
Technical Debt FTW
Tuesday 5 November 2013
![Page 36: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/36.jpg)
You can't Break theold Black+White TVs
Tuesday 5 November 2013
![Page 37: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/37.jpg)
We must send the old brightness signal
White Light =30% Red
59% Green11% Blue
Send White, Red and Blue
Tuesday 5 November 2013
![Page 38: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/38.jpg)
You need to embed the color signals inside
the brightness signal
Tuesday 5 November 2013
![Page 39: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/39.jpg)
Color TV circuits aremore complicated
than they should be.
Tuesday 5 November 2013
![Page 40: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/40.jpg)
How do you ReduceTechnical Debt?
Tuesday 5 November 2013
![Page 41: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/41.jpg)
Things thatDon't Work
Tuesday 5 November 2013
![Page 42: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/42.jpg)
Unit Testing(or any other sort)
Tuesday 5 November 2013
![Page 43: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/43.jpg)
Objects
Tuesday 5 November 2013
![Page 44: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/44.jpg)
Design
Tuesday 5 November 2013
![Page 45: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/45.jpg)
Process
Tuesday 5 November 2013
![Page 46: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/46.jpg)
Mitigation As Good as it Gets
Tuesday 5 November 2013
![Page 47: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/47.jpg)
Conform
Tuesday 5 November 2013
![Page 48: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/48.jpg)
Rebel
Tuesday 5 November 2013
![Page 49: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/49.jpg)
Evolve
Tuesday 5 November 2013
![Page 50: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/50.jpg)
•Do one job•Death is natural•Use messages
•Really small
Cells
Tuesday 5 November 2013
![Page 51: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/51.jpg)
•Do one job•Death is natural•Use messages
•Really small
Micro Services•One feature•kill and restart•No shared state
•100 lines of code
Tuesday 5 November 2013
![Page 52: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/52.jpg)
ExamplesUser Data
Encrypt Password
Image Resize
SendEmail
Business Rule
Monitor
ParseFormat
Tuesday 5 November 2013
![Page 53: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/53.jpg)
how do you route messages?
Pattern MatchingTuesday 5 November 2013
![Page 54: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/54.jpg)
// load a user's data by name{ user:"load", name:"alice" }
// login user - load and check password{ user:"login", name:"alice", pass:"123"}
The user Service
some messages
github.com/rjrodger/websummit2013senecajs.org
Tuesday 5 November 2013
![Page 55: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/55.jpg)
var users = { alice: {name:"alice", pass:"123"}, bob: {name:"bob", pass:"abc"},}
function user_load( args, done ) { // callback( err, result ) done( null, users[args.name] ) }
user_load action
Tuesday 5 November 2013
![Page 56: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/56.jpg)
function user_login( args, done ) { user_load( { name:args.name }, function(err,user){ if( err || !user ) return done(err);
if( user.pass == args.pass ) return done( null, user );
return done(); })}
user_login action
Tuesday 5 November 2013
![Page 57: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/57.jpg)
require("seneca")() .add({ user:"load" }, user_load) .add({ user:"login" }, user_login) .listen(8000)
$ node user.js
$ curl "http://localhost:8000/act ? user=login & name=alice & pass=123"
{ "name":"alice", "pass":"123" }
Run user Service using Seneca
Tuesday 5 November 2013
![Page 58: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/58.jpg)
•Easy to change - just rewrite!•Easy to scale - run more instances•Easy to reason about - just messages•Easy to make robust - kill and restart!•Easy to build - natural units of work
What Happens?
Tuesday 5 November 2013
![Page 59: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/59.jpg)
Technical Debt?lower interest rate!
See github forscaling and adapting
github.com/rjrodger/websummit2013senecajs.org
Tuesday 5 November 2013
![Page 60: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/60.jpg)
•Java: twitter.github.io/finagle•Ruby: sinatrarb.com•Node: senecajs.org
Try this at Home!
Tuesday 5 November 2013
![Page 61: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/61.jpg)
Technical Debt•overwhelms every other factor•should drive your architecture•can be mitigated with awareness
Tuesday 5 November 2013
![Page 62: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/62.jpg)
Tuesday 5 November 2013
![Page 63: Richard rodger technical debt - web summit 2013](https://reader034.fdocuments.in/reader034/viewer/2022042813/54b76bd34a79596d3a8b459a/html5/thumbnails/63.jpg)
Thank You!@rjrodger
senecajs.org
Tuesday 5 November 2013