This presentation was recorded at YOW! 2019. #GOTOcon #YOW
    https://yowcon.com

    Kevlin Henney – Consultant, Programmer, Keynote Speaker, Technologist, Trainer & Writer @KevlinHenney

    RESOURCES
    https://about.me/kevlin

    https://linkedin.com/in/kevlin
    https://instagram.com/kevlin.henney
    https://kevlinhenney.medium.com

    ABSTRACT
    An obsession with #speed often overtakes the core values of #AgileSoftwareDevelopment. It’s not just development of software; it’s development of working software. #Sprints are not about sprinting; they’re about sustainable pace. Time to market is less important than time in market. Full-stack development is normally a statement about technology, but it also applies to individuals and interactions. The full stack touches both the code and the world outside the code, and with that view comes responsibility and pause for thought. Doing the wrong thing smarter is not smart. The point of a team is its #GroupIntelligence not its numbers. Is scaling up the challenge, or is scaling down the real challenge?

    The #distraction and misuse of speed, #velocity, point-based systems, time, #TeamSize, scale, etc. is not the accelerant of agile development. #Agility lies in experimentation, responsiveness and #TeamIntelligence. […]

    RECOMMENDED BOOKS
    Kevlin Henney • 97 Things Every Programmer Should Know • https://amzn.to/2Yahf9U
    Henney & Monson-Haefel • 97 Things Every Software Architect Should Know • https://amzn.to/3pZuHsQ
    Matthew Skelton & Manuel Pais • Team Topologies • http://amzn.to/3sVLyLQ
    Michael Jackson • Software Requirements and Specifications • https://amzn.to/3ql2T14
    Geoffrey West • Scale • http://amzn.to/3eKMbpc
    Donald G. Reinertsen • The Principles of Product Development Flow • https://amzn.to/3hJ2Ye


    https://www.linkedin.com/company/goto-
    https://www.instagram.com/goto_con
    https://www.facebook.com/GOTOConferences
    #ContinuousImprovement #DeveloperProductivity #Productivity #SoftwareEngineering #Programming #KevlinHenney #YOWcon

    Looking for a unique learning experience?
    Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech
    Sign up for updates and specials at https://gotopia.tech/newsletter

    SUBSCRIBE TO OUR CHANNEL – new videos posted almost daily.
    https://www.youtube.com/user/GotoConferences/?sub_confirmation=1

    I’d like everyone to if they could please give warm welcome to Kevin and this is the bit where it all works yeah there you go brexit Britain that’s what it looks like yeah that’s it’s what we call Summer okay so um right what are we going to talk about

    We talk about this so we don’t know if the food is going to be out there but I presume the drinks might be let’s hope so let’s hope so right well this you know so I’m standing between you and some free Boos excellent that’s uh um so

    And back to the twitters the hashtags and all the rest of it that my parents gave me a sufficient internet unique name so it’s always um which I think was impressive the internet didn’t actually exist at the time um but do think of this for your children it is’s a gift

    You can offer them I I’ve done that for my kids um and you know it’s about a decade and a half in the making you know I did Google their names but you know it’s the fact that the older one it’s just like Dad what shall I use I said

    Just use your first name last name oh it’s available yeah yeah I know and the same for his domain name and it’s just like you know that is how you get gratitude out of a teenager in case you were wondering uh I was really excited by the crush possibilities except for the fact

    That they’re teenagers otherwise it’s just like yeah yeah look just go and play with the other kids um come down to per well last time I yeah last time I went through a place called Perth it was a lot colder um it was on the way to

    Dundee and I had exactly the same problem uh as I have here I I kept driving or looking the wrong way when I crossed the road cuz I got so used to the fact that airplane means other side of the road airplane means other side of

    The road and I I I get that every time I go to Australia it’s just oh I’ve gotten the wrong side of the car just like yes but you’re British I know and everywhere else isn’t you know so therefore I’ve learned this is a reflex um Now cars are

    Relevant we are going to talk a little bit about cars we talk about speed and I want to deal with some false equivalences some myths um and so on and I also need to do a sound check the only reason I’m wearing this mic is for that recording over there um can everybody

    Hear me that’s a really stupid question uh raise your hands if you can hear me and therefore the people I’m looking for the gaps at the back there we go there we’re good um okay so Sam mantion um I’ve done stuff with patterns um that’s also I only show these pictures just to

    Show there’s evidence of sunlight in Britain um uh I quite like photography as well as writing flash fiction uh and my kids got used to the fact that whenever there is even the slightest remotest hint of sunshine in Bristol I will race through the house with a

    Camera and a bunch of books trying to get good photographs yeah otherwise they all come out black and white yeah um and very gray that’s the 97 things every programmer should know um I’m in theory we’re working on 97 things every Java programmer should know um again Watch

    Twitter we’ll see what happens with that one U but that will be an open call contributions to that uh it’s it’s for anyone okay so if you feel that you have 500s on 500 words to say on on various things related to the Java ecosystem

    Then that may be uh may be for you however we’re not really going to talk about that we’re going to talk about this this box that was delivered to me a couple of years back and I just thought you know they they cut they cut the tape

    In just the right place um and uh so I want to talk about this stuff and where better to go than the dictionary oh you want to take a photograph that go for go come go on come on um so concise OED says um that agile

    Is an adjective which is a good start it means it’s a property of something okay it’s not a noun you can’t do it you are it or are more of it in other words yes we are more agile or less agile than we were 6 months ago that

    Team is uh more agile than that team we can even apply it to um uh the artifacts that we work upon when we realize what it actually means able to move quickly and easily so we can say of our codebase that it is agile are we able to move it

    Quickly and easily this is one of the biggest causes of where you have a team that’s kind of like yeah we got add our mindset and you got a code that goes uhuh the code refuses to be moved easily and quickly okay so there’s this notion of alignment

    There but there’s a couple of things here this is a really simple definition and yet it’s not simple enough for some people for many people they reduce it to just that they forget the easily bit somehow we just lost a whole dimension of complexity and possibility

    And this comes back to the fact that a lot of things that we Advocate when we talk about good practice or good process they are in some sense hard and we can go right back to um Blaise Pascal um and his provincial letters I made this letter longer than usual because I

    Have not had time to make it shorter the internet gives you all kinds of citations for this one they’re mostly wrong unless they are blae Pascal because the original French was this he didn’t say it in English and I found the original French so we do know that there’s that but the most

    Interesting thing here is that this takes effort all of these things take effort and we’ll come back to the sizing aspect and its relationship to uh agility a little bit later but really at the moment the thing I’m really interested in is this question of time

    It turns out as human beings we are terrible at dealing with time we have very poor sense of time we have very poor judgment over time uh the whole 2008 credit crisis came about because of uh what’s called poor intertemporal judgment um uh which is a fancy way of

    Saying people just have no idea how to invest for the present um versus the future and I’m talking about the finance years here not the public um so we have we are very very bad when it comes to time we are very bad when we talk about

    It in terms of estimation and things like that we we not we’d like to think we’re good at it because we exist in it but actually it turns out that um there’s a lot more subtlety to it it also tells us something else to do it’s

    To do with what we value and the problem is that sometimes when we start talking about things like value which I’ll come back to later um turns out you have to understand somebody’s value system to understand um uh what’s going on so um the uh Northern Irish football player

    George best had this is one of his more famous quotes I spent a lot of money on booze birds and fast cars again I said cars will be coming up the rest I just squandered now here you immediately see a representation of a person’s value system and the point there is that that

    On its own gives you a very different story to that okay and it is this question of understanding how people relate to time and how they relate to Value how they relate to their own experience um so this is a replay of um kind of an interesting conversation I

    Had with a with a developer we doing some python I can’t get this code working did you check it before integrating it yes checked it in The Interpreter no did it work there no yes it’s like it’s just like what what how there what we see here again going back

    To that personal sense is there is this reveals the sense of optimism that people in software development have this unconditional optimism well it didn’t work work there but maybe it’ll work there maybe it didn’t work on my machine the opposite of the usual one it didn’t

    Work on my machine maybe it’ll work on in production what a great idea and honestly the the people who are in software development are optimistic otherwise they simply wouldn’t do it there is that always that sense that perhaps perhaps just perhaps this all will work out contrary to all the

    Evidence that has been presented to us but this forms part of a culture a culture that best captured by this and yes that is intentional because this is what happens when you move fast you do break things and the problem is this is an engineering Maxim which has its place but it’s never

    Presented with a boundary as uh Facebook have recently demonstrated the point here is that if you’re breaking something whose thing is it and are you going to fix it you know it all sounds very this is all this is all this kind of brogrammer nonsense okay this is all

    Very Brash and there’s a lot of Macho nonsense tied up in this honestly this is not how I want to develop but we have this obsession with speed now this is the interesting thing because we do have an obsession with speed but sometimes we hide behind other words we hide behind words like

    Velocity we can actually blame Kent Beck for introducing the term velocity to the agile space a lot of people think it’s a scrum thing but actually it came from the original extreme programming uh book XP explains in 1999 um and has been uh incorporated into a lot of discussions um and scrum

    Approaches uh but the term is used interchangeably with speed and I I struggle with this because somewhere in my past I have a degree in physics and these two are not these two are not equivalent okay this notion is that there is the there is Direction okay it’s not just a magnitude

    It’s not just an amount it has a direction as well that direction matters immensely the problem is that what we’re getting from most teams most reporting structures most metrics is speed we’re not getting velocity you know we you’re heading in the wrong direction at great speed how

    Are we doing oh we’re going really fast yeah but shouldn’t we be heading that way doesn’t matter we got the speed on that um so you know it reminds me of a time when I was driving from Brussels Airport trying to get into Germany uh Brussels is surround um Brussels is surrounded by

    A ring road now one of the interesting properties of ring roads um is that they are circular which means that uh all signs point to all directions now if you’re on a long straight road you can normally sense which direction you’re going in but given that actually every

    Single sign had um uh had signs to pretty much everywhere in Belgium north south east and west it it was I wasn’t getting any getting any help here and this is just before um I got a satav as well and uh it was only when I realized

    The sun was in the wrong place that I was heading in the wrong direction and this is this notion I was driving at great speed obviously once I got across the German border that was great because they don’t have a speed limit on the AO barn but it turns out that driving at

    Great Speed without the right direction is not the point I would have been better off walking for most of that journey and this is huge this idea of are we moving in the right direction that that tells us that we have to navigate that tells us we have to take

    Our bearings and I don’t care if that takes a bit of time because honestly that’s time saved so we focus on the magnitude magnitude is displacement with respect to time what is s well fancily speaking let’s just keep it simple my kids are doing um actually no the older

    One’s just doing this one um the young one’s just doing this one what is s s is distance okay let’s talk about this in terms of software s is stuff now stop me if I’m being too technical because what we’re talking about here is amount of stuff per time

    Okay we need to we want to measure that okay amount of stuff per time so we’re just we’re going to drop any pretensive velocity we’re just going to go for Speed we’re going for magnitude people often presented with idealized burndown charts which look like this which always

    Worry me a little bit because there is a sense here that if you are dealing with something if you are dealing with the development of something which you do not know everything about then this is probably not the progression you want you probably want a start slow speed up progression oh yeah

    Now we get now we get the idea oh yes now it’s all coming together in other words it should look more like that um and there is this notion that that profile is is is idealized but and it does serve a purpose but I tend to prefer rather than burnd Downs I prefer

    Buildup charts which is how much stuff have we built honestly if you can combine the two you can get cumulative flow diagrams but that’s a different discussion but I’d like to know how much stuff we’ve actually built and this is a buildup chart although for reasons that escape me

    Except symmetry of language people often call this a burnup chart and honestly honestly I’m thinking that’s a really bad metaphor to be going with you know you know when my kids were small burn up meant they’ve got fever okay this is bad you know we um uh likewise

    I’m really into space travel and stuff again burning up bad thing yeah it’s got bad written all over it so I prefer buildup because quite literally it is more constructive how much stuff have we made over time now that’s fine except we are we are challenged at some point

    Somebody has to tell us what is it that we’re measuring with stuff and the ideal version is value this is a phrase that gets thrown around but the problem with that term is that if you kind of scratch it it turns out there’s either not a lot

    There or what you think is value is not somebody else’s value going back to the George West quote and sometimes an obsession with value falls into particularly when we start talking about financial value it falls into the same trap as pursuing any other metric blindly like speed um this

    Um cartoon characterizes this yes the planet got destroyed but for a beautiful moment in time we created a lot of value for shareholders and honestly sometimes the way that software is developed you can’t of get that sense but there’s something else here that we need to be

    Very careful with we need to be very careful with our language uh people often talk about estimation or prioritization these two things kind of go together but sometimes you you forget that you can have an estimate of a priority the reason I say this is because people often talk about

    Prioritizing their features their backlog with respect to business value I’m here to tell you that you can’t do that okay it’s actually a physical impossibility to prioritize your backlog with respect to business value because with respect to the laws of physics you need time travel because you

    Do not know the business value of something when you are building it you only know after the fact so unless you actually have a time machine you cannot prioritized by business value and if you have a time machine what the hell are you doing here I mean there’s some

    Dinosaurs to be checked out okay but this is important because what it does is it shifts our vocabulary again to something a little more honest speed and velocity and not interchangeable terms or rather by understanding the difference we actually reveal a gap this is important you can prioritize by estimated business value

    But you put that estimated word in there and it suddenly makes everybody a little more cautious and a little more open to discussion we’re estimating how are we estimating it how wide did the aab bars on this you you suddenly you kind of take a little bit of edge of edge off

    The false confidence you prioritize by estimated business value which if you’re going to do the right thing means you need to go back afterwards and see well how did our estimates work out people often talk about estimates of time as the thing they want to calibrate but

    Honestly it’s all it’s it’s it’s all uh open to this so we go back to this and there still a still a question we have an answer I mean we know that te is measured in time but what is stuff measured in I mean if we’re not measuring it in terms

    Of business value because we don’t know this at this point I mean is is that line of code is that feature how can we say how much value that is cuz by the time you start drawing the arrow bars on it your diagram gets very exciting very interesting and almost entirely

    Useless so we what we do as human beings is we find the thing that we can measure and people often end like okay well what we’re going to do is we’re going to measure this in terms of um I don’t know story points or something else and then and then eventually what you

    Realize is that you’re measuring time Against Time this used to be a little more obvious a number of years ago sort of 2006 to 2008 the scrum Alliance was uh keen on talking about you should estimate your backlog in hours honestly I can’t you know I can barely understand

    What I’m doing in a day in terms of the hours the idea of and that’s when I’m there the idea of being able to do this for a thing that I have not yet built with a group of people I’m pretty sure that doesn’t undermine my confidence

    That we collectively can do it but the conversions back to how many hours this is going to take that’s kind of dangerous so we end up with a measure of how much time are you spending against time and I remember pointing this one out to somebody think oh I had not

    Realized that I said yeah you’re effectively measuring the way you’ve done your calibration you’re measuring hours against day and I said there this does this does mean something it’s called utilization but that’s probably not you what you are measuring you if you are trying to say how much stuff are we getting

    Developed then that’s a very different thing um you may also be calibrating quality of estimation that is Al time against time but neither of these is how much stuff have we developed so this tells us that we do need to slow down and there’s um so friend of mine we

    Do a number of workshops together and he’s written some really decent uh it’s a really decent open source um tool cyber dojo for doing test driven development absolutely brilliant environment use use it a lot uh John Jagger he he mentioned uh this one to me

    A few years ago um the UDA Loop comes from John Boyd US Air Force pilot the funny thing about software and business is that eventually all military metaphors find their way into um uh uh into business and into software the 1990s everybody was obsessed obsessed

    With Suns The Art of War um and so you can kind of go through these business Cycles what military fetish we following this decade um uh but there was some really interesting stuff about about John Boyd and one of them was that he was dealing with the figh he was

    Dealing with fightercraft and this notion of high velocity engagement uh and it’s not like Top Gun um certainly not with a hair and the 80s soundtrack uh there is this idea that it’s it’s kind of like fly by the city of pants type stuff and it’s all

    Instinct and all this kind of stuff it’s not like that at all there’s an awful lot more intelligence that goes into this stuff and one of the standard strategies that he established was this idea of just look around where where you’re you know you need to look get the information where

    Are you where do you want to be here here okay so this immediately tells us that some you know even we’re going to stretch the metaphor there’s a sense of direction here okay and then you have to make a decision you have to decide on your plan of action and then finally you

    Do the bit that you see in the films but there’s this notion that there is a whole process that is effectively invisible from the outside that is about reflection now I’m going to flip this through 180° um uh not gratuitously but because it turns out when John and I

    Were putting together a workshop a few years ago John likes the UDA loop I like pdsa it was when we were which one should we put in and it was only when I was looking at them I said wait a minute these are the same oh that’s interesting one of the

    The word act means something slightly different in they’re in different positions but the logic of each one is identical they just start from a different point it’s just that that’s kind of interesting there’s this simple idea um plan and then do and then the hard bit because you see

    A lot of people get stuck with this so first of all some my kids asked me uh I think my my young one Dad how did you develop on computers you know back in the 1980s um and uh you know trying to work out how you did this without the internet

    Um and why would you develop software if you didn’t have an internet to connect to there was a motivation question there as well as a capability question um and I said well you know honestly particularly home Computing it was just seeing at home you just do there’s an

    Awful lot of doing and that turns out that doesn’t scale very far but wow it’s great fun um and then eventually somebody teaches you the value of planning now here when I use the word planning I’m not just talking about I’m not talking Gant charts or anything like

    That I’m just talking about having a set of ideas about how things are arranged now the word plan has two meanings one of them is the idea of a building plan a spatial Arrangement the other is a temporal plan things happening in time fortunately thanks to um Einstein’s

    Theory of general relativity these were both unified under SpaceTime so that’s what I mean when I say plan it’s a bit of both how am I going to go about doing this what kinds of things do I want here not necessarily a grand plan but there’s

    The idea of here’s what I’m going to do now the problem here is that then people fall into the next trap which is the grand plan trap which is hey we’re going to do all of that on the left hand side plan plan plan plan plan plan

    Do and do do is pretty close to what you [Laughter] get and then eventually somebody says you know what maybe there’s something a little more iterative to this maybe plan do plan do plan do and that kind of spreads the butter more evenly this is more raspberry jam than strawber Jam that

    Sense but those are the visible things I can see the outcome of a plan you either either it’s kind of like here’s what’s going to happen in time I can see you know I can see how we we might have chosen to do things in this Sprint then this Sprint then this

    Sprint and I can see the arrangement of code I can see the doing I can see the tests I can see the check-ins these are all highly visible and again as as humans we are easily distracted by the things we can see the things that we

    Can’t see those are hard so therefore it turns out the bottom half of this is the bit that people struggle with this is actually where the agility comes from it’s not the top half it’s the bottom half because the agility is about the movement it is about the moving easily

    But there must be movement not just always in a straight line and so there is the third stage study now sometimes this is called check plan do check act pdca I prefer the original formulation uh that comes from shuart and Dem used to use this one

    As well study for a very simple reason it sounds slower just think about the two words check and study which which study okay we’re going to have to take some time here my older boy did some exams last year my wife and I did not recommend that he check his

    Work we recommended he study yeah checking is the thing you do at the end of the exam oh quick check it’s quick okay there you go has reference as well um so quick check it’s not it’s cursory it doesn’t suggest depth it might be necessary it

    Might be helpful but I want to slow down it turns out that this is the bit that people don’t want to hear the slowing down bit but we we want to go faster yeah you might want to slow down a bit look at what’s happened look at what you

    Expected and then make a decision as to what you’re going to try next it may not work out and this I think is really important because what we’re doing here is eval formulating and evaluating hypothesis your plan is not a strong commitment it’s U what are we going to

    Do next I don’t know I believe this should work okay show me that’s the do I formulated a hypothesis now I’m going to run an experiment although clearly using this language although it’s accurate is toxic in a business environment so how’s your team doing oh we’re running an experiment what’s

    We’re expecting deliverable software at the end yeah it’s a big experiment man it’s like oh but it is an experiment but if you think of it in those terms here’s our hypothesis We Believe given our current knowledge our current understanding of the requirements our current skills our current tooling with

    This current team that we can deliver this amount of functionality these particular features in this period of time that then comes the show me yeah that’s great Theory let’s actually put this into practice and then you have to study the results of the experiment and then there’s suggestions for further

    Work okay the life cycle works really well it really works very nicely so you may want to change the words but um unless you happen to work in an environment where experiment is perfectly acceptable and a lot of people go well yeah yeah but the plan Vision we were

    Given when we were told a plan it was all part of our software engineering education I have some very bad news for you software engineering was not to blame the waterfall cycle was not to blame so here is here is the uh here’s the proceedings um of the 1968 NATO sponsored software

    Engineering conference in garish Germany and this is often cited as being uh it’s most famously cited for uh and credited with the term um software crisis which honestly is discussed in about two pages of the proceeding um I’ve read the whole proceedings it’s about there’s a page or

    Two there soft and there there’s a couple of other things that people credit it with they also credit it with the invention of the term software engineering that’s not true it was a woman called Margaret Hamilton who basically saved Apollo um it was her nice Insight you know there’s bits where

    People say that’ll never happen we don’t need to write code for that she asked the question what happens if this happens and that’ll never happen yeah it might do so she wrote code for This brilliant piece of fault tolerance one of the first avionic systems um uh to to exhibit this kind of

    Behavior um if you know anything about the Apollo Landings The 122 ERA this is this if you watch first man this features um so she came up with the term software engineering and it was already in current use by the time um this conference came around but it’s worth

    Actually going back and instead of reading what other people think they said actually reading the document this is one of the great things about the internet you can find pretty much anything so I did sit down and read it and I was quite amazed at what people

    Were saying I’m not they did not necessarily speak with with one voice there were a lot of uh different voices at this conference but they said crazy wild out there things like the design process is an inative one whoa that’ll never catch on and it wasn’t just Andy

    Kinow that was saying it this I actually had to delete for one of my talks 1968 I actually had to delete a whole load of the quotes because I suddenly realized it’s going to get monotonous if I quote everybody who basically said this but this was a recognition back in

    The 60s this was known this whole idea of oh we’re going to plan everything up front that was dism missed in the paper in the proceedings so there is a point here about what we’re doing um so I’m going to quote one of my favorite authors Sam mentioned that I

    Write fiction so I also read it and one of my favorite authors is Neil Gaiman you have to finish things that’s what you learn from you learn by finishing things there’s this whole idea that the one of the reasons that iterative structures work is because oh

    Let’s try this how’s this going to work out well I worked out better than expected oh that worked out terribly I’m glad we didn’t overcommit there’s this idea you learn things it’s a lot easier to see something once it’s been shipped out or parceled off in some way or you’ve done

    A demo or you’ve got a customer using it you can point to it and go H I can see where we can improve that but if it it’s not there you can’t point to it yeah you don’t have that closure that is necessary to say oh okay now I’ve

    Learned something yeah so there’s a learning cycle here so there’s an empirical and a learning cycle and part of that is going to involve refactoring I need to take a new I need to take a new picture CU Martin’s come out with a second addition um problem is we haven’t actually had

    Much sunlight in Britain um so I’m still stuck with the old picture that was taken couple of Summers back so I’m waiting for the sunshine uh my wife suggested there might have been some the other day but I think that was just vicious rumor um but what we’re talking

    About here is looking after this stuff there is a cycle here that is producing what well let’s talk about code for a moment when we talk about code what people are talking about in many cases is the code that they like the code that’s in their language of

    Choice okay and so if you go a Java programmer they’re going to you’re going to say okay so let’s talk about the code that will be the Java code all that XML that actually holds the system together there’s a ter that there’s a reason that a few years ago when sun

    Were pushing 100% Java that that stopped really fast because there is no such thing as a 100% Java system Beyond hello world because it turns out that everything’s held together with XML yeah CU apparently it’s human readable for some very strange class of humans um and then you kind of go through and

    You go oh well there’s Jason there’s XML then we’ve got a build scripts and then there’s the groovy stuff that does the builds and then oh it’s a lot of stuff it turns out oh and then there’s the test but we don’t worry about those it turns out the tests

    Your scripts you configuration these are all code yeah we just have a kind of like oh I am a Java program as opposed to so um I am lost in XML land there’s this idea like this is all code I’m afraid to say but there’s another way of looking at this

    Stuff a few years ago I started playing with the words a little bit realized actually this is a really good representation code is cod defined knowledge here is what we as a team collectively believe here’s our current way of bringing these Technologies against these requirements

    Together this is our it’s a it’s a it’s a knowledge exercise that’s what we’re doing it’s a collective it’s Collective applied epistemology yeah I think I got that one right that sounds good try just drop that one into a meeting sometime yeah so what are we doing here Collective applied epistemology wow

    That’s pretty cool nobody will ask you what it means then say therefore our software development process is by definition a knowledge acquisition process that is what you’re doing you are learning okay so if you’re talking to somebody who’s kind of like C Level then use knowledge acquisition because

    It sounds formal and fancy but the rest of us just call it learning that is what you’re doing software development is an act of continuous learning okay what you’re doing is like oh okay now I understand that detail I understand the significance of it oh now I understand

    Something about that framework it’s both outward and inward looking and if you knew everything at the beginning then there’s not going to be much development that’s the whole point you are by definition working with incomplete knowledge and that brings us to another conclusion that software development is mostly about working with incomplete

    Knowledge now that’s not actually a problem it turns out that human beings do this all the time you did it this morning you’re doing it now you don’t necessarily know what’s going to happen next okay and that’s okay the where does the problem come the problem comes from

    Illusion the problem comes when we believe that we have complete knowledge it is the illusion of complete knowledge now now I’m completely bamboo boozel us it’s just like you know once you think you know everything oh now you have problems yeah but if you have that kind

    Of humility oh I don’t know everything but I know how to find out that’s the trick it’s the second bit so you’re constantly learning and you’re formulating it and trying to put it in a codified form quite literally so this set of assets is is is valuable from

    That point of view it’s kind of like an executable Wikipedia now here’s the here’s the thing you’re trying to do you’re trying to communicate and therefore it’s an act of communication the very Act of writing code the very Act of writing a test the very Act of describing the test having a

    Stakeholder and a coder sitting next next to each other describing that is an act of communication and what you’re literally trying to do is codified an understanding and that may itself be iterative so this idea of thinking of tests rather than as confirmation but as Act of communication that suddenly

    Changes the shape of everything coding guidelines they are about communication these are suddenly oh okay this makes a lot more sense now this also has some other interesting consequences it basically means that unless you’re developing on your own software development is by definition all about social negotiation that’s what coding

    Guidelines are they’re not about what is right there are some things that are worse than others we can definitely say but most of the time they’re not about what is right and what is wrong it’s a social negotiation there about the compromise it’s about the understanding

    And sometimes you have to poke it to find out that it’s there now this has a really interesting consequence for the codebase it means that the codebase its structure represents a model of participation now this is interesting because when we normally talk about software architecture we normally think

    In very structural terms and the term architecture does suggest that but the thing that people often forget about the architecture metaphor when applied to buildings is is not just about the structure a good architect is trying to work out how people are going to use the space that’s what defines the good it’s

    Not just something that’s good to look at there’s actually a term for that it’s called magazine architecture yeah it’s used in Stuart Brand’s book how buildings learn magazine architecture looks great in a photograph yeah and you’ve seen it in code as well and that normally comes up in demos when

    Somebody’s trying to push a product at you that’s normally magazine architecture it’s just oh this is fantastic and and Stuart bran talks about his book he says this book’s dedicated to an architect I once met who definitely epitomized this idea of magazine architecture he said do you

    Ever go back to the buildings that you designed after after the uh after Handover and he said oh no it’s too depressing there are people in there you know um and there’s a point here that a good architecture is not simply a structure it is a structure for how

    People work how people communicate how people go through their day how they live how they work the same is true of cod your architecture is a model of participation you’re basically saying with this tooling and these arrangements and these conventions this is how we as a team do things you there a

    Representation there so this leads us to something kind of interesting instead of focusing on speed what we’re actually doing is we’re focusing we started uh with a very simple Dimension but now what we’re going to do is we’re going to move out we’ve actually seen that there’s a reflection of who is building

    And how um so I made this observation um in an interview the biggest advantage of autonomously working teams is risk reduction through increased group intelligence so that’s what you’re trying to do is group intelligence you’re trying to enhance group intelligence now this is quite important because there are some very naive ideas

    About how intelligent a group of people can be um so there’s little correlation between a group’s collective intelligence and the IQs of its individual members this is one of the most important things okay Britain we call this Parliament you can have a group of smart people actually no we don’t call it Parliament

    Honestly some of them really thick as anything um based on some of the stuff they’re saying uh so yes just I mean we have a minister of ignorance um and misinformation guy called Chris gring who managed to Outsource a ferry contract to a Ferry company that didn’t exist it’s cost the

    Government £33 million to figure that one out and if you’re wondering how much £33 million is worth just wait a few weeks it’ll be worth a lot less it might reach parents of the Aussie dollar so so you know but it turns out this guy Chris graying the biggest the biggest

    News his birthday is the 1st of April why did we not know this before why do we not know this before we would have UND that makes a whole load of sense more sense of the last 10 years of British politics um but here’s the good news

    If a group includes more women it’s a collective intelligence Rises now I’m looking out here and I’m saying you could be smarter okay um I actually after uh it was quite interesting after reading this um uh because this was not the result that they set out uh to

    Explore um but it was quite interesting after reading this when I ran workshops I when I run workshops sometimes I try and make sure that I don’t give a team an unfair Advantage um because I’ve noticed I had this last week because we did a random

    Selection I had this last week I had a team of all women and yeah they kind of clean the floor with the rest so you know some of this is annic data but I’ve been doing this for since about 2011 every now it’s just like yeah yeah it changes the communication Dynamic and

    This is actually a broader observation um people from diverse backgrounds might actually alter the behavior of a group’s social majority in ways that lead to improved and more accurate group thinking now this is really interesting because now we’re suddenly going right back to this idea of

    What we’re trying to do is an activity of knowledge it is this it and and so therefore if you’re all thinking the same you’re not really thinking and it’s and that we have and this I noticed with a u a friend of mine Benny years ago he

    Ran a startup and hired the smartest people turns out that’s not what he wanted he needed to have the people that worked together best and working together sometimes mean there a little bit of give and take you don’t want toxic we’re not talking about get lots of toxic people in because they’ll think

    Differently no that’s just you know scorched Earth policy you know we don’t no sociopaths here thank you very much we’re good um but what you end up doing in many cases if you’re not careful is you recruit in your own image and I noticed this in a company in London

    Years ago I was doing um uh kind of I guess craftsmanship program for them uh and they they’re a financial company but the group that I dealt with were all X Games industry now I found that absolutely fascinating until I realized that the person who set up this group actually I

    Can say man because they were all male because I don’t know if you’ve had an experience with the games industry but yeah particularly console games um so and then recruited other programmers he had confidence in well which domain andly I’ve worked in the financial sector and no disrespect to anybody who

    Works in the financial sector but you know that’s a keyboard This is a compiler because sometimes there are some there’s a huge range there are some brilliant people but there’s some people at the other end of the bell curve uh and I’m not talking about new people

    This is not a this is not a measure this is not a measure of you are new this is this is something else but that’s why this guy that’s why this guy he said okay who are the people I know who’ve really got the the coding chops Gamers

    They these guys they they know everything and it turns out all you do is you feed them coffee and pizza and they go for 24/7 it’s fantastic um um but the problem is now he had a group think the opposite of group intelligence is group think where you are all kind of

    It’s like uh it’s it’s like soldiers marching across a bridge and yeah if you’re all Marching In step it turns out the bridge collapses okay sets up the wrong harmonics you need to break step you need to do that with people as well so this is a very difficult thing is to

    Recruit people that are not like you that’s very difficult yeah we understand why humans have this kind of draw but is really important and therefore it changes the communication style given that what we’re trying to do is communicate and capture that communication and to question things is

    This idea of being able to question things so this is the key thing and this idea of the wisdom of the crowds go back to 2003 James s’s book was really rather good on this one because he said you can’t just get a bunch of people together there’s basically four

    Conditions if you would like to have not just a bunch of people but have a wise bunch of people then you need diversity of opinion Independence decentralization and aggregation in other words you can’t all think the same thing Independence is independence from influence from one another this this one’s actually quite

    Difficult to achieve in many cases but you know it’s aspirational nothing else the idea that you are not just going to be easily influenced one of the things we’ve leared um in politics is that families and friends have a very great deal of influence so you’re not actually necessarily thinking independently and

    Decentralization is drawing from different sources you draw your knowledge and your experience from different backgrounds so you have you clearly need something in common but you need to have something that is different and this is interesting when we start talking about um disciplines that people are recruited from um so you know it’s

    Uh Computer Science Education is one thing but it’s always kind of interesting when you get you know the people I’ve met who have left a very strong impression on me um uh have come from uh in terms of software development come politics and history that’s an interesting background guess what you

    Start looking you start looking at software and organizations from a very different point of view okay it’s it’s fundamentally um a different perspective you ask different questions Linguistics a linguist what are they going to do well kind of language kind of communication kind of what are you actually saying this whole approach

    Their approach to programming languages is also fascinatingly different they engage in it in a completely different way and so this idea of otherwise you do end up with this kind of monoculture and everybody’s is Marching In Step you and clearly you need some of that knowledge but you you need that decentralization

    As well now all this is great but you kind of need to put it back together again you know otherwise you’re otherwise you’re kind of a bit like me was just like yeah takeing the washing machine apart Kev you’re going to put it back together again I have no idea how

    To do that okay you need to put it together again because otherwise you don’t get that knowledge you end up up with people wandering off in independent directions and agregation where does agregation occur it happens by the water cooler it happens in the code base your code is a codification it happens in

    Conversation it happens in documentation it happens in all of these things so when we talk about speed there’s something else that normally goes in there as well because people tend to put this and they there’s another thing that people like to throw around size and when the word size comes in

    Particularly in the agile space people are talking about scale we got to scale this team we got to scale the development one of the most interesting questions and as I like language I’m always looking at the words that are not said what are the words that are not

    Said because if you come at this from a different point of view it turns out that you can put the word up afterwards but you can also put the word down We’ve Ended up with the default of assuming it’s always up now my older boy um uh for a couple

    Of years he was doing CrossFit really interesting in CrossFit there is a concept called scaling um and scaling is where you scale down an activity an exercise because perhaps you’re NE to perhaps you’ve sustained an injury and you can’t do the full exercise you do you want to

    Do the repetition so you reduce it in some way okay you simplify you you reach less you you uh you you uh uh use less weight whatever it is you do you do less of it but so that you can still go through all the motions and still make

    Progress but the most important thing there is that they don’t say scale down they just say scale so there’s this point of what are the things that are not said and that domain of defaults is in exactly the opposite direction and that is the question you need to ask

    Okay so it turns out that scale matters um and uh you know there is an appropriate size for various tasks um you know if you’re going fishing I would suggest this one is probably a better deal than that one over there um if you’re trying to you know pollute the

    Planet probably the one over there is a really good one um you know so um but an observation from FR mine Alan Kelly he said software development does not have economies in scale this is quite important because where we’re going with this one is we’re going to challenge a

    Couple of other things because economies of scale are kind of built into the manufacturer of physical Goods reduction of marginal cost it’s it’s great it’s going to if I have to build one of these things with this staff it turns out that building 10 of them will not cost 10 times that you

    Know if I if I’ve done things right I’ve bought in bulk I’ve got the same I’ve done all the learning up front as to how to do this now it’s a simple case of manufacturing and reducing those cost that’s great and that does work with physical things and that’s our Instinct because

    We are physical creatures we can an we’re anchored in the physical world so it’s natural that we derive our experiences and our intuitions from the physical world problem is this is a knowledge-based activity and it turns out that the more people you start adding you don’t necessarily automatically get smarter and

    Faster yeah and be very careful I’m not saying it adding more people always slows down but it is worth understanding how this grows so we can do a little first principle stuff here tal T1 oh back to the equations yeah we’ll start with something simple this is the amount of time that

    It’s going to take one person to do all the development work and when I say all the development work I’m talking about the coding I’m talking about the requirements I’m talking about absolutely everything software development in his broadest sense this person is cross skilled so that’s our Baseline somebody comes along and says

    Ha I have read Adam Smith division of labor if I get two people on this it’ll take half the time get three people take a third of the time this is brilliant it’s fantastic but we have not talked about the nature of the work because it turns

    Out things start getting a little bit Messier here um how much can you actually do in parallel this is now starting to tell you that you might have to wait in certain cases this is the shape of your process if if your process introduces lots of weight States then you will not

    Be able to have everybody working simultaneously that doesn’t mean actually that they’re going to sit there waiting for it it means that in order to look busy either they or the organization will give them other work which has to be timed perfectly to fit these gaps of availability and actually

    It won’t be timed perfectly so there’s some fascinating KnockOn effects turns out this is one of those classic things the lean people the cband people had this absolutely right okay reduce the work in process and but you are now going to reduce the amount of work being done now we

    Actually have a name for this it’s called andar law we normally apply it to processors rather than people and this at this point it allows me to issue a disclaimer this is a thought exercise people are not interchangeable so when I use n I’m not you know we need to

    Understand this is a thought experiment and that we don’t we’re not going to get smooth curves out of this it’s going to be messy because we’re human beings okay but we’re getting a rough idea as a thought experiment what’s going to happen but we’re not done yet yeah three levels of bracketing

    Fantastic I had to dig up a math book to remember what remember what the ordering was wow what’s going on here well it turns out the shape of your architecture oh remember your model of negotiate your your your model of social participation how do you talk to each other who needs

    To talk to one another in the worst possible case everybody needs to talk to everybody else or communicate that could be verbal that could be dealing with their code it means potentially everybody is stepping on everybody else’s toes and that there is a cost for this there is an overhead now what is

    Interesting about this is and you’re sitting there going like oh man it’s too late in the day for me to deal with equations let me draw you a graph right okay there we go what this tells us is if you have zero people it takes infinite time okay we happy with that

    Yeah but no bugs winner and then you start adding people and for the appropriate task you start getting a speed up yeah we’re getting about the right number of people for this and yes this is good we’re we’re at an optimal level in terms of the code

    The people and so on that’s great and then you start adding people and it starts slowing down because now what you’re dealing is you’re dealing with the effect of having lots of people you’re not talking about the code itself you’re not talking about the nature of the software what is absolutely

    Fascinating is that this tells you that Beyond a particular point the number of people involved in development has nothing to do with the amount of functionality that you trying to implement and there’s this kind of idea of oh it’s a bigger system meaning big functionality this becomes a self-fulfilling prophecy because what

    You end up with is well we’re going to have a big system well how many how big well we’re going to put 50 people on it guess what you’re going to get a 50 person system it doesn’t matter if it’s hello world you’re going to get a 50 person

    Hello world and M the architecture of that is going to be something else because that’s what will happen is will create that nature of work and depending on the culture there sometimes you I’ve seen this where you defend against other people’s code there a sort of distrust well I came from that team

    Because our team is so large we have to have sub teams and sub teams and sub team I can’t we don’t trust Cod from them just check just check those arguments again I know they said they weren’t null but you never know and it’s just like you all of this stuff and so

    What you end up with is it creates itself and it so there is a cost to this I might suggest that many many consultancies operate on the right hand side become self-fulfilling so you end up with kind of stuff like this this is from a couple years back Facebook IOS

    App has over 18,000 Objective C classes I did this as an estimation exercise um a couple of years back I got somebody I said okay you got the iOS Facebook app and I said I use Android I’m probably sure it’s probably the same I can’t imagine it’s going to be

    Different how big do you reckon the code base is and one person did actually say 18,000 but they said lines of code and I can tell you these are not one liners now here’s the interesting thing you’re think what is it what is it doing other than stealing my soul and you know

    What is it doing and sometimes oh it’s all the analytics no those happen at the back end this is what’s sitting on the phone it’s just wow that’s pretty serious but the thing to look at is turn it around could you create a small code base with 400 people I think it’d be

    Almost impossible actually there is away what you do is you say right well we’ve got 429 there so 400 of you have a holiday you 29 get to work and you’re probably going to end up with something that’s about the right size yeah but there is this possibility

    To turn it around it is almost impossible to create a small system with this and the communication structures that are involved in that so the environmental economist uh ER schoe marker made this lovely observation for every activity there’s a certain appropriate scale and we need to find

    That this is important because and I going to go back to the fact it’s not a perfect graph it’s not perfectly smooth because sometimes people say oh well it’s easy you just add a person and it slows down it’s just like it’s not that

    Easy it’s all a bit kind of trying to go it’s trying to it’s trying to walk across Terrain in dark fog you don’t not entirely sure if you go you feel we’re going up but it might just be a local up you don’t know okay so there’s a little

    Bit more to it than that but normally I would suggest starting on the left left hand side and scaling up then you start noticing the differences you might find and I actually did work for a project manager who did scale down it made him desperately unpopular because it was

    Successful okay and he he hared the team size and it worked he was you know absolutely classic he was brilliant to work for so they got rid of him um there you have social well cuz he he wasn’t playing like the other kids were playing he was doing things like why is

    This asking questions and stuff like that and everybody else no no no we’re all middle managers this is the sport we play question um you started out with an equation called yes and then you modified it what’s the larger equation uh that’s connections that’s the what’s the whole

    Theme called oh I I have no idea what um this is some kind of scaling equation I don’t know I just sat down and work this one out from first principles cool cool can we call it can we call it walk then yeah now there is now there I was just

    Thinking if it clashes with anything else because there’s a Henny hypothesis that was uh that somebody coined but yeah the reason I bring that up is I’m interested in in the the variance of the team size over time like you start with a small team and you give this the team

    Itself the autonomous ability to scale that’s going to work than anticipating oh yeah begin yeah this is and that this is important there are other terms and I’ve kept it simple because what I’m going to run out of slide and two we we start speculating a lot more we’re just

    Getting a rough sense but that’s exactly right what you want to do as I said that’s worst case what you want is teams of autonomy and and that idea um starts working differently but we start diverging from this equation to something else so what I’ve done is I’ve

    Showed you what happens if we don’t try yeah if we just do default behavior and hence that comment about worst case yeah in a good case you do actually end up with much more localization yeah and so there’ll be two factors there not just one yeah

    Thanks it’s left as an exercise for the reader there you go that’s your homework um right so let’s go back to this question of scale and understanding how things might work um going back to the 60s 1964 notes on the synthesis notes on the synthesis of form

    You know it’s one of those things where you get the sense that that he never chrisop Alexander never actually used this word phrase out loud because it’s quite difficult to say um but it’s often called just referred to as notes he’s the guy who came up with patterns design patterns so and I

    Had this um this is my copy of the book I read it in the 1990s and then referred to it again recently and was dis was surprised to discover how influential it had been in the 60s and he he’s talking about creation of structure we may therefore picture the process of form

    Making as the action of a series of subsystems this is subsystems of code or subsystems of people or subsystems of anything all interl yet sufficiently free of one another to adjust independently in a feasible amount of time it works because the cycles of Correction and Rec correction which occur during adaptation are restricted

    To one subsystem at a time what he’s talking about here is you don’t want to be too close to everybody but you don’t want to be too far from everybody in other words um you don’t want everybody acting in unism but you don’t also don’t want people to utterly fragmented he’s

    Looking at this happy medium turns out people were very keen on drawing you know so he drew this kind of diagram to represent it here is our team or here is our code this is a subsystem and it has loose coupling so it can adjust to something else whatever that other else

    Is but it turns out people were really into drawing circle diagrams in the 60s um this is from 1968 um similar ideas um but this one comes from um famous uh paper from Melvin Conway how do committees invent from where we get the term conways law and his observation

    Back in 1968 basic thesis is that organizations which Design Systems are constrained to produce designs which are copies of the communication structures of these organizations now we’ve talked about communication and there’s this idea of once we understand the knowledge flow then this kind of makes a lot of sense

    Why is why would people do something that was not related to how they related to other people it’s very difficult to work against that it’s not that it’s impossible it’s just that exerts a major Force he also made the observation we have found a Criterion for the structuring of design organizations a

    Design effort should be organized according to the need for communication now this is important because sometimes people think that this is just a consequential thing and that he didn’t see past that and people have tried to create new things called the reverse Conway maneuver and inverse Conway and

    Stuff like that it’s just like no it’s called Conway it was in the original paper um it actually his observation is given all of this so we can we get to change this um and this is something we explored in uh posa 5 we looked at a

    Bunch of things on Pats um and we talked about this we in referring to this as a law the appeal is to a force that will shape a system so the force is always there you don’t get a choice in whether or not it’s there it’s a physical law

    It’s not a law that you’re following it’s not like the laws of the land we use the word laws very Loosely um and I intentionally annoy my wife by saying that rugby has rules um whereas it has laws and my wife is into rugby and I am not so I often

    Just come in and make inappropriate comments it’s six nations at the moment generally make inappropriate comments uh about that’s a hand ball or something like that looking at the players they’ got too many players on the field yeah you need 11 they got 15 what are these four spare guys doing wandering around

    Yeah and they keep touching the ball Ball’s the wrong shape as well so I I do this to wind up you know do they not have rules in this game no kevn they have lot they have laws well clearly not very law abiding are they

    Um so it’s none of those law systems but there’s an interesting thing here it’s not a law that can be broken the force is always there only one that can be counterbalanced by other forces now that actually brings to mind something else which is kind of interesting there’s a four force diagram

    That’s often used when describing aircraft how is it that aircraft defy the laws of gravity they don’t you so I’ve had I’ve had this observation with a couple of people say oh our methodology we we don’t believe in Conway’s law that’s great I don’t believe in Father Christmas but that

    Doesn’t actually make much difference this is actually a real thing it has been measured um but also it doesn’t count it doesn’t eliminate it what you do you don’t get to eliminate gravity when you fly on an airplane what you do is you bring all the other things into play to

    Allow you to balance it to get lift so and obviously don’t take the next diagram too literally this is a physical diagram I’m dealing with people and code here but it’s a kind of a useful rough idea you could say well hang on do we have things that we are trying to

    Balance well yeah you know our design effort should take us forward but technical debt can hold us back that’s our drag that’s the friction from the air that’s the friction from our in our attempt to progress Conway is a defining Force but it turns out that our practice

    Can move against that and balance it but it takes effort the takes work but that that’s fine we it’s just that we if we realize this we’re not eliminating stuff we’re bringing things into balance which tells you it’s a little more delicate it’s that kind of fine-tuning fine tune

    How do you fine tune well might I suggest the pdsa approach is quite a good way because there’s adjustment constant adjustment it’s like you get in a car even if you’re given a straight road you don’t just take your hands off the wheel I hope yeah I’ve set the car

    On the roughly the right yep let’s go no you keep your hands on okay what we’re talking about here interestingly enough takes us back to equations and finally starts giving us an answer cuz we’re dealing with forces so what’s m m is the mass of stuff it turns out that you might be

    Applying a lot of force but not getting much acceleration you got lots and lots of people we are applying immense amount of effort and yet we seem to be making very little progress M is for Mass M is for monolith M is for the stuff that stands

    Your way this is it turns out I said the comment earlier on about the agility of code I was being fairly serious why the size of the code base matters it’s not CU I care about exact lines of code but if the intellectual task that you’re trying to do is orders of magnitude

    Larger than it should be that’s a cognitive load that every individual has to bear that’s what they’re going through every time they’re dealing with go that doesn’t mean they can’t do it it just means they’re going to slow down that’s going to affect it massively so these things are big they’re old um

    What you’re seeing here is uh one of the uh um the Next Generation they’re trying to you know in the hope that brexit will bring New Hope to British industry this is one of the computers they’re rolling off uh off the line it it uh it uh does something to do with date

    Calculations uh we’re not quite sure it’s a legacy system this is the best we can do but those those but what we’re talking about here is monolithos one stone monolith and obviously this is where we start talking about good design we want our Stone we want stes to be

    Arranged like this elegant well thought out this is when my youngest son about five he arranged this and managed to get some seaweed it’s got a really nice sort of Japanese aesthetic going here but I wouldn’t recommend eating it I just like well this is really good and normally at

    This point somebody says Ah he’s talking about microservices honestly if it makes you feel good yes I’m talking about microservices but I could have been talking about components I could be talking about objects I could be talking about well partition function hierarchies what I’m talking about is breaking things up

    Decomposition and we’re not decomposing just arbitrarily it is so that we can understand it’s so that we can can compose so that we can communicate but the sad truth of many microservices and many architectures is they end up looking like that there’s our elegant microservice architecture

    What do you think of it now it turns out that that’s not enough you cannot simply say that’s it because you are dealing with the system of people you are dealing with all those other forces simply saying here’s our default technical architecture may not be sufficient it turns out you have to

    Bring everything else into play so the old observation from Alan Peis in the long every program becomes roko then Rubble doesn’t change you to create order you have to put work in and all of this is this careful deliberation um that gets us away and you’ll notice what we’ve done is we’ve

    Moved away from an obsession with speed but I want to bring all of this back to why does this make why does this make a difference when people start talking about all these practices oh but to make that agile work the way you’re describing and to do the

    Coding practice practices and to to to make sure that we’ve got clean code to make sure that’s going to take a lot of time it’s going to take effort it’s going to slow us down so I will end with this observation it’s an observation which is interesting because why do cars have

    Braks has a simple and obvious answer that is also correct cars have brakes so you can slow down but there is another answer that is less obvious but turns out also to be correct cars have brakes so you can go faster think of it somebody says hey this car

    The brakes don’t work do you want to go for a ride there’s a really simple answer to that one the word no Springs to mind the word I’m the words I’m fine I’ll walk those you know there’s lots of options here but that’s what it takes

    There’s that idea and in fact this is one of those I’ve been talking about thought experiments let talk about real experiments there’s a guy I I don’t know him anymore I don’t even know if he’s still alive you’ll understand why I have these doubts nearly 30 30 years ago um

    And guy called Allen he drove from London to Brighton which is about 100K in a car that did not have a working foot break it took him hours even with bad traffic which is normally present it should only take you a couple of hours tooking about four or

    Five hours because he was driving he was using uh back roads light touches of the handbrake careful changing to slow it regulate his speed and it’s just like and honestly I’ve been in a car with Allan twice on other occasions um and it that was with breaks and it was quite

    Scary so this is why I don’t know if he’s still alive but he did this experiment years in advance there is a point here many of these things many of the things that people say oh but to do that will slow us yeah that’s fine honestly speed is

    Not the issue if you want to be able to turn a corner it turns out that being able to break is helpful if you want to respond situation at hand as it develops as you discover new things as the world changes around you or within you you

    Have new knowledge you have new team members the point is you want to be able to respond it’s that ability to move easily and that also is reflected in the codebase if you have a whole load of code and you say we’re going that way and the code goes no we’re actually

    Going that way if the code base has the veto you lose it’s as simple as that I showed a picture of those two those ships earlier on uh I think learned a few years ago an oil tanker has a turning circle of around 5 km okay that’s not a skateboard

    Okay oh we’re going in the WR Direction I left my keys at home oh I left the cooker on right okay to you need 5K of space in which to turn and there’s a lot of systems that are like that so that it turns out that

    Matters right okay I’m not I’m going to say I’m done no I’ve run out of slides but I could talk about this for hours thank you very much thanks for that Kevin it’s really great um do we have any questions uh I’ll just get everyone to shout them out if they

    Uh questions thoughts Reflections yes um what are your thoughts well two questions one do you hate the word Sprint scene is you have something of a focus on Linguistics and Sprint okay let’s let’s handle that yeah uh do I hate the word Sprint because of the

    Focus on Linguistics I do a little bit it’s historically anchored and it’s worth it’s I understand it’s historical relevance because at the time I’m scrum is very old it’s a lot older than people give it credit for it goes back to the early 90s basically and at that point if you use

    The term iteration then iteration typically referred to a period of months plural so by default when somebody says we’re doing itative development you might be working in quarters of the year yeah um whereas at that point scrum was it wasn’t at the two we mark it was

    Saying basically 30 calendar days and so they wanted naturally enough to use a verbal distinction and there was another implication with Sprint is that it’s focused it’s a straight line it’s focused without interruption that one seems to got lost somewhere that was the whole idea if you read all the original

    Scrum it’s without interruption it’s just like right I’ve started the race and your choice is and you you can see this in 100 meter uh uh uh competitions uh your choice is either you run to completion or it’s canceled you know there’s a false start somewhere you’re

    Supposed to be able to cancel Sprints that one got lost in history as well um so we have that but it is worth understanding yeah so these days when people talk about Sprints and you do people don’t know the history often people and I I know of one case where a

    Team said well we’ stopped doing iterations we’re now doing sprints why because they’re faster it’s a little but like I pretty you back in the 1980s there was a fashion for putting go faster stripes on the side of your car had no effect on the aerodynamics of the vehicle but you

    Know it made it look like it was going fast so there I I do know of a case where that has misled us at least once and so therefore yeah we have a we have a little bit of a linguistic problem there um the followup was well I guess

    The main I can think of hating Sprints is David Hansen who goes on B L the CG Bas Camp yeah and I was wondering what you thought about their model where effectively they work in about 2 months with 6 weeks of work then kind of two a

    Week rest and reflect and then another 6 weeks and they work like that as opposed to continual Sprints yes now what is interesting um there is that what they this is curious because that that the original Sprint model again I’m going to go back to early scrum was you had

    Sprints and then you took a break and then you had a Sprint then you took a break again that got lost it’s back to bank stuff which if you’re going to take the metaphor seriously is exhausting okay you’ve just run yeah that was a good Sprint okay do another

    One what come on give me a break you know so um so yeah that idea of the notice that idea goes right back to what I was talking about in the same logic as the pdsa cycle the same ethos that idea you need the breathe you need the study

    You need to take a break you cannot be 100% on because for a lot of people what scrum without its sensibility has ended up meaning is a series are Perpetual deadlines and they’re permanently stressed rather than permanently stressed about one big deadline they’re now permanently stressed on a monthly or fortnightly

    Basis and so there’s this idea of you do something and then you take a breath you take a breather if you’re going to use Sports metaphors then use Sports metaphors you’re going to take a break after it yeah otherwise shift to a different metaphor

    Yeah yes and a and a kind of a higher level one of the um big push backs against agile is the so business reality of needing to estimate um time and money on TR yeah and I was hoping to hear your thoughts on what can you do to more effectively

    Counter that idea and demonstrate that you can get better business value out of doing something agile instead and and alternatives for dealing with like costing issues and time yeah right there’s no one single answer to this because different organizations behave differently have different cultures um as to what they

    Want to do with the numbers and that that is huge when when somebody asks you for an estimate you want to know what they want to do with it they want you want to know why they’re asking you the question and the reason I say that is

    Because uh I was in a situation where I did a uh did a thing for a company it took us five years to set up the workshop on agility just I just want you to think about how agile these people are we we need you to help us improve our process five

    Years but the good thing is we manag to get everybody in um and to review and go through their practices and explore the way they did things and when I say everybody I mean we’re not just talking developers I’m also and testers I’m talking about the product owners as well

    It’s so rare to be able to draw them in uh this is great but what was fascinating was one of the conversations that came out when one of the developers was pushing back against the estimates and the Precision and all the rest of it and one of the product owners said oh I

    Had no idea that you’re doing all of this that’s not what I want it’s the reason I want an estimate so this was the interesting is the motivation is I want to know roughly what order of magnitude we’re thinking these are my words rather than his he says I want to

    Know when I asked for this is that something we can slip in in a couple of weeks or is it going to take a year I don’t actually care if it’s 2.5 weeks versus 2.3 he says I want to know it’s weeks months or years that he was just after

    T-shirt sizes orders of magnitude it was as simple as that so that’s that’s the reason that’s the first thing whenever anybody wants an estimate is you have to understand what they’re asking you why they’re asking you for it um because they’ll say something about planning but that doesn’t mean anything because what

    Do they what kind of planning are they doing are they doing rolling W planning are they who’s pushing on them who wants these numbers find out how the numbers are going to be used and that’ll tell you what you’re offering second thing is you got to converge which is what these

    Cycles are important and the convergence um thing other it becomes a negotiation an ongoing thing it can’t just be a one-time Affair you can’t just do it once a year you have to kind this has to be part of the process which also tells you um that

    When it comes to uh this question of going back to what I said you can’t estimate by business value but you can estimate by prioritized business um you know by an estimation uh sorry you cannot prioritize by business value you can prioritize by an estimation of business value the point there is that

    That becomes a proper conversation where you’re actually asking somebody else we you need to calibrate this as well rather than saying we’re marketing we know no you don’t honestly you have absolutely no idea you can’t say that to them of course but um I’ll give you a

    Very simple example of the fact of how wrong numbers can come out um so let me think um Avatar that cost just over over quarter of a billion US dollar that was 2009 and it it has broken the trillion dollar Mark in terms of its Revenue okay that was a you know that

    That was um uh have I got my magnitudes right no billion dollar mark thank you uh it’s broken the billion dollar Mark that’s a good investment of quarter of a billion then there was another film came out three years l later that also had 3

    M High aliens um and was set on another world and had a protagonist who basically went native uh and that was John Carter um it wasn’t a terrible film but it did cost the same amount and they still haven’t made that amount back now I do not imagine for a second that

    There were film Executives sitting there going like yeah this one’s going to be stink terribly it’s going it’s going to be it’s going to bomb totally in the marketplace let’s fund it and the point there that they are the business people who are supposed to know so therefore

    There is this idea that there needs to be a calibration so when somebody says we are the business therefore we know no you don’t no or not necessarily you can’t come back with a contradiction not necessarily so you have to work towards that and that gets you the agile bit

    Which is now suddenly you’re talking and you’re saying well okay how much you prioritized this last time how’s that working out and do all this stuff and suddenly that’s what’s now you have all of those lovely little feedback loops in there that’s the that’s the road to progress normally the problem and I

    Can’t say it’s going to be easy to crack but normally the problem comes about from an us and them and then we believe something about them they believe something about us They believe something about the market place they don’t NE they’re not necessarily in a position where they can learn this is

    Where this is where the culture question comes in is actually are they being encouraged to do the right thing or are they feeling the pressure which then gets on yeah so that’s that’s that’s why there is no one answer but it turns out that there is there are ways of kind of

    Teasing this out okay any other questions thoughts right well thank you very much so thanks again it’s a long way to come to speak to us here in Perth and hopefully there’s a UK there when he gets back who knows you know um thanks again to

    Bank West for coming to party um and and supporting us once again and I’d also like to thank um the DDD people for helping us set up today and um and also [Applause] D

    4 Comments

    1. Speaking of iterating and learning, I hope GOTO learns that filming the slides this way doesn't work… several slides are illegible to those watching this video.

    Leave A Reply