 Welcome to Agile Roots 2010, sponsored by Version 1, Rally Software, Beria, Amirisys, Agile Alliance, and Exhibition Tourism. Growing up Agile by Pat Maddox. Kind of cool, you know, like I hate the rock star moniker that gets thrown around in programming, but it's kind of like being the Beatles playing for a standing room only crowd here. There's a lucky that you get a suit chair. Yeah, I figure you'll come away from the talk, saying, Pat Maddox's talk was the best. I'll say, well, what do you say? I don't know, but the suits were really comfortable. But I'll take it as a challenge to make sure that you guys engage in a way for the next 20 minutes. So, alright, so I'm going to talk about growing up Agile, and the point, the way I snuck my way into this talk, I think, is that I think I have a unique perspective on Agile software development, or at least unique from many of the people at this conference. But one of the ideas that I've kind of had over the last year is that software makers change the world. And this isn't something that I thought when I originally got into software. You know, I got into software because programming is fun. And I still do it because programming is fun. But I think this is very true, and I tell people this idea, and they say, you know, they're just laughing, and they're like, yeah, I know it's a big stuff. But I've got a couple good examples. This is a project called Baobab. And this is actually Baobab. This is Jackie Maher. She's a programmer that worked on Baobab. And Baobab is this organization that is fighting the AIDS epidemic in Malawi, in Africa. And they basically got like these $50 little laptop type things. And they're creating open source systems to install into different villages and hospitals in Malawi. And their goal is to educate the communities there. They want to get people in, get them tested for AIDS. They give people comms and they tell them about safe sex and how to not continue this AIDS epidemic. And they're doing it using open source software and writing open source software. If you go to GitHub, you can search for Baobab and you'll find open source systems that they're using. So that's a really cool project. I think it's very worthwhile. Another quick example, this is the Sunlight Foundation. Their goal is to make government transparent and accountable using technology. And they're doing a whole bunch of different things. They record all the different votes in Congress. And they're working on an open source voting system because they think voting systems are controlled by three different companies right now. And there's a lot of debate as to how valid they are sometimes and just a lot of problems with them. They also collect information from basically every single government agency that there is. And they compile it and they publish it after people. So one of the interesting things I saw when I wanted to go check this out the other day was they had the British Petroleum. There are 8,000 reports for the National Reporting Service of spills and leaks from British Petroleum facilities, including over 550 from the same area for that platform recently. Which makes me kind of wonder what the National Reporting Service is reporting and who's reporting it to, but that's a separate thing. So you've got this foundation, which is trying to make that stuff available to people throughout the United States. And this, can you guys see that back there? It's kind of dark. Well, this is one of my friends, Jermon Garcia. He is, I was talking with him at Rails Conference. He just launched a new project in the last few months called Pactico de Antoinette. And he lives in Spain. His idea is that he is going to revolutionize democracy first in Spain and then in South America and hopefully throughout the world. The idea being that every person gets a single vote. That says, when a person wants to vote, we can know. One person wants to vote, why not? And although it's kind of a scary thing, if you go on YouTube you see all the comments. Maybe you don't want to get people on the internet vote. But still, in Spain, according to him, I don't know anything about Spanish government. But a very corrupt system. He also sees a lot of things going on in the world that he does not particularly respond to. We have a lot of war. We've got environmental disasters, usually, you know, man-made environmental disasters. So, in corruption everywhere. And so he's trying to put somebody in, he wants to put a representative in government that's accountable to the people. And so I would have a vote on every issue. But because I don't care about every issue, I could delegate my vote to a particular person, or, you know, a politician, or some party-like repeat or whatever. So I vote on the things that I care about when they get delegated. And eventually you've got the people in Congress who are actually voting according to what the people want. So, three projects, all changing the world in some way. And I think that, you know, everybody that's been in software for, you know, people have been here for decades now. And I'm sure you guys have come up with some of the examples of your own. So, of course, not all software is like this, right? There's a continuum of goodness. I think on one end you've got the virus writers. They don't attribute anything positive to the world that's at fault, negative. And then you've got your AIDS fighters, the democratic revolutionaries, all that. All the people wherever it is that maybe I admire, but I'm probably not going to fly to Africa and spend six months there with no wireless. This is a bigger wireless than that. You know, and then somewhere in the world you've got the apathetic code monkeys where people are just kind of going in and writing their code. And, you know, I don't really get the shit about what's going on or what they're doing. It just kind of takes their commands from their box. Somewhere in between, hopefully, between the apathetic code monkeys and, you know, mother Teresa from the software world, if you will, there's us. And we're working on all different kinds of projects and coming to conferences like these and sharing ideas and spreading ideas. And the ultimate goal of all of this, everything that we're doing and everything that these people are doing, is to create value. This is trumpeted in animal community, you know, ever since agile originated. And I think there are two major ways that I think of creating value. One interpretation is a very simple business sense. I create something that other people pay for. So we always talk about we need to create value, create value. What is something that I can build that my boss can sell to somebody else and so I create a value in the world. But there's also a personal interpretation of it that you create change within somebody, have an effect on them in some way. So if you've read any of Seth Godin's stuff, he talked about everybody being artists and me sharing something with somebody and creating changes. So we want to create value in some way, which now on a business level is what will somebody pay for and on a personal level, how can I change that? Speaking of change, agile software changed the software world. I mean there's some folks in here that were at the very forefront of agile software development and agile thinking. And they're working in very dysfunctional organizations. They're working in organizations that maybe never ship code and if they ever do ship a project, it's buggy, it costs way more than it should have when nobody cares about it. And they're working in organizations that have a strong cover your ass culture, a lot of infighting, people are segregated. Nobody is actually working with each other to create value. And so what agile does is to propose an ethical value system. As Diana talked about yesterday, agile software development, we're trying to make people more productive and we're trying to inject more humanity and sustainability into software development. And so with this ethical value system, it's a system that lets people have courage in the face of uncertainty. The idea that we're building software and we're not quite sure what it needs to do and we'll find out and that takes some courage saying I'm not quite sure what's going to happen and it takes courage to look back at the last three months of work and say you know what that wasn't quite right, we're going to have to toss it all out and start over again. Or we're going to need to rip out this channel to do something new. It takes courage to talk to people, like genuinely talk to people on a deep level and find out what they want and how you can help them. And it takes courage to want to change. You know, Luke gave that talk this morning and he stood there in front of the, what, 400 people, whatever it is and he said I want to change the world. And I think that that takes courage as well and the agile is giving us a platform where we can have that courage to change the world. The other thing that agile kind of really brought about is the idea of humanity, where the software is for people. That we're, at the end of the day, the stuff that's going out to people, it's real people, not us. We're people, but we're the techies. We're the ones that really think like a computer more or less and we're trying to build software for regular people to use to enhance their lives. And every time we build crappy software, we create more frustration for them and the agile says they were bringing negative payouts to the world or something like that when we really want more money. So it's four people and it's five people. We are the makers of software, we are the ones making all this happen and it's important to take us into account as well for this whole thing and ultimately with all of this, we're trying to create some form of change. We're trying to create it into people for whom we build the software and then we're also creating it for ourselves. We spend a lot of time doing this stuff. We put a lot of our emotional energy into this and hopefully we get some kind of a change. Although of course this is not an overnight switch. Agile has been doing working on this for about 10 years and if you look at the major things that Agile is focused on it has been focusing on certain bottlenecks. What's going wrong with the software process? How do we fix it? And the two major bottlenecks that Agile was meant to tackle is quality and feedback. You're building these projects that came out buggy and you're building stuff that people don't really care about. The customer asks for something, the developers work on it. They say, this is what I want, three months later the developers come back and say, here it is and the customer says, how are you doing? So how do you create a system that lets you build quality into the software from the get go and how do you get feedback on the stuff that you're building? So the Agile paradigm is requirements come from the person funding the project and we actually have a name for that, we call it the customer and the idea that you will talk to the customer and actually get input from them is revolutionary. Most of the time, before this, it's just go build this but now we actually have this idea of an on-site customer. Somebody's paying me to build software and I'm saying, you can't just go off and do your own thing and sit your ass right there so that when I'm not sure what to do I can just look over my shoulder and say this, what do you mean? And so Agile for the last 10 years, working on this stuff has really been a perfecting process and how do we create this sort of process that lets us have an active communication loop with our customers and they get feedback on the stuff we're doing and build it at a high level of quality. So I'm going to change gears for just a minute to tell you a little bit about my story because I'm up here so I talked about myself for two minutes and I think it also helps present a perspective that I've got here. I got really interested in programming in second grade. I had this really great teacher, Mrs. Fletcher. She was my computer teacher three days a week and she saw that I got incredibly bored in class like I was just not engaged in the classes but not doing her activity. I would go off and do other stuff and she recognized this and so over time she just came up with new activities for me and she told me to go sit in the corner and work on stuff and not just kind of do whatever but she came up with a new thing for me and when I finished those she actually gave me the logo programming manual because we were working on Apple 2GS and she was like here just go whatever. So I should thank her. I might show her. Mrs. Fletcher, when you watch this I want to say thank you because you could have just written me off as hyperactive and sent me to the principal but because of that I get to be involved in a fantastic community in an amazing conference like this. Did you test drive your logo? I did not test drive my logo. I did not want to test drive my logo until... I'll tell you. So of course you can't really program in your second grade, seventh, seventh grade. My teacher told my mom about hey Pavaralex computers you should pay attention to this. So my mom made me a book deal. She basically said I'll get you a computer book and whenever you finish it I'll get you a new one. Oh no. Right you are. Her thinking was these are 400 page highly technical, dense, dry manuals. I'm going to read I'm going to spend a week on this and that's it. I'm going to go back to climbing on trees and pushing those over. Oh that's it. That's my second grade. I don't know how to get a second grade. Studying. Studying is what I did. But she bought me a bunch of books and after five or six that 40, 50 bucks a pop she was like okay I'm just going to give you the bookstore and you get to hang out. So I wandered into the bookstore and one day I saw this thin little white book called Extreme Programming. And this, you know like scanning the books looking for something new and my eyes came across this and I immediately snatched it out and I basically, I sat in the bookstore and I read and read and read and I read up until the time when the bookstore closed. I was there from right when I got out of school to a few minutes before the store closed and when my mom came to pick me up I begged her to buy this for me. I was like mom I have to have this but you have to understand there were maybe 20 pages in this book that I understood. I didn't get it. I didn't get it. Not a clue. Not a clue. But I knew. I knew in my soul that if I said this over and over again I would learn how to code while base jumping off the Empire State Building. Yeah. I've seen you do that by the way. Play short. Coding while our board was meeting. Yeah that's, you know what's more difficult than coding while base jumping and coding while arguing it out there. So then I finally go off to college I'm really excited. You know finally I'm going to start studying this stuff and learning from the best in the world. I will join the ranks of the elite programmers probably somewhere like Microsoft and you know I'm done with all that open source stuff where people are just kind of hacking in their bedrooms and they're starting to probably sort these things. Any virus would have happened. And I went come on off to three months and turned out it wasn't quite as cool as I thought it would be. It has a little bit to do with the fact that it was freezing cold and the same hard physics process I actually had a lot to do with it. But mostly it was, I had two experiences. One, my very first day of class I used rational rows to draw a UML diagram and then press the button which generated code and then we filled in the code. Five years of this? If that is what professional software development is like I want no part of it. Single handedly killed my spirit for software. And the second thing was I had this class where our professor gave us assignments and we would push the assignments to a server and it would compile our code and then it would generate input and then it would tell us what the output was and it would tell us if we met it which people here might call it tech. And considering that I read extreme programming explained when I was in well I guess it was the ninth year. So I was fifteen. I've been doing test-driven development for two or three years at that point. I'm not very well-minded but well enough that I knew the basics of things. Well enough that when he said we don't penalize for number of submissions I said yes. And I submitted the thing and then I come back the next day and he's got this bar chart on the wall and it's showing there's just numbers and you know, brought the bar chart and on one end was the best students in the class. There were two people that only needed to submit their code once and they got it perfect the first time and but most people were like four or five submissions on this and then there were like two outliers and really really bad people that made submissions and then there was me over here and I was twenty-four and he uses this chart in his lecture on mistakes in programs and how we make mistakes it leads to bugs and bugs are the reason that software is late and over budget and people don't want to use it. So let's ignore for a minute his less unstellar explanation of why software projects go late but he I thought he was just being an asshole frankly and I went to him after class and I tried to make my case you know I was just using I was getting feedback I didn't want to stab around in the dark I wanted to know what I should build next I'm just submitting and letting them tell me and I tried to tell him that it only took me an hour when my friend you know it's like three or four trying to get his assignment done but he said he said well your project manager isn't going to be so forgiving and he said that I won't have that kind of help on the final so new policy you get five free check-ins after that he takes off two or three percent of credit so I quit college and I play poker instead and I eventually got back in the software because I wrote like poker training tools and one of my friends was like hey you should make a website out of this this will be really cool and so I did when Rails first came out and that's kind of how I got into the full time again and I'm telling you this story because while the details are unique my experience at this point is not particularly unique that people come to software through different routes and I want to focus on what I call the open source community and some examples are the Ruby community and Python as well but these are any community that has a really strong open source culture so if your code if when you ask how do I do this somebody says oh there's a plugin or a general library on GitHub that's a good sign the interesting thing about the open source community and I'm talking about the people that are working within these communities in general not necessarily open source projects but the people that are involved in using these kinds of languages and go to those conferences and whatever the interesting thing is that most of the agile practices are built in and they're built in partly from open source like the actual attributes of open source and partly just the people that are involved so to start transparency and openness built in you're sharing your code with everybody everybody can see what's going on we have discussions in the open on mailing list the few times that something gets done behind closed doors it creates lots and lots of drama and I'm talking flame wars that extend four days to weeks about why this person's an asshole and why that person's an idiot whatever when as soon as you get rid of transparency and openness drama occurs and this is on something that people don't even get paid for if your ass is on the line at work and you're not transparent and open what do you think is going to happen so this is something baked in to the open source culture in general absolutely you know it doesn't apply to everybody but in general of baked in trust is another big one who here needs trust on their project good answers and two people are asleep so a really cool thing about open source in general is having trusting people to do what they want or what they need with the tools available to them and it's anytime you say I need to do this and somebody working on something says no you don't it's that's another source of drama another source of frustration and there's no value for you to do open source communities trust you that trust you enough that they go do whatever you want and if there are enough people that can benefit from that then they'll start to without that as well and that takes us to collaboration collaboration built right in to open source we're sharing our code this is people connecting people communicating people working on projects together and ultimately come back to the agile thing value all of our projects that we use are valuable to us in some way and if it's not valuable we don't just just don't use it so some of the practices the agile put on and talked about are kind of based in in the culture and it doesn't come just inherently from open source but it's just the people that are involved in this do this stuff and test development development is a really big one for the last ten years test, test, test test first test drive test driven design do acceptance test driven development and if you look at the Ruby community for example I'm a big Ruby guy here's a here's a chart that Hampton Catlin that he took a survey and he basically said what are your thoughts on automated testing and 51% say it's required 49% say it's not so what percentage of like the Java community in general says would you say that 51% of the Java community says automated unit testing is required I don't know and I've seen and the interesting thing is this is actually from Hampton who said that automated testing sucks it's not useful you're going to have to test it anyway so the people that read his blogs you could say are sued sort of the not required part but the fascinating thing is there's a third part of it which is do it often and that's that's 38% I think I got my numbers slightly long here 51% said not required so now 49% say automated unit testing is required 38% said do it often got 13% of this community said we don't need to test 87% think that it's either required or beneficial in some way and when you go to the Ruby conferences like 2 or 3 years ago there was a question raise your hand if you test and people would put their hands up and I remember when David Shalamsky presented R-spec he said so who uses R-spec and about half the crowd put their hands in the air he said who uses test unit and the other half of the crowd put their hands in the air people the idea of hey you need to test is not an argument that you have nobody ever said hey you should test because guess what you guys have been making that case for 10 years actually Alastair I was when I first met Alastair he was like I just don't get this test driven involvement but what? like I thought that you know that was the fundamental key of testing people like yeah like I write some tests you know testing the little things like yeah not very useful I know Ryan had a better design so not everybody but a little crazy so the point is in these communities we just test by people and other things even more for big by the way we get 4 points for big short iterations that's something that part of it is we have such low overhead in our development environment that the like you just build a lot of stuff in a week like if you a week is a long there is too much if you were to write Ruby in Rails for a month and then demo it to your customer you would overwhelm them it would take two days just to show them everything that you're gonna build it like that is just crazy another cool thing is that the teams are really small typically you'll have anywhere from 5 to 10 person teams like it doesn't get much bigger than that like there's no such thing as a 50 person Ruby team like it just does not happen and it's because because we've got the tools that allow us to move really rapidly and just get a lot of stuff done with a core core principle of the AdWords software development and along with these short iterations go frequent releases most most teams are releasing once a week and once every two weeks a lot of people will release multiple times a day there are even if you go to these the conferences and you say is anybody doing continuous continuous deployment so every time I check in it runs oh yeah continuous immigration by the way check in run the test in your CI server and as soon as the screen ship it out to production production it doesn't even go to staging to get demoed it's just like you know what this is good enough we'll show it to our customer and I met five people at at RailsConf last week that are doing continuous deployment so you know it's not an overwhelming number at all but I'm almost to the two hands which is significant milestone excellence in craftsmanship it's an integral part of this community if you talk with talk with people they really talk about being craftsmanship and I went to the software craftsmanship conference in Chicago last year and Uncle Bob was giving a keynote and he basically says he wanted to get a breakdown of the different languages that people were using to put food on the table so he said how many people are programmers and like 60% of the conference put their hands up and then he said how many people are Python programmers and there was like 30% and so you just had a smattering of like Java and C-sharp and like at that point everything was equal right if you weren't Ruby and you weren't Java you were if you weren't Ruby or Python you were that other thing and this idea this idea that we it's untouchable alright this is a very very strong part of these open source community culture and so when you pull this all together you get de facto agile people aren't learning this stuff from the agile community they're not even reading agile books it starts from the top right this is the third edition of the book with agile web development with Rails first edition do you look first word agile right in chapter 12 of this book is where they introduce testing like 400 to 450 pages and they spend 40 pages on testing and testing development so if I'm like hey this Rails thing is really cool it's going to get me a job or I'm going to do my start-up and make lots of money how do I do it the very first book I read chapter 12 I'm learning about testing they spend 10% of the book 10% of the pages in this book on testing explicitly on testing in the introductory manual to this entire culture so it's coming and that's why when you go to a conference you don't say do you test you say how do you test what tools do you test what kind of testing do you do all this stuff that we've been pushing for 10 years not necessary for this other part of the software community and so my question is why is there so little collaboration between agile community and what I call they're the new agile community generation XP the people that are doing people that are doing XP without even calling it XP right we were here a few months ago with Mountain West Ruby Conference and Alistair comes on stage to show it's $50 and like if you live in Salt Lake City you knew who Alistair was and if you were kind of a crazy person that once tracked him down an hour and a half a week just we'd spend your book you also knew who he was but the vast majority of people are just like who is this crazy dude and why is he drawing shit on the board and given given the the contribution that the agile community has made to software I think it is a bloody shame that Rubyist I can't say for the other communities but Rubyist don't have a clue what's going on here so if you ask the open source community what they think about so yeah there's a whole agile thing there's this movement telling about it and I can say that's kind of boring like we've been doing this stuff already what can we possibly learn from that and they're also a little bit slimy you know that that there was this thing a little while ago that consultants do that says you take our classes we guarantee you 50% faster time to market and 25% more for activity and actually after I put this slide on I found out that it's rally one of the one of the sponsors here so I don't know what protocol it is on ripping a sponsored conference you see Dan as well as well as Rubyist's 2010 awesome I won't see you at 2011 like with all due respect to whatever work they do anytime somebody in software comes to you and says 50% faster time to market and 25% more for activity your inter skeptics should like be ratting around in your chat so you know it should go a lot way out and look for somebody to beat down like what the hell is going on and it's triggering the folks that I know that would have exactly this reaction it's triggering their mental antibodies like nobody can do this it's like well that's because they've not been looking at what's been having an agile and open source it's nothing you can't do if they have to spend money to do it yeah it's that it's the idea that you write me a fat check and I would give you all these things and I would produce and that's the only way there's no benefits that is the that that people are people are making it happen and it's very very difficult stuff to do and the fact that you can guarantee it like that because it literally says guarantee not gonna happen so agile really hasn't been paying attention to what's going on don't believe this other community that's going on I did don't really see the stuff that's going on like this is a community necessarily and you're not recognizing that there are these other communities that are doing all this stuff that is supposedly core and fundamental and most important agile and they're just doing it and to me I look at I look at that I say from from a consultant's perspective or anybody in agile and say why wouldn't I want to work with those people like yes doing agile transformations that's important it's valuable it's cool but would you rather work on a team would you rather go into an organization where the manager says you can't be test driven development or would you rather work at a place where you say hey guys we're going to test drive and you're like yeah okay so then what so I was kind of having to talk with Jeff Patton I had a chance to work with him at Agilistry Elizabeth Hendrickson set up this thing it was an amazing amazing thing the idea was that you would get smart people in the room together and build software and just see what stuff you could do with minimal and we had Alan Cooper interaction designer dude and made some money in the asylum he played the customer brilliant guy kind of crazy seems like that's you know when you get big in software you are either start brilliant and go crazy or the craziness turns into brilliant stuff for yourself it's validated so Alan comes in the first day and he tells us what we're going to build for the week and the very first day at the end of the day he's like okay so he's stealing he's like this was really cool I'm glad we did all this but I don't know what the hell to do for the rest of the week because I have this big plan but you guys are pretty much done with it today and this is he works for I mean he built his consultancy Cooper huge huge waterfall guy he filled like he they showed me that he's like you gotta look at this this is what we give to the programmers and it's like this and they do months of research and build this beautiful document it's charts and personas and everything it's absolutely gorgeous and you literally could have killed me with it if you just you know hit me with it a couple times and he's holding this thing up and he says he's like you know we Cooper we're brilliant our designers are brilliant and then I hand this off to the programmers and we know that we're going to lose 40% of the benefits right off the bat and you know it's kind of tough when somebody's really passionate and they're talking to you you're like hello how the hell do you expect to build anything off of that but now in one day and in one week he saw that he can work with agile software people and everything he thought about everything he thought about how software was supposed to be built started to get chipped away after one day and after one week gone and he's actually working with Ian in Pivotal Labs now we're going to be excited fascinating stuff this is there's been this talk been a common theme this talk about getting interactions with designers and with programmers and so we're kind of at that weight of it so Jeff I'm telling Jeff about this and he says like so why don't we want to work with Ruby people he's like well Ruby people don't care about creating value well I got new and this is the first and last time you'll ever hear this and it's on camera for the whole Jeff Patton is wrong he's got points and I have a blog post about this where I got a time so you can go check out my blog to see what I said about that but I interviewed people at Ruby conference at the rail town and I asked them what like okay what do you think of that and everybody like people don't even know who he is and they want to hit him and so and they're like they're like we get to ship a little for the first time for the first time we are able to build software and get it to our users very quickly and we're able to create value in a way that we've never really been able to before and I talked to them So what's most important? And they say, they say, we have to work with the customer. We have to work with users. So Jeff, I know of at least five people in the Ruby community that do care about creating value. And I would be so happy to get us all around a table together and do dinner and kind of talk about this. Yeah. It's selling out. It's selling out. It's selling out. It's selling out. It's selling out. It's selling out. Jeff's next year's keynote will be the rebuttal. You're not invited. Both communities seem to be missing the force for the truth here. The agile community is still focused on the same stuff, not realizing that all this change that they're working on is going on in the world around them, whether they want to involve themselves in it or not. And the open source communities, like the Ruby community was kind of looking over our shoulders saying, OK, test of the development, story planning, iterations, all that stuff. Yeah, cool. What can we possibly learn from you guys? And you have to wonder at how smart that really is to say, here is a group of people that revolutionized how soccer was made, and yet we can't learn anything from that. So this is not, you know, agile is missing the point here. It's not even about assigning blame. It's just about waking up and opening your eyes a little bit and saying, you know, this is about real collaboration and it's collaboration at the team level and it's collaboration at the community level. So what I want to do is I want to start bridging the gap because I've talked about we already agreed on the fundamentals of how to build software. And when you really look at it, what's been going on for the last 10 years of agile is perfecting the fundamentals. All this stuff, all how to build software and setting up communication structures, that's the easy part. I mean, it's hard. It's so hard, but that's the fundamentals. You have to walk before you can run. And so like the stuff that Jeff has been talking about, this isn't new. Jeff has been talking about for 10 years and it's just finally starting to gain traction. And I think a big part of it is that, is that we're just, we're, you have to go out before you can run. We're just focused on the basic mechanics of how to build software development. So when Jeff asks, how do you build a product, it was an idea ahead of its time that we are now finally ready to start answering that question and to start thinking about that question. And it's vitally important. And that is, as you see, that is the common theme for this conference. I thought, hey, I'm going to talk about this awesome new idea, we'll put interaction designers in the room of programmers and, right, like everybody's talking about it. And saying like the Ruby community that anybody says you want to build a cool product for us. And so how do you, how do you bridge this? Well, I think the lean startup ideas provide some common ground. All this stuff about designing products and iterating rapidly and testing things that means startup is starting to talk about that. And the cool thing about these open source communities like a really, really fast, they are able to create higher fidelity tests in the same amount of time that basically the people can write out, I can sit down and write out Sinatra app in an hour that lets somebody pull some stuff from you and put it into our system in a really basic way and see if that's going to work. So now we're at this paradigm shift. Talk about requirements coming from customers, but now as we talk about this week, the requirements come from users and customers. The customer half the time don't even know what's going to work. That's the cool thing about this stuff. We are building software in an environment of incredible uncertainty where we have this idea, this new innovation and we don't even know if it's going to work. And so that was kind of Jeff's point is that when you build something that you don't know is going to work or you don't think it's going to work or you have all the evidence in the world that says it won't work and then you build it anyway, you're in the last ten years and you're not thinking forward. That's that crazy quote. So we go from asking our customer, is this what you want or is this what you meant? And now we're starting to ask, is that what you want? So we test this stuff using, we put an idea out there and it kind of looks, we talk about as a computer science in software and historically people that write books say for practical purposes there's no computer science. But I think what we're seeing now is that there absolutely is software science that we create an idea and we test it. And we see how our results matter. So we're absolutely doing some kind of science. So I'm sort of running out of time but here, Agil is off sleep. That's why I'm here to tell you, right? And you're going to fall over. Now, off sleep, but to recognize what is Agil's area of expertise, I spilled that right. If you look at Agil's community it's not about how we program. It's creating organizational change. You know how many organizational change talks there are? It's about taking groups of taking diverse skill sets people and synthesizing new ideas and ultimately delivering value. And we can work with the open source community who are innovative and they're fast and intensely pragmatic. And we can work with interaction designers who have good ideas for products and this is probably where the compassion in software development comes around. The interaction designers thinking about how will this work for the user and God knows we could all use more compassion in software. Yeah. So I want to join forces here there's market opportunities I think for like as Pivotal is doing with Cooper they are going to work together and for people that are just building software and we construct it the right way that's been good it's no longer good enough you have to build things that people care about. By working with open source communities you've also got a new platform for your ideas it's like Alistair to come speak at RubyConf he's got some interesting stuff and there are people that are interested in this and I find that if you talk with them you'll find that interesting as well. This by the way is a picture of platform surfing which is like these people get on this really big platform so extreme programming right you just need a laptop that's one huge laptop So, Surgeon's Law I don't know if you guys are familiar with it Surgeon's Law says 90% of everything is crap probably it's a lot so absolutely applied but 90% of that law is crap right but what I want is I want to see the top 10% talking about the top 10% of Ruby programmers talking about the top 10% of agile people talking about the top 10% of interaction designers Let's have a conference So it's going to be called 10% So, we're going to be Surgeon Conference So you guys are our invites this is my formal invitation I want to hear from you guys we've got delegates from the Ruby community if you will here I want you guys to take, well I'm going to name them Mike Moore behind the camera and somebody to talk to Andrew Clay Shea from the view that runs this whole thing one of the people behind this amazing conference that awaits me here today and here's a really simple way to get started Ruby Conference, 2010, right around the corner in New Orleans is going to be fun So it's a friendly invitation but I'm also throwing down the gauntlet here I'm challenging you I'm challenging you to look at what you're doing I've reacted for the last few years and recognized that everything that we've done so far is immensely valuable but now we're on the next phase on software Don't be satisfied with showing people how to test drive with doing short iterations with, well the story planning stuff still means a lot of work but don't be satisfied with that I'm recognizing that we are in nearly one phase of a very very exciting industry and before we get this far how do we build a product that people carry out stuff out of the way there's going to be something new I don't know what it is and I don't know if it's going to take us 2, 5, 10, 25 years to get to it but we will so my invitation my challenge for you guys to take the next step and that's what I got