>> Doug Thompson: Hello, thank you all for coming. My name is Doug Thompson and I’m a Program Manager on the Xbox Platform Team here at Microsoft. I’m honored to introduce my Manager Eric Brechner to the Microsoft Research Visiting Speaker Series. Eric’s here to talk about his new book Agile Project Management with Kanban. Now Eric is not one to brag so I will do it for him. Amazon has this as the number one rated hot new release in software design and engineering, kind of a big deal. [applause] Several years ago Eric assembled a team for the Engineering Services in Xbox. I was a proud member of that team. I was lucky to be on it. At the time, we were always in TFS which is the Microsoft Internal Bug and Work Item Tracking System to manage our work in deliverables. Eric made a declaration once the team had kind of got into a groove and established their roles. He said you guys need to use Kanban. We must use Kanban to be better because he’d found that it was such a success in his previous teams. It was a good thing we did that because agile’s, the Kangan’s agile methodology would provide an awesome framework for us. We welcomed the change and found the migration from the Waterfall like world that we had been in to Kanban to be natural and straightforward. We could really visualize our work on a day to day basis and see the emerging patterns easily. Our team broke free from the TFS and Kanban, sorry, and Waterfall world and landed in an environment. That allowed us to work efficiently and consistently to produce high quality deliverables. All of that is great. But the thing I’ve appreciated the most about Kanban and what you’re going to learn about today is its versatility and ability to mold around the team. Eric has a few Kanban boards in the team’s hallway. You just walk down it. Each board runs differently, is managed differently. But they all have the same results. It adapts to the various personalities since the whole point is to visualize your work. Some people want to get very granular with how they manage their stickies as Eric is going to show you. Some people like to manage them at a high level. But it doesn’t matter as long as everything is being tracked and followed accordingly. That’s the beauty of Kanban. Each team member contributes to the Kanban. There’s a whole sense of camaraderie and culture around it. There’s a day to day conversation and openness that we have. There isn’t a central Kanban boss. But there is a team mentality. After using Kanban fruit for years now. The thing that I can tell you that I appreciate the most is that our team not only delivers features at high quality. But I appreciate the shift in culture that Kanban has fostered. Kanban is awesome. With that it is a privilege and honor to welcome Eric Brechner up here to tell you all about it. [applause] >> Eric Brechner: Thank you Doug. I’ll pay you the 20 bucks later. [laughter] >> Doug Thompson: Thank you. >> Eric Brechner: No that was awesome. Thank you so much. Thank you all for coming out and letting me talk to you for a little while about this. Most talks of course have slide decks and things like that, or just a chair and someone talks. I’m going to do this a little differently. I’m going to actually create for you on the board a Kanban board. I’m going to use it for this talk, okay. I’ll just take you right through it. Now, some things you should know about me in advance that Doug didn’t cover. But I’ll cover them very quickly. I’m a little, so I’ve been a Developer since I was a Professional Developer. I paid for it since I was fifteen year old. I worked at many different companies including soon will be my twentieth anniversary here at Microsoft. All this kind of adds up to my receding hairline. But what I’ve had in common all those years is I’m a little, as my wife can attest, a little OCD about how I do things. I just, I really like being super efficient about everything that I do. I’m constantly trying new ways and new things just to do a little better. Over the years just about any methodology you could imagine in software development I’ve given a try. The reason why I wrote this book on Kanban is because I have finally found my own little slice of Nirvana. It’s amazing. Doug talked about it. I’m not going to belabor that point. But it’s so simple. The book is really thin. That’s because it really doesn’t require much to describe it. I do cover everything you’d ever need to know in this book. I hope you pick up a copy. I’ll cover some of that today and answer your questions. But it’s a remarkable thing. Without further ado let’s create a Kanban board. Kanban board is very simple. The only thing you need in order to actually use Kanban, there’s no separate planning meetings, no separate retrospectives, or anything. It’s just the board. Yet it works as a project management tool for just about any workflow that you happen to have. With that let’s get started. The first part of the Kanban board is the backlog. This is the collection of stuff you need to do. You don’t want it all sitting in your head or something like that. You need to write it down. You write it down on a sticky which we’ll be doing. You put it in the backlog, simple as that. After the backlog you have your steps. The steps today that I’m going to be doing is I’m going to be answering your questions. What are the steps to answer your question? Right, well first step and this won’t come up much but it can come up. I want to make sure that I capture it. Is that you may need to break down that question. Sometimes people ask really big questions and they’re actually made up of lots of small questions. First thing I’m going to do is break down the questions. I’ll have a break down. I’m not going to be using it much but it’s important to have it there. This comes up a lot more in software development. Often you have a feature that comes in and it’s big. It has lots of different pieces to it. You really do need to break it down before you actually work on each piece. You break it down into tasks. Sometimes the features are very small and they don’t get broken down at all. But a lot of time you do, so it’s important to have that step. The next step is, after break down, the question. I’m going to answer it, fair enough. Then after I answer it I’m going to want to validate, make sure I answer the person’s question. I’m going to want to double check because I’m trying to be a good speaker here today. That’s it. That’s my Kanban board. It has just a couple more elements to it. I’ll go over those elements. I’ll start taking your questions. This really is this simple. Okay, so a couple of other elements. Each step has a, I’m working on it and I’m done with it. There’s two columns to each step. That’s important and you’ll see why as we kind of go through it. But that’s a very important element of Kanban. Many people do use boards when they’re doing just about anything. When they’re keeping track of work at home, maybe the kids homework or something like that. When they’re, obviously when they’re doing software development, or working on a project, people often have a board that tracks the work. They have a big done column at the end, okay. One of the things that’s different about Kanban is that it’s done columns for each step. That is an important distinction. Okay, now why have the done columns for each step? There’s some really complicated stuff we can get into if you’re curious. But one of the things that the done columns do is it enforces you to think about whether or not you’re actually finished with each step. You don’t get to just move the things over. You actually have to obey some kind of rules. There’s done rules, okay, so there’s done rules for each step, right. Now, just as an example we’ve got my break down step. For my break down step if I’m going to break down the questions how do I know that I’ve broken it down sufficiently? Well, I’m going to say for argument sake. That when I break it down each of the individual questions I break it down to takes less than two minutes to answer, right. That would be a nice small question. In real life, you know our teams it’s typically when you break down a feature you break it down to the task that are no more than like one to three days each. Right, that way you know you’ve kind of gotten it down to a workable chunk. But here less than two minutes to answer. That will be my done rule. Then I know that I’m done with it, right. For the answer, for me to be done with my answer I’ll want to, this is being recorded I’ll want to repeat the question and then answer it. Okay, so I’m done if I’ve repeated the question and I’ve answered the question. But of course I may not have done a great job of that so we’ll want to validate it. I won’t be done with validate until I’ve asked the questioner and they have said yes, that does in fact answer my question. Okay, so there are my done rules. I’ve got a done rule for each one. Now, in software development the done rules may be more like for break down tasks are no more than one to two days. For implement which would be the natural thing for answer. For implement it would the usual things you have implementation. It’s been code reviewed. It’s been unit tested. It builds. It passes the basic check in tests, right. Those would be the done rules for implement. Then for validate it might be we’ve pushed it out into production within a small ring. It’s validated, nothing came up. It went maybe into a second ring. Now we think we’re good to go. It’s done, okay. It just depends on what you’re doing. You can see the flexibility that Doug referred to. These done rules they can be specified by your team. The steps you can make them whatever steps make sense for what you’re doing. If this is a list that you have at home, a lot of people use Kanban at home believe it or not. Those done rules can be you know like your list of honey dos. The done rule is I checked with honey and she said it was good, right. [laughter] Whatever works for you, you can set those rules however you like. But the important thing is that there is a sense of done. This ensures that you have quality at every step which is something that many other methods don’t ensure. But it helps a lot in delivering value continuously to your customers, okay, which is a key thing about Kanban. Alright, now before I get to the very last element. There’s only one other element and then we’re done. I want this talk to last more than just you know ten minutes or so. Before I get to that last element any questions? Yes. >>: I wanted to point out that another reason for having a done column is without it you kind of have a push model, whereas with it it’s pull model which is really, really helpful. >> Eric Brechner: Okay, so talk a little bit about pull. I realize it was more of a comment but, other questions. Yes. >>: Schedules, so you talked about backlog. But you didn’t talk about schedule yet in how that… >> Eric Brechner: Okay, schedule and probably estimation to go with that. >>: Guest cost. >> Eric Brechner: Alright, schedule and estimation. Look they’re going on my backlog, right. That’s just what you would expect. Yes. >>: What about how teams transition from Scrum Outlook? >> Eric Brechner: Ah, transition from Scrum. >>: Can you add Scrummerfall to that as well? [laughter] >> Eric Brechner: Sure, and instead of saying transition I’ve been told by people who have Scrum in everything. That this is very similar and it’s not a transition so I’m going to go evolve. [laughter] Okay, so evolve from Scrum. Yes. >>: Fiscal versus digital combo? >> Eric Brechner: Ah, online boards. Yes. >>: If you have dependencies that are date driven how do you manage that? >> Eric Brechner: Date driven. Also it was a loaded question because there were dependencies in there. >>: Ah, you’re breaking down before you’ve left your back… [laughter] >> Eric Brechner: To repeat that so people can hear it. I was breaking down the questions early. I should have left it for that step. [laughter] But Kanban’s really flexible, yeah. [laughter] >>: What was the hardest part about driving a change from a cultural perspective for your team? >> Eric Brechner: Ah, cultural change. Yeah, way too many, yes. >>: How am I going to put some of this into TFS? >> Eric Brechner: Ah, TFS, that’s the Team Foundation Server service, thing that tracks all of our work as a large group. Yes. >>: How about Kanban specific project metrics? >> Eric Brechner: Project metrics. Yes. >>: Could you talk a bit about for branching models and publishing factor into this? >> Eric Brechner: Branching and publishing. Yes. >>: Using Kanban across a team that’s in different geographies? >> Eric Brechner: Oh, okay. >>: Time zones? >> Eric Brechner: I’m going to put that with the online boards because those two are related. Yes. >>: Could you repeat the question, please. >> Eric Brechner: Oh, and I will repeat the questions you know as I answer them coming up. That one was about how do you deal with teams spread across geographies? Yes. >>: How do you, what’s the benefit of breaking away from Timeboxing? >> Eric Brechner: Benefit versus Timeboxing. I hope I get to that one that’s a good one. Yes, in the back. >>: [indiscernible] one is scale and the next one is management acceptance. >> Eric Brechner: Scale. >>: That’s whole management change. >> Eric Brechner: Scale of the methodology or just… >>: Yeah, scaling to you know I work in a team with a bunch of teams which is within OSG. >> Eric Brechner: Scale to OSG. >>: Yes, exactly. >> Eric Brechner: I’m within OSG too, definitely can do it. Yes. >>: How do you integrate threat modeling with this? >> Eric Brechner: Threat modeling. I’m going to need a bigger pad. Yes. >>: Can something go backwards in the process? >> Eric Brechner: Backwards. >>: When done with everything? >>: Validate the answer. >> Eric Brechner: Yeah. >>: The [indiscernible] or perfect team size that this model can work with? Whether this applies to a one dev kind of team? >> Eric Brechner: Sure, team size. Yes. >>: Can you speak to like the advantage or agility that you might gain from this versus a pure Waterfall model? >> Eric Brechner: Agility versus Waterfall. Yes, Amy. >> Amy Draves: Online they have a question, sense of ownership of board tasks doneness? >> Eric Brechner: Ownership tasks and doneness associate with that. Yes. >>: How do you measure capacity and priority? Or how do you prioritize things come in? >> Eric Brechner: Okay, those are two different things. It’s not a break down gosh darn it. Those are two different questions. [laughter] Priority, yes. >>: How do you treat separate expertise on the dev team. For example one dev implementing one feature… >> Eric Brechner: Ah, expertise. Yes. >>: Tasks versus bugs in prioritization. >> Eric Brechner: Ah, bugs. I’ll talk about prioritization with that too. Any others? Yes. >>: Estimation techniques, [indiscernible]… >> Eric Brechner: Okay, I’ve got that one on there, so we’re good. Yes. >>: How do you measure whether it’s working fine or not with this? Whether Kanban works fine or not? >> Eric Brechner: Measures of success. Okay, any other for now? By the way we can add more at any time of course. Yes. >>: Pipelines and orchestration of parallel work items? >> Eric Brechner: Oh, okay, so I’m going to call that swim lanes if you don’t mind. >>: Yes. >> Eric Brechner: Okay, yes. >>: My team tried this but they were kind of bored with the processes involved. Any tips on how to not burden the team with the processes but still have them do the tasks? >> Eric Brechner: Okay, so not… >>: If I could add to that a little bit. How would you prevent the board from becoming too flexible? >> Eric Brechner: Okay, so not burdening with process and too flexible. Yes. >>: Alright, when we should use Kanban and when we should not? >> Eric Brechner: Okay, short answer the second one. [laughter] Okay, no, so the question was when not to use Kanban or when to use it? I’ll just say when to use. Yes. >> Amy Draves: There’s a bunch of questions online. But this one is sort of longevity question if it’s outside of the two to three weeks sprint, how do you use it? Use it similar to MS Project? >> Eric Brechner: Oh, okay, so if it’s beyond the length of the sprint. Okay, let me get to answering some of these. Then we’ll keep moving on. I’m worried that it’s so many that we’re not going to get to talk much. Okay, nonetheless I will still take more and put them on the board. I can also promise you that every question that people have asked, even the cultural change one is actually answered in the book. It may not be you know particularly to your liking or something that you want more. But of course I am still around you can ask me. I’m in the gallum in the, whatever that’s called in Outlook, the address book. Okay, so I was going to get to what is the last element here. There’s a reason why I left it off. It’s because the thing that’s a little bit complicated for folks to understand. But it’s what makes this project management. Everything up to here is visualization of work, okay. There are some done rules. That’s a little bit of project management. But mostly it’s visualization of work. There are lots of people as I mentioned before who will put stickies on for all their work. Move them along a board and all that. But they still need some other former project management, ways of tracking their work, and making sure things don’t go badly. Whether it’s Scrum or Waterfall, or some other interesting method, they need something. In Kanban you don’t need any of those things. But you do need one more element. That is what are called WIP limits. Now WIP just stands for Work In Progress. That is work that you started but you haven’t finished, okay. WIP comes up so much that you know they have an acronym for it. Work In Progress, what you want to do to make this project management is to control the work that’s in progress. That’s what makes it project management, okay. What are these WIP limits? All these WIP limits are are a maximum number of stickies that are allowed in any step. Okay, that’s all they are. Now, how you set them is what’s interesting. Typically the way that you set them is you start with the step that’s going to take the longest, okay. In this case clearly that’s answer, right. You set that value to be something that’s going to allow you to work smoothly. You know have enough flexibility but not anymore than that because you want to limit the work in progress. The reason you want to limit the work in progress is that that’s what gives you all of your agility. If you don’t have much work in progress at any given time it’s very easy to switch and do something new. You have that agility. It’s very easy for you to produce stuff and get it out the door quickly because you don’t have much ever that you’re working on at any one given time. It’s all getting right through the system, okay. You want to keep it low. But high enough that you can get stuff done. In the example here I’m going to be answering questions. Sometimes there’s two related questions or something like that. I’m going to want a little bit of flexibility here. I’m going to go ahead and make my little WIP limit, I’ll make it three just to be safe. It’s just me, someone who knows how to do this is complaining. But it’s just me; I’m going to make it three. I could probably knock it down to two. I don’t think I’d want to go below two. There will be times when I need to do more than one question at a time. Alright, once you have your WIP limits. No more than three questions at a time an answer. Once you have that one you’ll want your other steps to match their pace to the middle step. There’s all kinds of queuing theory about exactly why this needs to happen. But basically you’re fastest possible throughput is going to be when all, when the speed of stuff moving through the board is fairly constant. If this goes too fast, if you pile up too much work here it’s just going to pile up, right. Then you’re going to have all this extra work in progress. Then when you change course or something like that you’re going to have to throw this away and that’s terrible, right. You don’t want this piling up here. You also don’t want stuff piling up over here without it being validated. You want the validate to move it right through, okay. You set the WIP limits for the other steps to match the pace of the middle step. Now that may seem slightly complicated. No worries, there’s an online spreadsheet that comes when you get my book. [laughter] There’s an online spreadsheet you can grab. It has all the formulas worked out for you. You just enter in some basic information. It sets your WIP limits for you. In this particular case I’m going to make this one and this one because both of those are really quick. They don’t need to be any bigger than that. Like I said for break down most of this stuff is going to fly right through. Okay, we’ve got our WIP limits. Now, key point about the WIP limits is that they limit everything in that step both the stuff that I’m working on and the stuff that I’m done. I can’t keep just piling on, okay. Even though there’s, it says one here it can be sitting here or sitting here. There’s never more than one in the entire step whether it’s done or not. That turns out to be extremely important in getting the flow right. If you’re allowed to add more and just build up your done column, bad things happen. The other thing is that I’ve made a little mistake. This final done column here it’s as big as you want it to be. You’re just finished with stuff entirely. That last WIP limit really just applies to the working on it. The final done column that’s basically infinite. That’s it. That’s our entire board. Bill? >>: Isn’t there kind of a similar problem with your break down column? Because breaking down any question into another couple of questions is going to be bigger than one. >> Eric Brechner: Okay, so the question and I’m going to answer it right away. You can do that in Kanban. You get mail, you get little bugs, you get little things that are very quick to just do right away. You can do that. There are no Kanban police. There’s no Kanban army. There are no Kanban zealots hopefully, okay. [laughter] No one’s going to beat you up for just making this work for your team. I’ll just answer that one right away. For the break down step the one refers to the questions coming in. When they get broken down and they get broken down say into three other questions. Those are kind of clustered together as one. But then as I answer them they become individual. The flow remains the same and smooth. Okay, so let’s start getting going. We’ll start with priority. Someone asked how do you prioritize? Okay, it’s a very straightforward thing in Kanban. We’ve got a backlog. We’re going to order it. Now, I can spend a lot of time ordering all these different stickies, carefully putting them in some clever order. Then later on things change. You know in a few minutes people start complaining or asking about something else, or something like that. That would be kind of a waste of time. What I’m going to do is I’m going to kind of clump. I’m going to clump. The thing that’s most important is just what am I going to do next, okay? I’m in the middle of answering priority. Let’s see we’ll do capacities related to that. Project metrics I’m going to move down a bit. Team size, geographies online, dependency is super important. Evolving from Scrum I want to cover that. Measures of success, expertise put that with dependencies, bugs and I’ll put that with Scrum somewhere. I forget where it went, there, close enough. Alright, close enough. Good enough for me to work with. You think this is a little funny, right. I mean didn’t I just arbitrarily do that? In an actual team what we do is we have a daily standup. If you’re familiar with Scrum a lot of you have probably used that in Scrum. It’s the daily Scrum. When I was doing Waterfall years ago we still had a daily standup. We still met and talked about you know that day. What we’re going to work on, all that sort of thing. A lot of people are used to doing this. That’s what we do every day. Every day we get in front of the board. We talk about the backlog. We talk about priorities. We talk about any blocking issues. Anything people need to discuss. What we don’t have to talk about unlike Scrum is that we don’t have to talk about what we did or what we’re going to do next. Because that information’s right on the board and you can move the stickies any time of day, whenever you like, okay, because they’re stickies you just move them. [laughter] No big deal. You just mostly focus on what are the issues of the day? One of the things that you’re going to talk about of course is okay; do we have the right priorities? Are there any new things that I need to add? Any new questions come up in my particular case, right that sort of thing? Even though I was pretty rough here in just sorting just a little bit to get the priorities right for the order in which I’m going to answer these questions. I can change that any time. You’ll notice I will. That’s because this serves me. I don’t serve it, okay, likewise for your teams. For the priority we just put everything in priority order. Obviously, your customers, your stakeholders are going to have something to say about that whenever they do have stakeholders on our teams. They are pretty insistent their stuff is the most important things in the world. No problem. We take them in front of the board or we describe it to them. We say hey, where does yours fit in? They can look at the board. They can say you know what the kernel fix is more important than what I’m doing. But I think it’s more important than this. Can I put it here and we’ll say sure that sounds good. Or we’ll say actually this is this. They’re like and we have a discussion. It’s not terribly complicated. It’s very visual. Did I answer the question? Who had priority? >>: I did, so also the difference between Scrum versus Kanban is that in Scrum you lock down the priority, right. In Kanban it seems like it just comes in fluid, right? >> Eric Brechner: Yes, so what the questioner who put this up commented on. Was that in Scrum the priority is kind of fixed. It doesn’t have to be. I’ve run Scrum teams where we’re pretty fluid about that too. But definitely in Kanban it’s very fluid. That’s because in Scrum for those of you who are unfamiliar with it. It’s a particular project management methodology. They Timebox what’s called a sprint. You plan out everything you’re going to do in a sprint, the sprints last one week to four weeks. You planned out everything you’re going to do. Then you do it. You don’t mess with it. Then you get to plan again at the end of that Timebox, at the end of that month or week. In Kanban you continuously delivering just like I did. Every day you’ve got new stuff that you’re finishing. There is no Timeboxing at all. In that case we have a lot more flexibility which is very nice. Did that answer your question? >>: Yes. [laughter] >> Eric Brechner: Awesome we’re done with our first thing. Now you notice a bug came up during validate, right. No, now you probably wouldn’t think of it as a bug. It was a follow on question, right. But in a certain sense if this is like work and I’m working on features or tasks, or something like that. I got to validate but there was something that I didn’t do quite right. >>: Break down. >> Eric Brechner: I just took care of it. Right, took care of it and moved on. If it had been a big thing, if you had a really big follow on question I could have written up a new question, new sticky, put it into the backlog, and prioritize it. That’s basically how it works. Let’s see. Let’s talk about dependencies, going over capacity here. Okay, let’s talk about dependencies. You know what expertise comes right into this. I’m going to put that right here. Yes. >>: I just had a follow up question on that thing. If that had been a bug and you would put that in the backlog. Would you still move priority to the done column? >> Eric Brechner: Yes, I would. Okay, that was like an email. I can answer right away. I don’t have to put it on the board, quick answer. But big things you want on the board. We’ll get to that in a moment. Let’s talk about dependencies. Dependencies are really rough on all of us. This is when you have work items and they depend, you know tasks, stickies. That depends on other things, right. Those other things aren’t ready. One of the ways they may not be ready is because you have some expertise on your team. There’s one particular person who could do that task. They’re busy doing something else so they can’t work on it right away, right. Both of those cases they’re similar. In that you have a work item. You have a sticky that get’s blocked. What do you do? What we do and Doug’s team actually came up with this idea. Thank you Doug, is we add a new marker, we add a new column right in the middle called track, right. Let’s say my dependencies question has a dependency I can’t answer it. [laughter] I put it in the track column, okay. Now what the track column does. First things first, the track column does not count anymore toward my WIP. It’s off the board in some sense. But we’re keeping track of it because we can’t work on it right now. We have to wait for that dependency to free up. Or in the case of the expertise we have to wait for that person to become available, right. It sits here in the track column and its right there on the board. At our daily standup one of the things we do is we talk about the items in the track column. How are they doing? Is it ready yet? Is it going to be ready soon? Is it next week? When is it? Oh, it’s ready now, fantastic, okay. It’s unblocked, wonderful. When it’s unblocked it goes back, now we can work on it. Now if we were at our WIP limit. If we already had in this case three stickies filling up these areas then it obviously couldn’t move right away. But as soon as that got freed up it would be at the top of the list. The reason why it’s at the top of the list is that it’s already higher priority. That’s how it got into the board in the first place. It’s the top priority we just couldn’t’ work on it right away. We just put it right at the top. Instead of pulling from the left we just put it right there. Yes. >>: How does this work with bigger, fatter, inter-teamed dependencies? >> Eric Brechner: Bigger, fatter, intertwined dependencies. >>: Inter-teams, so I’ve got some other team and it’s going to take them quite awhile to do this thing. That I’d like to be working on… >> Eric Brechner: Right, right, yeah. >>: Right. >> Eric Brechner: This is exactly what I’m talking about. In that case this guy would sit right there in track until that team was ready and it delivered it. Now if it was a big deal. It was going to be six months or something like that. That’s what project planning is about. That’s when you’re really thinking about how you’re ordering your backlog. All the usual coordination that you would do regardless of what project management technique you were using. You would have some conversation about how we would time it, right. But if it’s yeah the priority is right. It moves through the board but they’re not ready yet. Then we put it in the track and we track it every day. If we say oh, it’s going to be next week we’ll leave it there and not talk about it as much. But the next week we’d talk about it. Yes. >>: The stickies you said represent work that is scoped to about one to three days, correct? >> Eric Brechner: Yes. >>: Which we think of as tasks. >> Eric Brechner: Yes. >>: But what I’m losing here is tasks that in and of themselves don’t deliver value. >> Eric Brechner: That don’t… >>: The task in and of itself does not deliver value. But… >> Eric Brechner: Okay, so… >>: The accumulation of several tasks is what… >> Eric Brechner: Right, so the question here is each of these tasks they could be fairly short. By themselves they don’t deliver value. We could move them all the way through the board. They could be done but the actual value is in the collection of tasks together. Much like how it originally broke down, right? Absolutely, that happens all the time. We just, you know in Xbox we typically use a switch of some kind. That prevents that collection of work from actually showing up to a customer until all the different pieces are done. One of the last tasks is going to be switching it on. >>: Okay. >> Eric Brechner: Did I answer the question about dependencies? No objection. We’re moving on. With expertise, with expertise there’s a few different ways you can handle expertise, right. One is you block on it, right. It’s treated just like a dependency. Another way that I prefer actually is that if you have people who are specialists in one thing or another and they’re busy. I hate it when I’m in a situation where one of the members of my staff could be on vacation or sick on any given day and it gums up all the works. That’s really just not a good way to run your team. What I typically do instead is if we have that flexibility. If there’s someone available I’m going to give that work to someone who’s not as familiar with it. I’ll use the person who has expertise as their backup, mentor, code reviewer, all that sort of thing, right. Then that’s going to mitigate my risk. Now, I’m not going to do that for everything. There’s some tasks that really, really, they’re big things. They really do belong to one person. That makes total sense. They should own it. But you know for some items you really don’t want to put yourself in a situation in which you know you’re just going to be stuck. That would be my recommendation. Did I answer the question about expertise? >>: Yes, you did. >> Eric Brechner: Good, alright, evolving from Scrum. Scrum, for those of you not familiar I mentioned a little earlier Scrum has these ideas of Timeboxes. There was a Timeboxing question here as well. I’ll just move it through when I’m done. Scrum has this idea of one to four weeks. You just focus on a set of work that you plan in advance. At the end of it you ship it. Using Kanban, going from Scrum to Kanban is actually pretty simple. You probably already have a board. You’re already working on things and moving them all the way through. You already have a definition of done. You’ve got a lot of the, you got a daily standup, right. You’ve got a lot of the elements of Kanban already. It’s really not that much of a stretch. All you do is put your steps up on the board if you don’t have them already. Add a done column to each step, put in some WIP limits. Again, using my cutesy little spreadsheet that’ll tell you exactly what they should be. Then just track your work on the board. You can still have your sprint planning meetings if you like. You can still have your sprints if you like. You can still do your retrospectives at the end. Those of you who know about Scrum know what I’m talking about. You can do all those things. It’s all good. It works pretty much the same. This is what I did when I first started using Kanban. I took two of my Scrum teams. They switched over to using Kanban. They worked exactly the same as they did before for awhile. After awhile they got really good at Kanban. They got comfortable with it. It made sense. They’d adjusted their WIP limits a little bit to match the individuals on their team. You know just move up and down just a little bit, fine tune it. After awhile they realized that they didn’t need the planning meetings anymore because it was continuous. They realized they didn’t need the sprints anymore because there wasn’t a beginning and an end. They just keep moving stuff through. They realized they didn’t need the retrospectives anymore. Because their retrospectives were all about when things got blocked and messed up. All that was happening right in front of them day to day, they could see it on the Kanban board. Because one of the things that the WIP limits do is that they enable you to see any time work is blocked. If the validate step is taking too long and just sitting there eventually all these answers are going to be in the done place. They’ll be stuck because the validates taking a long time, right. You don’t need a retrospective to notice something’s wrong. You’ll notice it right then. You don’t have to wait until the end of the month. This is true for just about everything that goes wrong on a team except for major things. Like hey, are we going to have a brand new change in direction? Or hey, there’s a personality problem between these two people and we really need to talk about it, or whatever else. But the regular things that we use to talk about are retrospectives. They come up all the time, same day, every minute of the day, right there on the board. We didn’t need to do those. Eventually, it just became Kanban. But the initial transition looked just like Scrum. We kept our Scrum master. We kept everything. Yes. >>: Usually how much time do you spend every day as a team managing this board? >> Eric Brechner: The question is, how long do the standups last? They can vary. They can be as short as five minutes. They can be as long as a half an hour. It depends on really what the team wants to talk about. But actually managing the board takes very little time. That just takes a few minutes. >>: But while doing that priotorizing as like an adding of the new features or anything. I must like to use sometime, right, like some [indiscernible]. >> Eric Brechner: About adding features and all that. Doesn’t that take up some time? Yeah, yeah it takes five or ten minutes. >>: Every business day you keep adding or removing some of the features are doing the repriotorizing? >> Eric Brechner: With all the adding, the moving of the stickies, all that sort of thing, doesn’t that take time? That can be done any time of day, all the movement around and the juggling of the stickies. That can be done any time of day. Now, you put your own life at risk if you start changing the priorities all by yourself without consulting with your friends. But that can be done at any time. It really doesn’t take. The standup doesn’t need much time at all. Standups, now for my teams, well we range three to ten people-ish, right. For that number of people doesn’t take very long. But Kanban has been run with its teams as large as seventy-five. It still takes less than fifteen minutes. Because again, not everyone’s talking about what they did or what they’re doing next. You only talk about blocking issues. Those blocking issues are really evident on the board. Do you have a question? >>: I was hoping you could talk about deployments. If you have an ops team doing deployments if you don’t have, you’ve not setup to do continuous deployment... >> Eric Brechner: Right. >>: Production you kind of have to… >> Eric Brechner: I’ve got it on the board. I got it. This is about publishing and stuff like that. >>: Right. >> Eric Brechner: And deployment, I’ve got that one. Yes. >>: This is regarding Scrum, traditionally it’s like a spread planning session where the items are decomposed, the team talks about what they are, design review session, whatever. Are those meetings still held? Or when are those sprint plannings take place? >> Eric Brechner: The question again going back to Scrum which we’re in the middle of answering. I’ll take care of it immediately. Was about when do you do all the stuff that you typically do during sprint planning? Like breaking down features into tasks and planning out who’s going to do what, and all that sort of thing. The breaking down into tasks that’s the break down step, so that’ll just happen continuously every day, doesn’t have to happen in some special planning session. The assignment also happens continuously every day. Who’s ever available takes the next sticky. If they can’t take it because they’re not prepared to take it, something like that, then we have that expertise issue that we were talking about earlier. Yes. >>: During standup session I’m taking notes and sending them to the team. Or Kanban board the only artifact which is... >> Eric Brechner: The question was during the standup are you taking notes and sending them to the team? Or is the board the only artifact? The board is pretty much the only artifact. The only time we’re sending notes beyond the team is when we finish something big. We want to show off, which happens a lot. [laughter] Yes. >>: In Scrum you have an idea of like when you will be able to deliver a particular thing. It’s either in this sprint or not this… >> Eric Brechner: That’s about estimation and planning about when things will happen. I will get to that. Yes. >>: What do you do when you have an excessively large backlog? >> Eric Brechner: What do you do about an excessively large backlog? You don’t sweat it. [laughter] You don’t sweat it. Everybody has an excessively large backlog. They may not realize it but they do. There’s always way more than you can ever possibly achieve. That’s called life. Yes. [Laughter] >>: This is kind of getting back to the expertise question. What if you have a team where it’s really a bunch of small teams where these two people work on this service, or these two people work on that service? You’re really not sharing a backlog across the entire team. >> Eric Brechner: If you have split up teams, we’re running a little long on time. >>: Okay. >> Eric Brechner: If you have multiple teams and they really don’t share much with each other. They’re working on their own backlog. Give them their own boards, doesn’t take up much space. >>: Real quick… >> Eric Brechner: Okay, I’m going to move on a little bit. Make sure I talk about branching and publishing and about bugs. We’ll see how we go from there. Did I answer the question about Scrum? We good? >>: Yes, we are. >> Eric Brechner: Good. What about branching and publishing? What’s going on here is you finish a bunch of work, right. But it’s not all; as soon as it comes over here it’s not necessarily really done because it needs to get published out, right. Maybe it’s a new release of an app. Maybe you’re publishing out to production for a web service or a website. Maybe you’re just integrating, right. Maybe you’ve been doing a bunch of work in a branch. You’re integrating it up to the main branch or something like that. There’s lots of reasons why there’s like a publishing step. What we typically do there is we divide up our done area. Into its pending, pending integration, pending publishing, pending whatever it is, and it’s published. When it gets published all the little stickies that were in that little pin get moved down here. The next set of stickies keep building up until it gets published again. There’s nothing really that we need to do other than doing the publishing step. But this allows us to know when things are actually out there. Did that answer the publishing question? >>: Yes. >> Eric Brechner: Good. >>: Actually, I’m sorry. That wasn’t my question but with the publishing would you do that even in multi-levels? Like if you have RI multiple steps. Would you track everything like oh, now we moved up from and L three to an L four? >> Eric Brechner: If there were multiple publishing steps, couple different ways you could do that. If your team is in charge of it you could have those steps on your board. >>: Yeah. >> Eric Brechner: If your team wasn’t in charge of it relax it’s done. >>: Okay. >> Eric Brechner: Someone else is going to take care of it. We don’t have to worry about everybody else’s problems, thank goodness. [laughter] I know some people do, but really. [laughter] Okay, what about bugs? Bugs are a little different from features. How would you track bugs? There’s a couple different ways to do this. One, if it’s a teeny weenie bug we’ve already been through this. If it’s a small bug you can take care of it right away. Just take care of it, no big deal. It’s just you know a little bit of noise. You fix it. You take care of it, done, okay. But there are also bugs that are really big. They’re going to require some design work. They’re going to be broken down into pieces. They’re going to have multiple tasks associated with them. They’re going to need to be implemented and validated, and all that, in that case, there yet another task. You write them on the sticky. You put them in the backlog, prioritize it accordingly, you push it through. Did I answer the question about bugs? >>: Yeah, I guess the biggest part of it is if you get rid of the Timeboxing the prioritization of bugs versus features is a significantly easier problem. >> Eric Brechner: It is, Kanban’s awesome, much simpler. [laughter] Yes. >>: But bugs, so if it’s a customer reported live side issue. That’s a bug that’s reported. How do you deal with that then? >> Eric Brechner: If it’s something you can fix immediately, you fix it immediately. Now, I use to run all the websites for Xbox. Typically when we had a live side issue there’d be an immediate fix. Boom, you just take care of it like answering your email. You know you’re just right on it. >>: Okay. >> Eric Brechner: But that patches it but it doesn’t fix the underlying you know fundamental problem. We fix it right away. We create a sticky for the underlying problem. We put it through. >>: Okay, that was my [indiscernible]. >> Eric Brechner: Cool. Let’s talk about geographically distributed folks and online boards. Having a physical board is awesome. It’s fast. It requires no skill to write new stickies and move them around. It’s visible; everyone in the team can see it all the time. There’s never any question about where things stand. It’s just there all the time. It’s great, right. That’s really nice. I love having a physical board. It makes a big difference. When you have an online board you know it’s like a web page or something like that, or in an app. It allows you to move around the stickies. It seems the same but there’s extra overhead for members of the team to actually work with it. They’ve got to launch the thing. Get to the page. When they’re creating something they’re using the keyboard and the mouse, and all that. It’s just more work. If that’s a barrier, turns out engineers are notoriously lazy. It’s just awful. I mean yeah you can bribe them with pizza but that only goes so far, right. [laughter] You need to have zero barriers for your engineers to use the system which is why the stickies and just and physical board. You move it, so easy, that’s the way to go. However, if your team is geographically distributed obviously it’s impossible to have that physical board that everyone can get in front of. In that case you’re going to use an online board. There’s lots of them available, including one that’s actually built into TFS. You can use that. Another one that I really recommend is that there’s lots of just scratch pads. Just these virtual scratch pads and they have stickies on them. You can move them around just like a regular whiteboard. You can use that, very low tech, very easy to use. It’s not quite as good. But you don’t have much choice for a distributed team. Did that answer the online boards’ question? >>: Can I ask a quick question? >> Eric Brechner: Sure. >>: Can you use the one in Visual Studio online, the Kanban board there? >> Eric Brechner: What about the online Kanban board for Visual Studio online? I have played with it. It’s missing the done columns for each step. >>: Yeah. >> Eric Brechner: I have talked to them about this. [laughter] I told them I wrote this book and there’s a problem with your board. [laughter] They said, oh, shoot we’ll fix that. In the next release of TFS, which is I think coming out this spring that will be fixed. >>: Excuse me. >> Eric Brechner: Yeah. >>: Is there like Kanban template which is there with [indiscernible] or? >> Eric Brechner: Yeah, it’s built in, in the information about its online. >>: Okay. >> Eric Brechner: Yes. >>: From the geography point I’m still kind of curious about aside from the visual representation using an online board. The time aspect of it because when you’re all in one place you can go and meet you know for a standup meeting for a few minutes. Everyone kind of sees what’s going on. >> Eric Brechner: Right. >>: But if folks… >> Eric Brechner: I have never heard. The question has to do with what about timing? Now we’ve got an online board but what about timing for the daily standup kind of thing? Just a few minutes but nonetheless it’s problematic when people are time shifted, right. In every book I’ve read and every personal experience that I’ve had. There’s just no replacement for getting together on a regular basis. There just isn’t. Someone’s going to have to do it during breakfast or at night, or something. There’s just no getting around it unfortunately. Yes. >>: This is going to sound like a joke question but I’m actually serious. Is the team that is implementing the online Kanban board using an online Kanban board? >> Eric Brechner: I do not know. >>: [indiscernible] Doug. >> Eric Brechner: I’ll have to ask them. That’s a great question. I have no idea. If I were them and they were all situated nearby I’d be using a physical board. [laughter] Okay, let’s see when to use [indiscernible] for tasks? I want to get to the one that had to do with big groups. >>: That’s Katelyn’s. >> Eric Brechner: Okay, I’m the one talking to that scale. Here it is scale to OSG. Before I get to that one, benefits versus Timeboxing, since we talked about Scrum before. The biggest benefit relative to Timeboxing is that since you’re delivering value continuously, every day. All those problems that you have with synchronizing with other teams, right, because your sprint length. Whether it’s a week or four weeks, whatever it happens to be, may not match up with your customers, with your partner teams, your upstream and downstream partners, all that sort of thing. Bring in your customer for the demo at the end of the month. Maybe they’re busy that month. Maybe they want to reschedule. There’s all this extra stuff around that length of time. Also if something big changes right in the middle of your sprint, now you’re stuck, right. Either you completely blow up your sprint or you just have to wait. None of that happens with Kanban. Kanban doesn’t have any Timeboxing whatsoever. You can give demos to your customer any day you like. You should because it’s great to get customer feedback. But you could do it every day. You could do it on their scheduled rather than on yours. After all they’re the customer. You should be accommodating to them, right. All those problems go away. One of the great things that happened just with Xbox, one of the things we had to do in order to start shipping once every month, which is what Xbox does these days. You get an update to your Xbox One every month. The website gets updated every day. One of the big issues of getting to do that every month is we had to synchronize every teams shipping schedule, every teams sprint, whatever methodology they were using. For my team that was nothing happened, we were good. We could fit with anyone because we ship all the time. Yeah. >>: Without the sort of sprint cadence then how do you answer the question if someone says I need you to do this thing, when will it be done? >> Eric Brechner: There was the estimates thing here somewhere. >>: Up, up. >> Eric Brechner: Up, up, there it is, thanks, okay. Does that answer the Timeboxing question? Yeah. >>: Just one minor clarification. Like the Timeboxing feels like it provides you a little bit of a focus at the end of the sprint. Then like if things have gotten unstable it’s a chance to kind of reset and try not to do that again. How do you not just sort of evolve into we’ve got to, we’ve just touched too many things… >> Eric Brechner: Okay, so the question is about, one of the nice things about the Timebox is that you kind of create some churn in the system. The Timebox gives you a chance to kind of get settled at the end of the sprint and make sure that all the bugs are out of the system and you’re nice and stable. The answer to that is with Kanban because there are done rules at every step, because you can’t move from here to here, because the done rules are right on the board. Everyone sees them all the time because you can’t move along you don’t build up bugs, technical debt, all that sort of thing. If you do have one by all means write it on sticky, put it on the board, drive through, clean up that technical debt. But it just doesn’t build up. We’ve now been running Kanban for four years, actually three years on my current team. That Doug’s the PM for one of my teams. We’ve been running that now for three years. We have never had that issue, ever. It’s, Kanban’s awesome. [laughter] Okay, did that answer the question? >>: I’m going to give you… >>: Just final comment. >> Eric Brechner: Okay. >>: People do say the same about Scrum though. Like that just doesn’t happen at least… >> Eric Brechner: People say lots of things about Scrum. I love Scrum. I used Scrum for eight years. I’m never going back. It was great but I found something better. [laughter] >> Amy Draves: Eric… >> Eric Brechner: Okay. >> Amy Draves: Eric, four minute warning. >> Eric Brechner: Four minute warning, thank you. These two are the most important outlying questions. I’ll make sure I’ll get through these. Scale to OSG, OSG for those of you that don’t know is the Operating Systems Group. It consists of only about thirteen thousand engineers and other folks working on the operating systems. Xbox is one of the groups. There’s also Windows Phone, obviously Windows Client. It’s a big group. How do we fit into that group? Well the way that OSG tracks work is in TFS, which we’ve mentioned a few times. That tracks all our work items as well as all of our bugs. It’s a great system. It’s hierarchal, so you can have a work item, that’s like ship phone. Then it can have lots of children. Those are, you know all the different pieces of shipping the next version of phone. Then it can, those can have children, and so on. It can kind of break down hierarchally. It’s a pretty nice system. The key thing though is that for it to work. For us to kind of fit in, for our teams to kind of fit in, in that large organization, and all the tracking that’s going on using the TFS system. Our stickies need to be in TFS. But our stickies are on the board. I just told you how it was a bad thing to force engineers to try and update something online because they don’t do it. It’s overhead to them and yeah. I volunteered Doug. [laughter] For my other teams there’s a PM on those teams. They got volunteered once a day when, you know for any of these stickies that were tracking high up. Doug just sits down in a chair. He used to keep a chair right across from the board. He sits down with his laptop. You did it at the end of the day as I recall, updates each of the corresponding work items in TFS that correspond to each of the stickies. If they moved around he updates them. Never took you more than ten minutes, usually just a few minutes. Done, we are integrated in. As far as everyone else knows we’re using Waterfall or something to get our work done. In fact we weren’t and we fit right in with everybody else, no problem. When you think about the planning and the top down planning, and all that? That just determines what our backlogs going to be. Helps us prioritize and order our backlog. The last piece of this of course is estimation. I’ll get to that next. Did that answer the question about OSG? Yes. >>: Not quite. You may get there with estimation. But I’m still concerned about how that fits with OSG level scheduling and the expectation that particular things will be delivered at particular times… >> Eric Brechner: Right, so let’s get to scheduling and estimation. But otherwise clear enough on how we coordinate? >>: I have a quick question. >> Eric Brechner: Yes. >>: When you’re going through something there and you identify another task, or it breaks down to more. Does Doug go enter those in? >> Eric Brechner: Yeah. >>: Or assuming that when whatever you’re planning with got pulled backlog. >> Eric Brechner: The question is when new stickies get created does Doug enter them as work items? If, that has our work items that we’re tracking you know up in OSG? Absolutely, he creates new work items for them, types in the stuff, and there you go. >>: Is it fair to say that you may have some stickies though that you work on pushed through that you never… >> Eric Brechner: Yeah, we do some technical debt. The question was are there stickies that don’t end up in TFS? Yeah, we do a certain amount of just work just for the team, fixing up technical debt, cleaning up some things, whatever it might be. Little tools that we need that we may not track in the system because no one’s paying attention to that. >>: [indiscernible] >>: Does… >> Eric Brechner: But we always pay attention to it. >>: Does Doug have an intermediate set of deliverables that he’s thinking about above the task layer but sort of below the OSG mandatory layer? >> Eric Brechner: Any questions about what Doug you know is responsible for and all the things that he’s tracking should be directed to him. [laughter] Okay, let’s talk about scheduling and estimation before we finish up here. This is a big deal, right. We do have customers or partners, internal partners, or maybe even external partners. That need to know when we’re going to be done with certain things. They want to do some planning, right. They have a dependency on us. When are you going to be finished, right? It’s important to do estimation. It’s important to kind of plan out a high level schedule, right. The way that that’s done is also fairly straightforward. Now your team may have its favorite technique for doing this. Maybe it’s story points. Maybe it’s Wideband Delphi. Maybe it’s T-Shirt costing. Maybe it’s using Project and all kinds of fancy stuff. You can do that. That will all work. It’s not any different work is work. You can plan in out in whatever way you’re most comfortable. That’s fine, if you want to make it a little simpler or be more Kanbany. The way to do that and again you don’t have to do this. You can do it the way you’ve always done it and its fine. You’ll produce work at a certain rate. You’ll adjust your estimates accordingly. Kanban turns out to be very quick. But nonetheless you can use whatever techniques you like. If you want to use a Kanban like technique, something that’s more related to directly what you’re seeing here. The way to do that is just to count how many stickies you complete in a given period of time, say two weeks or a month. Just count, it’s not complicated they’re stickies, just count them. That’ll tell you how many stickies you do per day on average. Then you count up how many stickies you have you know in priority order, right. How many stickies you have that are going to go through that system. Now, those are going to be broken down. There is an estimation step. But the estimation step is one that’s very intuitive. The estimation step is hey, if we were to break this down how many stickies do you think we’d get, right? Which is a very intuitive thing, people can figure that out pretty easily. They’ll make a guess. It may not be perfectly accurate but estimation never is. They’ll make that guess. You can write it down right on the sticky and compare and contrast when you actually break it down. You take the total number of task stickies that you think are going to come out the other end. You multiply that by how long it takes for each sticky. You have your estimates. Again, in the absolutely free to you if you buy my book. [laughter] There’s spreadsheets that do this for you. You put in all your things. You estimate how many tasks each of them are going to be. You put in your rates that you get from this or it calculates it for you. Boom, it’ll give you dates because it’s just not that complicated actually. Then you can do all the scheduling stuff that you like, okay. Did that answer the question? Great, how we doing Amy? Do I have time for one more? >> Amy Draves: No, I think we better… >> Eric Brechner: Alright we’ve covered all the important stuff. Everything else including the answers to the remaining questions are in this book. There’s even a quick start guide, a troubleshooting guide, rude Q&As, checklists. Ah, it’s the best. [laughter] Get your today. Thank you so much for your time. [applause]