Video: Software that Fits in Your Head - Dan North

Software that Fits in Your Head - Dan North

./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.6.png

./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.4.png

./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.9.png

software is not the point

productive != effective

./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.7.png to getting the business impact

./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.14.png understanding code code I know (new code no-one knows (middle) code everyone knows cared for

./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.3.png

entropy

./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.8.png

Short software Half-Life half-life (physics) know precisely half will decay in certain time, dunno which

How long would you need to go away, before half of the code has been completely rewritten? typically years ~6weeks fearlessly rewrite code I know more now

design considerations

./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.10.png well written code shows what it does NOT purpose NOT what is not there (decisions) purpose: why it’s there responsibility: what it owns (and what not)

lifecycle ./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.13.png documentation = why something is there

write component test and docs TDD != tests Article: Mike Nigard, architecture decision records decision we made people who made it things we considered things we discarded so this we ended extra credit: this is the problem it solves these risks are introduced -> stays in version control

static != stable

./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.2.png complexity metric: “bigger than my head” if have to page up and down, it’s too much

coping mechanisms analysis actively ignoring mocking and stubbing painkillers for complexity

what fits in my head? language clojure 1 way to do something scala least opinionated multiple dialects in 1 code base framework

./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.5.png what would James do? shared values

./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.11.png

microservices? ./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.png

hard shell pass messages

“little computers passing messages” -- Alan K -> inventor of OO object != entity object does things with entities

think about component by looking at the messages

microservices! ./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.1.png

closing message ./resources/video-software-that-fits-in-your-head-dan-north.resources/screenshot.12.png

Video: Software that Fits in Your Head - Dan North

GOTO 2016 • Software that Fits in Your Head • Dan North https://www.youtube.com/watch?v=4Y0tOi7QWqM GOTO Conferences 17,242 views views Published on Sep 27, 2016

./resources/video-software-that-fits-in-your-head-dan-north.resources/hqdefault.jpg

Description

This presentation was recorded at GOTO Amsterdam 2016 http://gotoamst.nl Dan North - Agile Troublemaker, Developer, Originator of BDD ABSTRACT Software gets complicated fast. Most of good architecture and design practise is about trying to slow the rate at which software gets complicated. You can’t stop it, it’s a form of entropy. You can only slow it down and do your level best to stay on top […] Download slides and read the full abstract here: https://gotocon.com/amsterdam-2016/pr…https://twitter.com/gotoamsthttps://www.facebook.com/GOTOConferencehttp://gotocon.com