Agile is Dead • Pragmatic Dave Thomas • GOTO 2015

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
welcome thank you for coming um before I start I have to apologize I have to polish for a couple of things first of all this is by far my most cynical darkest meanest ugliest talk I don't really mean it to be I just can't help it so I apologize for that it does have an uplifting message at the end so please don't walk out in the middle it's also a talk that's really quite hard to give because I need to separate the implementation of something from the specification of something and we all know how hard that is so please bear with me give me just a little bit of slack if if I ruffle any feathers so let me just start off with a statement you know I shouldn't have put my email and stuff down there because now I'm going to get problems all right agile is dead I'm going to show you why over the next half hour or so but that doesn't mean we have to stop doing it to say why I think I have to kind of go back in time a little bit so let's go back to 1999 because I think we can party right so back in 1999 January first you'll celebrated the destruction of all your currency the adoption of the euro in 1999 Bill Gates became the richest man on earth also in 1999 Apple Rim introduced the Power Mac g4 I wish they would bring that form back it's just so wonderfully retro I like it ah what else do we have oh yeah Bill Clinton didn't get impeached we had Phantom Menace released Napster came about DeForest Kelley died which is sad I met him I met him when I was about 12 years old and we were both at SeaWorld in California and I actually said hello to him and he said hello back to me so therefore I officially I haven't met him but of course most important of all 1999 saw the first episode of Spongebob Squarepants upon which I will base the rest of this talk no but it does lead quite nicely into the next slide how are we developing software back then well one way we're developing software is we were drawing pretty pictures we're using the unified modeling language UML to draw pictures of our our classes and of our interactions and everything else in fact UML is probably responsible for the destruction of object-oriented programming because its total focus on classes and not objects has corrupted an entire generation of programmers but I mean it does lead to some really nice pretty diagrams that are terribly useful things like this there will be a test afterwards and then as well as our UML we may well have been developing our software using the rational unified process run that's as opposed to the irrational unified process no maybe there was one um not necessarily a bad process but badly applied most of the time but that was kind of like what was wrong I was around however the reality was very very different 99% of software projects looked like this valiant people Manning the barricades do-or-die mostly died chaos smoke gun fire death that was your average software project and clearly that's not sustainable it's fun and you get to wear cool uniforms but it's not sustainable so roughly the same kind of time there was kind of like a counter it's not a movement just a whole bunch of people weren't very happy with the way things were going now the chronology of this is not quite right but people were thinking these thoughts definitely in the 90s late 90s so Kent Beck was experimenting with extreme program and he was at that point probably still working on the Chrysler come see project the whoever and he and Wool Cunningham Ron Jeffries were all experimenting with XP and you know how you can push a team to focus on just the important things Jim Highsmith was looking at his own adaptive software development techniques and the hunter and I were looking at pragmatic programming not really a methodology but just more common-sense ah scrum scrum I mean scrums been around since the mid 80s but being used in software more more by then and of course we have Alastair Coburn who was pushing the crystal clear ideas around about this time so we had all of these I different ideas all focused on you know how can we cut down on all of the [ __ ] basically and just focus on writing software and most of the people involved in this attended oops lot object-oriented suffer I can't remember what it stands for now programming that whatever right and we all sort of sat there and chatted and bemoaned to the state of the world as people are tending to do and the idea came off hey we should probably get together and balloon this in private so a meeting in Snowbird Utah was arranged and we all turned up and on the first day I think we had a two and a half days in total I can't remember my memory is horrible so forgive me if I get this wrong Jeff can probably tell us better but on the first day we turn up in this room we immediately removed the tables and just set the chairs up in the circle and then said okay now what are we going to talk about and somebody handed out index cards and we all wrote down what we wanted to achieve a couple of index cards and then we all had great fun trying to fling these index cards into the circle and make pretty patterns and things like that so that was a good interesting hour and then we picked up the index cards and we divided them into piles too depending on what they were about and it became clear that what we wanted to look at was kind of like the values of our software you know what is it that we we value when you're writing software and that actually came together in the next hour or so the initial stab at the we value x over y formulation was done by the end of lunch and then we discussed it we refined it in one went in one came and it was just basically fine-tuning from then on and then we sat there and we had extra time and as software people tend to do we just then filled in the time by creating random stuff so we produce some principles and everything else but fundamentally the values is what we're happy with and the statement of the values we felt expressed what we wanted to express about software development that's kind of cool and I think everybody who is in that room will look back on that with some pride yeah I mean maybe you would have changed it slightly if we were doing it again but I think given what we had then everybody is is pretty happy with it and so what happened well we all basically went back ward cunningham and i put up a website where we published the manifesto and people could sign up and say yes i support this and as far as i was concerned and mostly other people there that was it we'd launched this thing out on an unsuspecting world and then we just waved our hands of it and said that's fine move on um and that was probably a mistake because what has happened since is that the values have been totally lost behind the implementation let me show you why I think that is you'll notice we were careful to call it the manifesto for agile software development that's what it says on the website sort of said in Dutch that's what it's called but that's not what people call it people call it the agile manifesto and this is the root of all the evil that has followed no I'm serious can anybody tell me why it's the root all evil I'm sorry yes this sentence says that we produced a very agile manifesto which presumably means if you put on a table it'll start dancing yeah because agile is an adjective you cannot call if you mean to talk about a manifesto about agile software it's not an agile manifesto right the best you can do is the agility manifesto or something ugly like that because agile there's a definite black spot here for clickers agile as it says there is an adjective I want to stress this and I'm going to stress this by hypnotizing you all with a word adjectives from now on anybody here who uses the word agile as a noun as in I'm doing agile I'm going to come and I'm going to find your scrum master certificate now I'm going to tear it in pieces all right agile is not a noun so it's perfectly okay to talk about things like an agile gymnast an agile programmer possibly I don't like the concept of an agile methodology because I don't think there is such a thing I mean there's a j'l meta methodologies but not agile methodologies but I mean you can possibly say that at least it makes sense as a sentence and so that makes me happy what does it make me happy are when people use it as a noun do you do agile what is agile agile Alliance I mean even Kosmos getting in the act do you notice by the way that not only do they use it as a noun but they spell it with a capital letter it's a proper noun just like God so this is not good this is not good so why do I think this is the root of all evil it's really really simple if I have some adjectives like for example green right I can't sell it to you I can't come up to you and say here have some green doesn't work if I said have some green paint or some green vegetables absolutely I can sell you that I can sell you nouns but I cannot sell you adjectives and the industry that sprang up around the agile manifesto oh I just used the word agile manifesto the industry that sprung up around that manifesto wanted to sell you things this is where the cynical part starts by the way all right they wanted to sell you things and therefore they needed to convert agile from an adjective into a noun and they succeeded very very quickly and so we have this thing and now they can sell you they can sell you training and consultancy and books Maricopa and actually not really because agile web development is actually an adjective so I can get away with that one um and conferences there are a lot of agile conferences and they make a lot of money for people so this whole industry has grown up around the noun right I'll have a kilo of agile please yes sir here it is but that's nowhere close to the spirit of the original manifesto and the values of the original manifesto but it gets worse because how do they sell you agile the same way they sell you medicine and all sorts of things they use fear speak to me because agile has all these new words scrum Kanban write spikes all of these kind of things that people not heard before and people get nervous particularly management where new people are talking to them about it's weird things what on earth II took him how do I use this right this is this is strange so you have to bring in a translator who's going to sit there and spend a day and charge you 2,000 euros to tell you what a spike is and okay that's a small thing there are also new rules gone is the hierarchical project structure and instead we have these flat teams with a scrum master and maybe we you know we don't have QA people anymore and we got all these kind of weird things going on so again people are afraid that particularly organizations who rely on that structure in order to manage people you know that's that's kind of tough new ways to measure things to back in the good old days all right everybody filled in a timesheet and before project started the project leader would tell you this projects going to take 200 hours and you look at the timesheets and when it got to hundred hours you would know that the project was hard for you done so I mean that was comforting right you had numbers you could draw graphs it was wonderful now they're reporting progress using meatballs or some other kind of weird like you know measure of velocity velocity right I don't want you're moving right so it's all it's all funky it's all strange and then underneath it all is this concern whenever anybody starts doing something new are we doing it right because if we're not our competitors are going to be just so we have to make sure we're doing it right and then last but by no means least cool cells and this is where we take a large part of the blank because as developers and to some extent as managers in the industry we are drawn to bright shiny new things okay I mean you have to look at successive JavaScript libraries to know that so when anything new comes along it's like oh I want to try that I want to be good at that and so you got and you will try it right but that's kind of insidious because once you have tried this brand new thing then you have this kind of weird sense of power that you know something that other people don't know all right this is this is my step up in the world and so you're actually kind of in a way want to make it harder for other people because this is your kind of thing now I know it's not a conscious thought no one here is evil like that it happens I am okay I'm going to take a potshot here at the Ruby community simply because I'm allowed to Ruby community is fantastic it is wonderful all right I love the Remy community over the last 12 15 years I would say the Ruby community has done more to push forward testing than anyone else has done in the history of computing right they have a culture of testing but not just that they've with many different forms of testing and they've produced a whole bunch of very cool frameworks which is then be copied into other languages so the Reba Trinity is really big on testing and I'm very proud of them for that that's great what I am not so proud of them for is it's gone one step further and they now have this total bigotry about testing so if you're a Ruby programmer and you are not getting a hundred percent test coverage they look at you and they go you know I thought you were a programmer yeah we're not interested in your stuff go away go away and they kind of like have the backing of the majority of people there because testing sounds like it should be something you do right I am going to tell you right now I mostly don't test and when I was my son my son was five years old living in Texas okay Texas is Bible Belt and my son was five years old and he was at a school where all the other kids were parroting kind of religious stuff that was told to them by their parents and he got really sick of this so he did what any red-blooded five-year-old will do he climbed up on top of the swing set and said if God exists have him strike me with lightning or something right and he did that three days in a row and the school phoned us up and said this isn't too good you know but that's how I feel when I say I don't do tests you know and the reason is that for me the benefit of tests comes from the design aspects the fact that it helps me understand the design of my code it helps me design interfaces of my code api so my code it helps me decouple my code and I've been doing it for so long that now I think about that as I'm coding and the test doesn't have to exist it still drives the design and I've done measurements I don't actually have any more bugs I will still test complex algorithms but I won't test the whole piece so I am tion probably by the Ruby community and the same thing happens in the agile world right we can we can put down people that aren't doing it our way right our way is best if you're not doing that you're second class so because of all these things I feel quite strongly that the concept agile as a noun has just become an industry it's a machine the taxes on the basis of fear and asks us to pay money to assuage that fear the wonderful example of that is the scrum study organization I was actually just sitting on my browser one day and you know how the little Google Ads pop up on the sidebar and this popped up the world is adopting a scrum are you stop thinking and get certified today kind of sums up what I'm thinking yeah and in order to keep growing are the influence of this industry when first we started out we were looking at individual developers because we all said that the agile practices you know the XP and scrum were designed for teams small teams all right and there are conferences on scaling it and basically people said now you can't scale it but it was all to do a small team six twelve people whatever that might be but clearly after a while you discover that the money is not in the small teams the money is in the big companies and so we need to find a way of scaling it and so I mean I'm not trying to knock Craig Lyman here this is a cool thing it's basically how to nest scrum inside scrum but it appeals to a corporation because it's got little cute figures and it looks very complicated you know so you look at that and say hmm yeah I'll have to please yeah and you can tell that this is designed for an organization you can't quite read it here but on the bottom here in the legend it says extra meetings may occur not shown on this diagram so that keeps everybody happy and then of course we have this enough said so I believe it is time to reclaim agility because I still profoundly believe in the values of agility so let me give you a version of you jewel agility that you can take away it fits on one slide this is what I think agility is three steps plus a loop right the three steps are first of all understand where you are the second step is take a small step towards where you want to be and at the end of that step evaluate what happened that's all or is to it and then repeat now I say that's all there is to it that's not easy because you apply this fractally to everything you do from the naming of variables to deciding where you're going to deploy it right it's all following the structure and it's all a big nested set of these things now this isn't the whole story because quite often we'll be faced with a choice should I do this or should I do that and that's where the second part comes in when faced with two or more options choose the one that they say easier to change in future and this is a simply a corollary of dayz rule of design right I say every single design methodology B can be encapsulated into one sentence a good design is easier to change than a bad design all right so whenever you're designing you have to ask yourself is this easier or harder to change in future and you'll discover that every single design principle falls out of that one statement same thing here make decisions that are easier to change in future so let me show you something that's agile this is a little two-wheeled row what do you think is going around the circle just like the rest of us but it's it's managing to balance on very rocky ground you'll see this gets how often it frees itself out doesn't fall over totally self-contained how does it do it well it's basically you think about it it's a pendulum upside down so it's a pendulum that pivots at the bottom and swings at the top and it has accelerometers and stuff inside it so if it finds itself falling this way then it knows it has to scoot the bottom underneath the top to stop it falling over so it accelerates the wheels if it's tipping backwards it slows the wheels down so that's really all there is to it and underneath it it actually uses an algorithm called the pit algorithm and that stands for proportional interpretive derivative all that really means is there are three factors when it decides what to do about an error and an error is hey I'm falling the first factor is which way am i falling right am i I'm like leaning over like that that's pretty bad so I really need to spin those wheels fast to get back up again that's the proportional side if that's all you had then the little robot the second it got even slightly off balance would oscillate back and forth until it beat itself to death on the ground right you need more than that and that's what the next two terms include one is the history the history says maybe this robot weighs a little bit more on the front than the back so it has a bias to go forward well over time that's picked up by the controller algorithm and it automatically compensates for me that's the integrative step and then finally it works out what the difference is between where it is and where it wants to be that's the derivative step so it looks at the anticipated short-term future the actual whole algorithm was designed about a hundred years ago when ships got big and you people discovered that they could not steer these big ships and the reason they couldn't steer them is that you turn the wheel obviously a ship that's really really big not happens for maybe 30 seconds and slowly it's thus to come around but you have no idea whether your position is correct on that wheel or not and then if you wait until the ship is pointing in exactly the right direction well then you straighten the wheel it's going to keep turning so they needed a way of stopping that and what they came up with was a mechanical system that did the proportional integral and differential side of the pig controller and they wired that between the wheel and the rudder and then mere mortals could steer ships again since then this is the algorithm that's used in your central heating controller there's probably six or seven pin controllers in your car it's the common it's the most common industrial process control algorithm and I think it reflects perfectly what we want to do in the agile world all right find out what the error is look at the history and also have a look to see what your change is going to do to the future all right change gears just slightly the reason I'm here is that I wrote that blog post I was getting really annoyed about the the state of the use of the word agile so I wrote this blog post and an interesting thing happened I had not been to an agile conference I don't think opinions vary but I don't think before I wrote this I've been to an agile conference I may be wrong I'd certainly never been to any of the big ones so I write this blog post and the next day my email box is going didn't ending of people inviting me to agile conferences go figure my wife and I love China so we accepted the invitation to go to the scrum gathering in Beijing know Shanghai Shanghai and that was great fun I really enjoyed it now I tried to do a little bit of research before I go to conferences and this conference had a motto there is its motto and I thought oh I better translate that so I went to my good friend Google and said hey google translate this for me and Google said Salzman I thought maybe they were angry about the blog post so I split it into separate characters and said well what does it mean to separate characters and it said laughs trout river lake obvious so my wife took this to her Chinese teacher the next time she saw her and said okay what's the story and it turns out that in China no in Chinese there are these four character sequences called Chung you and they are basically shorthand they typically refer back to normally an ancient story and it just like encapsulate a lesson or some meaning out of that story so it's a bit like a proverb but more formalized and shorter and the particular Chung you that they were using for this conference actually was not ancient it was fairly new it's like 1960s someone produced a book which in English is called the swordsman about a kind of modern day person washing up modern but relatively modern person who goes out and suffers all sorts of things then ends up dying in a real but the the reason for the gem you is that back in the old days pirates used to frequent the rivers and lakes and so if you were a farmer or someone and you had to go down to the river to trade then you would be scared because you'll be going down into pirate territory and so the saying is basically to say you know keep your chin up right don't let these pirates have a oh brother whatever intimidate you yeah keep yourself proud in the face of this so that's what they make the spirit of the conference meant so being me I thought okay I only go to China and tell them what their phrase actually means so I translated it using the American expression don't let the turkeys get you down they were surprised I had to just double-check so I gave them the China Chinese for Turkey his fire chicken is that cool don't let them get you down and what I said oops sorry oops that's a giveaway some people I said think they are important they'll they have more knowledge or more experience or more money or more whatever else and that they feel that that gives them the right to tell other people what to do and how to do it and I said these people are turkeys don't let them tell you what to do and then as you all saw I said I'm a turkey all right don't let me tell you what to do either in fact all experts are turkeys all experts tell you what to do and tell you how to do it and that is wrong why is it wrong I think that's possibly the favorite slide I've ever produced no rules are universal for every rule requires a contest for example it's generally a rule that you don't go around sticking knives into people's throats yeah good rule help society live a happier life that you don't have to worry about people coming up and sticking you with a knife so that's a rule unless you happen to be a doctor performing a tracheotomy to save someone's life then it's not a rule and in fact I challenged people over the last year to try and come up with one absolute rule and so far I haven't seen one so I say all rules are contextual so therefore you cannot listen to someone who tells you what to do because they don't know all right any book that says this is how your write software is wrong because unless that book was written for your team in your company doing your project at this particular time it doesn't know how you should write software so in that circumstance how do you know what to do haven't you possibly know because you're out there you're on your own you can't buy in you know a pound worth of agile it's just not going to happen so what do you do you do exactly the same thing you do in any situation where you don't know what's going to happen next well there's two things you don't want is close your eyes but the other one is you take a small step forward see where that got you and then revise your plan and repeat and try not to go down any one-way streets and oh what a coincidence that's exactly the same as the process that I've described for running an agile project or an agile life what is an agile project so I think the antidote to agile Industries Inc is in this room it's all of us because we are the people actually writing the software we are the people that have the problems we are the people actually you have the solutions as well but it requires courage to apply those solutions and so this is the uplifting part by the way right if you I mean encourages actually want to camp X original values for XP right and I always thought those are kind of strange thing to have now I understand why because you takes courage it takes courage to say no I'm going to handle this it takes courage to say I know I'm going to make mistakes but that's the only way I'm going to find out what needs to be done but I'm going to work hard to make sure those mistakes are small and correctable right small steps review change make sure your path can be changed so that kind of thing does take courage it does take guts and it takes courage at the individual level at the team level and at the company level but I really think that is the only way we're going to fix this problem and get some life back into the initial agile values and like I say I still believe very strongly in them so let me just leave you with something slightly corny agile is not what you do agility is how you do it and after all that's what we want we want to do things you know our entire purpose here is to create it's a verb we need to make things and for that we need agility thank you very much are we supposed to finish at 6:00 is that right so if so we have time for a few questions that people want to ask them or throw things at me or whatever you want to know cool so what'll question may be so we have a whole scrum Trek on here on this conference so what is your what are your thoughts about scrum which is Bailey also one methodology which from experts telling how and what to do or at least how to do something I think that the okay so that's that's a loaded question but igni with jeff in the room I think that the the ideas behind scrum are powerful right that year of communications the original ideas of passing the football all of this kind of stuff I think is a very potent way of getting a team focused on board and creating software right I very much support teams that look to create scrum environments for themselves where I part ways with scrum is the concept of two days or even one day scrum master courses you know you charge for one day you know maybe or maybe not fill in a questionnaire you get a piece of paper you're a scrum master right that's just [ __ ] and that devalues the entire industry if you ask me but I also don't like it because there are a lot of books on scrum and they all describe how to do it and they don't necessarily say how to know if you're doing it right how to change it to make it right for you and how to evolve it into your own environment it's like here's a set of practices follow them and most people honestly that's kind of what they want they're beginners at this they need direction in the same way that if you're about to jump out of an airplane for the first time you don't care about the theory of aerodynamics you want to know what you pull and when all right that's all you care about and that's what these beginners do in the team so they take these books and they follow them you know step by step exactly the way they're written because that's all they know and then they end up getting stuck in this process where they don't actually know why they're doing what they're doing which is the cargo causing that we're talking about a beginning and I think that that's where I say I think scrum the concept is really really good but I think many implementations of scrum for very very far short of that is that a sufficiently diplomatic answer you
Info
Channel: GOTO Conferences
Views: 1,457,814
Rating: undefined out of 5
Keywords: Keynote (Type Of Public Presentation), Pragmatic Dave Thomas, Agile Software Development (Industry), GOTO, GOTOcon, GOTOams, GOTO Amsterdam, GOTO Conference, Agile Manifesto, Software (Industry), Software As A Service (Industry), Software Engineering (Industry), Software Development (Industry), Software Testing (Industry), Computer Science (Field Of Study), Keynote (Software), Problems with Agile, Agile is Dead, Dave Thomas, Videos for Developers
Id: a-BOSpxYJ9M
Channel Id: undefined
Length: 40min 39sec (2439 seconds)
Published: Tue Jul 14 2015
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.