Entwicklertag 2016: How Agile and OO have lost their way together - James Coplien

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
👍︎︎ 1 👤︎︎ u/kjxymzy 📅︎︎ Jan 22 2018 🗫︎ replies

This is stupid. We're going to stop doing stupid things.

Hehe.

This talk is a great example of why OOP is bad. If OOP has failed, it's because you're not doing it right, not because OOP was a good but failed ideal. Thanks for that extremely helpful insight! </sarcasm>

👍︎︎ 1 👤︎︎ u/johndehope3 📅︎︎ Mar 19 2018 🗫︎ replies
Captions
oh it's a it's great being back here in cows rule I don't think I have been in Karlsruhe for about 12 years I was parted in an EU project I came here as a project expert working with Professor goats at the University so so I used to have a lot of friends here but they've all moved away but it's a it's nice to remember the city so I thought I would would end the event here with a kind of a stirring talk and inspirational talk that's a little bit of a downer and of course we like to end on an up note and I will try to turn this into an up note at the end but it's easy to get into a happy bubble after a conference like this and I'll kind of I will talk about the role the conference's have in the dehumanization of agile and objects so a lot of this will be about history my wife who is here hates it when I talk about history because you know I look like a reminiscing old man or something but you know history great German philosopher Hegel said that history teaches us that man learns nothing from history so I want to give ourselves the opportunity to learn something here so a lot of terms have been floating around that these past two days as I've listened to talk scrum lean object I should have put up that wonderful picture from Princess Bride you've all seen it on the web you keep using that word and not really sure you know what it means so I have a little family tree here to try to put some of these terms in context the first one here is the Toyota Production system or TPS which goes back to about 1945 or 1950 depending on how you count and it is more or less directly where Jeff Sutherland got scrum it came through a paper by Takuya Terry Caffey yuichi and Anaka called the new a product development game and the first scrum was in 1993 lien is something completely different lien is kind of this American misunderstanding of the Toyota Production system that was based on a lot of misinformation the Toyota gave them to try to make sure that the Americans would not get ahead of the Japanese how many of you know five why's what's the purpose of five wives what cause does a complex adaptive system have a root cause of course not but the Japanese got everyone in America to believe that there's a would cars beneath complex problems this is stupid we're going to stop doing stupid things all right Salinas something separate and Jeff Sutherland makes that point repeatedly and then you know extreme programming came from scrum except they've got it all wrong and then on this branch object-oriented programming goes back to 1967 gets named and really defined in 1972 and studs having a culture around it in 1980 the patents culture grew out of that I'll say a little about patterns here and a lot of the agile movement and fad came out of patterns with a lot of influence performs from scrum and a little bit from XP what's notable about this agile came from scrum scrum didn't come from agile and agile is kind of a cream skimming of scrum that throws away all the good parts that come from here now I'm going to be focusing a lot on agile and oo in this talk but I want to make it clear that there's something much deeper behind us that I'll come back to in the end that's that's important to be attentive to and I want to run this so I can see my own notes let's see if this works you can see my notes this is inevitable in going in front of an audience is that when you try to run things the first time they don't work so let me just quickly go to displays arrangement mirror no put this over here okay let's let's try this does this work yes all right so there's there's a lot earlier routes to all of this now in fact object-orientation and agile are the same thing they both are about anthropomorphism they're both about interacting agents and absolutely talk about people interacting they're both about emergent behavior things that cannot be planned and only forecast in the same sense that we can only forecast the weather they are both about doing things incrementally now they've been a number of misunderstandings of this that people have run with one of them is extreme programming and I was working with Kent on the patterns and he decided he couldn't make any consulting money from the patterns so he wrote to Jeff subtle and said hey you know I've been working on some patterns can you send me that paper from H from Harvard Business Review I've been working on some patterns that I want to steal everything I can get so this is a Amelie sent to Jeff and the rest is history of course I invented extreme programming did you know that so this is Kent's biography from a paper he gave and following work by Jim Killeen and Ward Cunningham he invented extreme programming I didn't know that and early on the sole agile thing was about people how many of you have not seen the agile manifesto before anyone here has not seen this when I owe the camera man that's okay I mean when I teach scrum courses I'm a certified scrum trainer I go out there and I asked my classes and on the average it's about half of the people in the class who have never seen this and kind of interesting and of course this doesn't tell me what to do it's just a way of assessing yourself about where you are on the spectrum but the thing I really want to focus is on here is this about individuals and interactions individuals you are all individuals let's how they get louder you are all individuals not me yes right someone has seen the movie is it about teams what's this individual stuff I've never quite understood that so early on it was about individuals and if we look at the lean lineage that comes through Honda and Toyota in Japan this is a slide by nanaka sensei so no naka is kind of the Godfather of scrum and so it was his paper that Jeff Sullivan got a lot of the ideas from and this is this is Nonaka sensei's history of scrum that started with his paper the new new product development game in 1986 and this is where the term scrum is first used you know what comes from it comes from overlapping work and he could see this overlapping work as like sashimi on a plate overlapping pieces of sushi me and he said what's the equivalent the human equivalent of sashimi please stand up yeah please stand up so what's the human equivalent of sashimi so we're going to overlap here what is this I don't eat sushi this is a scram from rugby that's where the term scrum comes from it's people everyone doing everything all the time and then he made his psyche model which is brilliant and then we did the organizational patterns in 1993 now remember this is no naka sensei's slide and then Jeff Sutherland ran his first sprint in fact it was about the same time it was in fact in 1993 at the easel corporation and then he incorporated some of my ideas in 1994 the first scrum book is seven years later by Ken the agile manifesto in the same year so agile is quite late after scrum and now more recently he has gotten together with here on Amazon in Japan and they have written a scrum book called collaborative software development and it's only in Japanese and it brings together these ideas from a lot of the history so this is more the from a TPS lineage coming into scrum but the point that I want to start with is that in their origins both of these they reveal a very idealistic and had a lot of the same foundations that they were about people so in the agile manifesto we see individuals and interactions and an object orientation we see in the early days back in the 1980s anthropomorphic design user centric design CRC cards how many do you know let's see RC cards are where you use index cards and you are an object and you will write down your what your responsibilities are we've lost that haven't we that's kind of interesting ongoing repair agile is about responding to change object orientation programming by difference new forms of modularity agile outwardly focused customer collaboration and object orientation was originally about engaging end users through the operational models they held in their head so what an object is is a computer representation of a human operational model that's what it is now since then there have been programming language Wars and a lot of misunderstandings and we've ended up doing class oriented programming instead and it seems like no one understands object-oriented programming anymore and lastly the focus on quality whatever that means to the agile people it's working software the green bar comes up Wow and an object orientation it's about test-driven development unit testing automated testing how many of you do automated testing how waterfall here's a child out in the grass and she's playing with her computer working on a tool that's connected to the library when do you think this picture was taken eighty I think it's 1976 1976 that's an iPad for crying out loud you see the keyboard on the screen here and Alan Kay had this dream of something called the Dynabook which was something he would use to educate children that they would program to connect with the world around them and extend their mind into the world around them we want the child to program the computer not the computer to program the child you have Skinner at this time was working on education software where you would train a child to remember certain things the same way you trained a pigeon to peck keys on a typewriter to get a grain of corn or that you train a rat to go through a maze and Alan K was following a psychologist named Piaget and said the child is not a scaled-up pigeon or rat but in their head they have these things called operational models and what we want to do is to get a model of the surrounding environment to deal with it we want to hook into these modes of thought in order to influence him rather than just trying to replace his model with one of our own now these models are algorithms for solving problems their operational models and this is where object orientation was born in the early to mid-1970s and there's a very early paper about this that's floating around on the web I don't think this was ever published but I pulled a quote out of this that PHAs and others work on the bases and forms of children's thought is a fairly convincing argument for believing that computers are in an almost ideal medium for the expression of a child's epistemology what is an operational model it's not an algorithm a procedure for accomplishing a goal object orientation was initially about problem solving algorithms so those who think it's about classes and that we have to reintroduce algorithms and processes and these have gotten stuck in the mode of class oriented programming and haven't gone back far enough to understand that this is what object-oriented programming was about almost 50 years ago so we forget we forget so easily and we have very poor memory as a as a culture so it's about what K called genetic epistemology knowledge particularly in the young child is retained as a series of operational models each of which is somewhat ad hoc and need back need not be logically consistent with the others they're essentially algorithms and strategies it's much later in development the child finds out about logic and even then only through extra logical strategies so these are the foundations of oh oh it's about getting into the human mind and now we're going to extend the human mind into the computer so that the computer serves as an extension of the human mind so this this has been the vision of all of these original people working on oh and in order to interact with the computer it's very hard for you to interact directly with the technology because this is a technology mismatch here I can't get inside and touch the objects it's like in order to communicate with you I'd like to be able to go in and directly manipulate the neurons but it'd be really messy so I went through this interface and so we have an interface that allows individuals to interact with their computers seamlessly and it's about the individuals and interactions over processes and tools I don't want them going through a process through a front-end that goes to a server and so forth it's a seamless direct manipulation of that object and I do this through a tool so each one of the child has a mental model or you have a mental model on how you're going to transfer money between accounts and you carry this mental model with you I want that model also to live in the machine so that machine can do this for me so model mental model model view controller model view controller is about extending the mental model of human beings into the computer and allowing this interface to facilitate the interaction between the person and the machine what's the purpose of the controller I heard that that's another one of the terms I heard here someone was telling me about the controller and we don't want fat controllers what's the purpose of the controller everyone says it's going to take the input from the keyboard in the mouse no that's not the purpose of the controller the input from the keyboard and the mouse comes to the tool it can come to the view it can come to controller there's nothing in MVC that says it goes to the controller the purpose of the controller is to create in coordinate views and again history got this all wrong small talk ad got it all wrong because they started to not be concerned about the human being but concerned about the programmer and the Machine so the controller creates all kinds of views that can have a pie chart view I can have a bar graph view and the employed can come it can come to the controller but it can as well come to the view and it's dispatched to the view in the model so the early view of object orientation was about extending the human being and extending human mental models into the machine now since then we've I think really gone wrong we've lost these foundations and when I come to a conference like this and I hear the talks and I look for these things I can't find them and so it's it's evidence that we have lost these these foundations these very dear human foundations they're sea of humanity most programmers program in classes who here is written an object who here has programmed an object in the past month what language are you programming in you cannot do there's one language in which it is impossible to do object-oriented programming and that's Java you can do it in C++ with enough faking out but it's impossible to do it in Java it's the only language in which you can't do it how many Java Script programmers here dread objects yeah there's an object-oriented programming language but it is I mean you're programming objects and you'll I'll see some all about JavaScript later classes are static how many of you sell classes to your customers if you sell classes and you claim anyone selling classes and you're using scrum you're going to buy my software you want to buy my classes like watches right now we don't sell classes we sell use cases that's what we sell and so that's where the focus should be who wanted me to talk about DCI this is my DCI part okay because polymorphism because we program in classes if we have a use case and we line these classes up and their objects are going to call each other each call is polymorphic they're hyper galactic go tubes we have no hope of understanding our code and if we can't understand that it probably isn't right so we added testing one a lot of waste and then we did that wrong because all we're testing other classes we're doing unit testing and TDD so there was this wonderful talk I went to undone that says no I want system testing integration testing things at this level unit testing is mainly waste and in fact probably will decrease your quality read my white papers on the web no I mean I can prove this and if you know if you if you start gathering data you'll be very very scared the GUI comes later or it's separated in a client-server architecture so not only the programmers not understand the code but that poor child whose mental model we're putting in the code can't understand the code either and it's supposed to be their mental model not one we substitute as Kay said and the use cases aren't designed so the users can't understand them from the user interface either and the uten and the coders can't understand them for the code so I mean object-orientation has lost its roots there's there's very little reasoning and few methods that focus on what Kay called networks of cooperating objects we're all focusing on the classes the only pictures I saw today we're pictures of inheritance hierarchies we all loved our inheritance hierarchies because that's something new and it's kind of magic when you get inclusion polymorphism so we're all kind of enamored with with with inheritance and subtyping but that isn't what it was about I think the original K paper the one I showed you uses the term classes once it's not about classes it's about objects microservices another buzzword object-oriented programming for the next decade right now it could be kind of right except everyone's looking at the wrong end it's focusing on independence rather than in interdependence of services and everyone is trying to raise managers hopes because after all managers have the money and they're will hire you as a consultant that they're independent and you don't have to worry about coordinating your team's that each team can work independently on their independent micro services and all will be well we've been here 40 years ago with object orientation and we know it doesn't work but the same bad ideas keep coming up again and again and again because we don't learn focus on unit testing and object integrity has replaced any notion of operational models and the human focus so our minds are in the gutter we're all focused on these classes we're where uber nerds and you know we've completely lost the sensibility to the poor person who has to buy a ticket and rush to the Train or you know the doctor who has to figure out how to use a terrible interface on the medical equipment and patterns which could have opened this up have become prepackaged technical solutions so I'm one of the founders of the pattern discipline there were seven of us who went to a mountaintop in Colorado in 1992 and came down with with patterns and we had these conferences and started building communities patterns are written in communities and they're always part of something called a pattern language that's funny there's no pattern language in the Gang of Four book so that book came out in I can't remember 1995 1996 and forever destroyed the term there's not a single pattern in that book there's no language there's no sense of what the Japanese call moom you know Shih Tzu the quality without a name the nameless quality the thing that makes me feel warm and human and a pattern must do that so again it's this technology that takes over the focus on unit testing I've talked about patterns have talked about there's these prepackaged technical solutions I invited the creator of modern patterns Christopher Alexander to speaker loops law in 1996 when I was program chair and he said you know you're a bunch of lackeys tell me what to do daddy and I'll do it here's your template implement this pattern and I would say that what we've done is we've shirked our responsibility to think Alexander would say we have shirked our the to feel this is about feeling and about human sensibilities and making what Richard Gabriel calls habitable software would you live in this code is this a nice neighborhood can you really find your way around is it beautiful would you live there now we want to sell our code and move somewhere else right there are some good parts and they're very little understood so I mentioned you know what part of model view controller handles input events it's not the controller it's a tool and people people just don't understand this how many of you draw object diagrams now class diagrams object diagrams how many of you draw class diagrams bunch of nerds in the Nerds you know object-oriented programming and agile have become the Nerds revenge how many people here use use cases good for you what's a user story how many of you write user stories it's not about writing a user story is a promise for a future conversation between an end user and a developer it's about the conversation in fact my wife get to it says the original purpose was that they'd be handwritten on a card and the reason they were handwritten on a card is so you couldn't read it and you had to ask the person what was there it's about people and interactions I've heard that somewhere individuals and interactions over processes and tools all better how many of you keep you user stories in JIRA losers all right the languages do not support multiple classification and I'll get to back to this later is that and this this is really a German thing and I'm from Denmark and you know we have our Germanic heritage as well but Germans think in hierarchies and you know I go to a scrum course for a large German company or a scrum talk for a large German company here and they have hierarchies and they were describing me the hierarchies and we have these these hierarchies of classes you know Germans love their hierarchies the world is not hierarchical why do we like hierarchies because you want someone to tell you who do it to do you want someone to tell you what to do it's a command and control system now there are some places I've done a lot of work in Germany over the past thirty years where people come to work they know how to take off their later holes in they go to work they're perfectly good agile people and they put the later holes in back on when they go home again but there is this thing in the culture that you need to be attentive to that goes very very deep and it's very broad and we see it a lot in the programming languages too now I won't go into depth in this but the nature of nature is that it's very complex there are multiple tops and if you start organizing things into hierarchy you're limiting your ability to express stuff now not only have objects gone wrong but I mean agile has also washed its way so people thinks it means fast now remember agile came from scrum which come from the Takeuchi and Nonaka paper which come from TPS all there's this wonderful how many of you defer decisions to the last responsible moment so there is this notion of the last responsible moment in TPS but the word deferred doesn't appear anywhere that was introduced by the XP people because it means you don't have to think so what the what the lien people say is that the last responsible moment is the moment beyond which your ability to have any control over effect is taken away so you line up all your decisions at the beginning of a product the decisions you anticipate making and you organize them by you by their dependencies you don't make the decisions you just list them and order them and then it's a program that you execute and when you get to that point you make the decision and of course you're changing this decision tree all the time how many of you have one of those lists well in scrum it's called the product backlog except people order it by priority no it's not priority it's interesting about priority and a product backlog its delivery order and it is ordered in terms of the dependencies using a technique called as a design structure matrix and then I'm going to pull decisions forward I want to make decisions as early as possible because it's by making decisions that I get information and get feedback if I just sit there waiting until the last responsible moment comes the system isn't telling me anything I want the feedback what part of feedback do you not understand about agile it's about pushing out a little bit so I mean the agile people got this completely wrong they completely reverse a sense and now in the meantime they're going fast the Toyota productions people say take long deliberation and careful thought for each of these decisions that are on your product backlog there's nothing about fast in the agile manifesto agile doesn't mean fast it means people individuals and interactions okay it's not using you know doctor and the current continuous delivery tools do you know how much customers hate continuous delivery developers love it I was at a conference I was talking about this one so it was the continuous delivery conference in Stockholm and halfway through the talk I thought oh gee I wonder if my host is angry at me and I said you know I sent you my slides for you to review these to make sure you wouldn't have a problem and he kind of dropped his head he said well I couldn't read them because I hadn't taken the most recent release of keynote on my Mac continuous delivery I mean he didn't take his continuous delivery because people are so annoyed social design with CRC cards has been replaced by individual or pairwise testing testing cannot do anything to ensure the absence of bugs there's very little about the user mental model how many UX people here every object-oriented programming should be a UX person an HCI person it's about getting that object on the screen so I'm closing the loop to the end user mental model if you don't understand first principles of mental model elicitation you have no business doing object oriented programming like you can do of course you can use class oriented programming which is kind of abstract data types with polymorphism but abstract data types are not object oriented programming it's class oriented programming and object oriented programming is so beautiful and so deeply human and results in such wonderful powerful dynamic human systems I just don't see it anymore I certainly don't see it on the web oh gosh try to make an airline reservation with any you know with Lufthansa and that's a humane experience processes and tools like JIRA and testing over individuals and interactions it's become about programming instead of about people and certification over customer collaboration how many of you are certified scrum masters will be I mean I tell I'm a certified scrum trainer and I'll tell people the way you get my certification I tell people I don't certify you the scrum Alliance certifies you the way you get my certification is the first time you're fired for doing your job and standing up for your team that's how you get my certification by the way ken Schreiber's been fired more than any scrum master in the world but once by Jeff Sutherland just ask them some time they'd love to tell the story so agile has has lost its roots I mean for example this whole whole notion of end user collaboration I just was at the DGD conference a couple of months ago um Eric Evans and I have become I think very very good friends there's a lot of mutual respect but a big difference in ideology but but he doesn't believe in understanding my favorite management quote I was at AT&T for 20 years and one management and the fit of passion said we don't want to understand this we want to improve it right that's kind of what DDD is I mean you start reading the DDD book and he understands it needs one client and poof there's code for one class I mean well how about the other classes might they matter and might they affect how I design this well no it's another bounded context and bounded context they're kind of like microservices they're completely independent I was going to rewrite this talk and say that kind of the root cause here or there are no root causes is that we're trying to divide things up so we have control this is mine all mine and I have control over it rather than doing systems thinking or team thinking or thinking in terms of networks of interacting objects we've completely lost this notion from patterns of the quality without a name that this feels right that this adds value to society that this comes out of validated moral imperatives these are Alexander's words for patterns a pattern is a moral imperative that is socially agreed we know it works it's been proven how much proof was there behind the favorite idea that you're going to take home from this conference or do you just believe so we all want to believe in something and this has become about religion and a lot of the language arguments and agile arguments are all about religion and I belief and there's there's very very little data now I'll grant you the data are hard to get but you know we're we're very close to one of the the great thinking centers of the world up here at the University with whom I used to work and I mean engage these people get them to to help us get some data here rather than just you know running by the seat of our pants and last the whole notion of planning an analysis has gone away which causes more rework oh we've renamed rework we call it refactoring yes and Wow oh he's a good person he refactored it's waste so we have it all this focus on product now product focus is kind of okay as long as it doesn't take over but the whole foundation of TPS and the whole foundation of scrum is build the right process and you'll build the right product and this is something where Kent raver in particular is is very very strong he says scrum is an educational tool it's about learning we'll talk more about this a little later and again with agile the good parts are understood I misunderstood what's the purpose of the daily scrum say a little more okay I like that I like that someone else I mean the usual answer I get is we're going to come together to communicate or we're going to report to the scrum master or know the purpose of the daily scrum is to replan the Sprint you replay on the Sprint every day so it's a small sprint planning meeting and says and Deb Sutherland never if Jeff Sutherland is around never say reporting he'll knock you silly okay let's say you're a world-class scrum team what percentage of your Sprint's should you fail where I define failure it's not delivering every all the PDI's you took into the sprint your world-class scrum team what percentage of your Sprint's do you fail that's not how scrum works sorry it's not continuous delivery i define a sprinkle upfront and is continuous during the sprint if I'm not going to meet the Sprint goal we abort the Sprint no that's not scrum what's the what's what percentage and the answer is 50% it's just math how do you understand the burndown chart a burn down chart is charted with the average of your velocity using yesterday's weather a velocity has a variance usually a plus or minus 20% or so and the mean of that distribution is what you take is your velocity so half of the half of your Sprint's will be above that mean and half of your Sprint's are below that mean if you're not failing 50% of your Sprint's you're lying you're cheating you're cooking the data it's just math this is just how velocity works what's the best bug tracking strategy in scrum not to yeah we don't track bugs in scrum we fix them now fixing bugs is always the highest play or anything if a bug comes up you drop whatever you're doing and fixing the bug now is number one priority most of you put them in JIRA why no one will ever find them there how do platform scrum teams interface with other scrum teams there are no platform teams in scrum a scrum team produces a product which is dun-dun-dun ready to go live at the touch of a button it is not something that goes to another scrum team that's a handoff and handoffs are against every principle of TPS and lean every scrum team delivers live to the market there are no the are no platform teams that's a misunderstanding of scrum so I mean this always misunderstandings so where are we today you know instead of individuals and interactions we have individuals in j-unit instead of embracing change we have deferring to the last responsible moment agile fears change I'm going to defer that change until the last moment that I can deal with it no you do not understand it's about embracing change instead of customers and collaboration we have team written user stories the development team is going to write us requirements in that level someone's laughing you know this story very well don't you yes quality working so software oh the unit test pass who did the who did the presentation I'm done today it was really brilliant oh you're up there somewhere aight guys and i when i saw that unit test slide i thought i'm gonna eat these guys alive at the end of this talk and then you was brilliant what you guys did that was a great talk great talk instead of having crc cards and things like can fit for morphic design we have individual class design i mean where's the people with crc cards i get the team together and the people are reasoning about the use cases and reasoning about the design it used to be programming by difference now let's refactor and test quality in it used to be engaging users through end-user mental models now we just let's put a template in here call the design pattern and used to be called user centered design and now it's about TDD and unit testing most unit testing is waste one of the common enemies tools over people managers can buy technology and managers in the end have a hard time controlling people so you know they buy stuff like JIRA that that they can use to control people and more than half of the engagements I've had with clients JIRA is in some way used by management to control and limit the self-organization of the team automation several talks your own automation talk about that in a second it's not about tools it's about people commercialization extreme programming came about because the people couldn't make money selling patterns scaling the big dumb companies now want you to go in and paint all of their thousands from development numbers you know to be scrum people so all of a sudden scaling has become big commercial business for the training and consulting industry I'm I went to the retrospective facilitators gathering and bath a few years ago and Kurt who wrote this wonderful book on retrospective said I mean there's a lot of people here they've written books there they don't get it they're cashing in commoditization companies want one process and therefore it's scrum to deliver one piece of software now object-orientation is personal it's about personal mental models we have the problem of simplification my cones test pyramid it's all based on unit tests user stories we have seen some talks about architecture which is about structuring your software how many of you structure your requirements I think gadget gives us lovely talk where we add something to the user story to say this is dependent on another user story and then we add a test card and my cone has all of this instruction for how you add additional cards behind your your user story for dependencies for test cases for all of this he's reinvented the use case but use cases are bad no I mean we just don't understand there's this oversimplification that's going on solid another oversimplification tough to think about objects let's think about classes and use some some heuristics that were outdated 20 years ago when C++ had multiple inheritance and last ignorance I mean doing class oriented programming instead of oo the purpose of the daily scrum the per sundnes the sprints the scrum teams fails how does this stuff get out there where do people get these ideas our professors at the university teaching them now where do they come from conferences how about automation lot of automation talks at conference Toyota which is at the root of the Toyota Production system is in the process of pulling robots off of its assembly line and replacing them with human beings because robots don't learn and this is about learning automated testing no someone was that you guys again the exploratory testing that was in your talk the purpose of running a test is to find out what tests you won next with this set with the exception of regressions automate your regression test that's fine but other than that I mean most of your testing should be exploratory testing not automated testing the purpose isn't to make the green bar come up so how do we restore focus here some ideas in terms of being about people one of the very exciting things I've seen emerge recently is something called mob programming how many of you have tried mob programming Murray know about mob programming so it's kind of like pair programming except it's the entire team you have one person at the keyboard they may not think they may not talk the only type you have a facilitator and then the rest of the code the rest of the team writes a code and tells the typist what to type and then you switch roles after a few minutes swap people around this is I think a great way of getting the individuals and interactions back into play just see our C cards bringing those back organizational learning beyond process to structure I'll talk about this in a second just good UX knowledge go back to school get some knowledge on just basic stuff God's law mental models you know what it what it means to be able to elicit the kind of ways that our users are thinking about things so our software can meet them halfway this is what object-oriented programming is all about and with respect to both the organization learning and things like interfacing with end-users the real power here is in process and a balance of process thinking and product thinking together now there's some other light houses kind of on the technology scale that I think are going to help on a very low level and I'd encourage you to start looking into these things like JavaScript it's a real object joint a programming language and really understanding real pattern languages we have a couple of communities now that are developing real pattern languages one is a pattern language of scrum it's public it's on the web you can find it but here's where a lot of the power is for four capitalizing on the kind of ideas that the Takeuchi and Nonaka had of bringing forward the knowledge of the organization into the current day and maybe some day and use your program ability this again was Kay's original vision it wasn't that a programmer wrote this stuff for the for the child the child will this stuff and a very small language small talk was designed for children for them to be able to write their own code blindingly simple all that you small talk in the early days and that was largely a marketing issue which really blew up I can tell you a nice story over beer sometime about lungs and small talk and Park Place systems I was brought in to clean up that mess there's something else which I've been following for years and there's some wonderful British literature by that it talks about design as a field and recently this has gotten a name it's called the design movement Christopher Alexander the patterns guy was also part of this but we also have books like this wonderful book edited by a German woman called software development as reality construction what's her name I can't remember standing here on my feet but a lot there's a lot of literature that no programmers just have ever read that's instead of having a method or a tool that's going to get me to the end I start with an understanding of the problem and a vision of the solution and then they have some techniques for getting there that are very non Cartesian in terms of some are gave up you know how to talk about their retrospective a good rep respective to work on your process is a three day exercise it takes one day to get drunk another day to kind of dig into the problems and then another day to come back into the workplace and there's some wonderful literature and organizational learning a lot of it comes out of royal dutch/shell you see some of this also in Peter Sanjay's work that talks about organizational learning at the surface it's process this is the iso9000 kind of stuff what does process come from why do you have code inspections well because I have coders and I have people who are not coders who are inspectors it comes from the organizational structure structure generates process if you change process without changing the structure the structure wins so the real payoff is in process this is called double loop learning it takes knowledge and understanding it's about changing the structure so in a lot of the talks here about retrospective I'm hearing a lot of stuffs up here in single loop and in in a year they're going to be right back where they are now because the double loop stuff isn't happening and the real stuff is in triple loop identity who are we what should we be building I knew a company that used to make rubber boots and tires and then they started making cell phones maybe they ought to go back to tires and boots this is Nokia Facebook was originally kind of a pickup place for college guys to find pictures of women and evolved into the social network so a real retrospective is going to go deeper than this it's the problem isn't a better definition of done and a better definition of shippable it's to recognize if having both a separate definition of done and a definition of shippable creates a handoff and is going to create rework and create waste now why wouldn't I bring it up on my retrospective oh because we can't get the product owner to to buy into this you know what I've never met the product you know how did this you get hold of him yeah he's a person and I can deal with the technical stuff in my retrospective this is about courage not just tell me what to do daddy so this is really making an investment in the end it comes down to failure to dream we all want to be risk-averse and that tempers our dreams that throws waters on our dreams we tend to work within areas we can control and networks of objects and teams of individuals take us beyond the scope of our control dream to do great things Alan Kay was dreaming to do great things with educating children sending to the last slide horses quote from anyone know this quote the strategy for bootstrapping the poor out of poverty has been a model for freeing hundreds of thousands of software developers from developer abuse calls by poor management practices who wrote this this is the scrum handbook by Jeff Sutherland Jeff's on a mission get me over beer sometime I'll tell you what the real mission is this isn't about daily stand-ups this isn't about productivity this is about something much more deeply human and you look at the people behind us like the Allen case and the Jeff Sutherlands and they understand this that's why I'm here what can you do after this conference for each talk ask was there compelling evidence for the claims that this is better than anything else is that it even works at this conference for each talk ask how does this improve the quality of life and for how many people and try to take home five ideas that will help your teen and crews increase the human value of your product or service not just the bug count not just meaning that KPIs I mean in terms of value I'll end with a story where there was a woman in Jeff's team who once wanted to get a 10 on merit review that year and Jeff didn't believe on getting numbers but you said all right to give a 10 we need to do all these things and she got a 10 by the way getting a 10 one of the criteria was you end up on the front page of Businessweek pretty high pretty hard bar so why doesn't he believe in these numbers and Jeff says because even if the individual fails they learn something and the team succeeds so if the individual fails and the team succeeds the individual doesn't matter if the team fails and the product succeeds the team doesn't matter if the product doesn't succeed and the companies does succeed the product doesn't matter and if the company fails and the nation succeeds the company doesn't matter what matters to you I'll leave you with the thought I hope some good thoughts can come into your head from the things you've learned here it's been great being here thanks for the opportunity to come and address you
Info
Channel: Verein der Karlsruher Software-Ingenieure (VKSI) e.V.
Views: 18,771
Rating: undefined out of 5
Keywords: Keynote, Entwicklertag, 2016, Karlsruhe
Id: DOyNfmqwR98
Channel Id: undefined
Length: 58min 10sec (3490 seconds)
Published: Mon Jul 18 2016
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.