Last session of the day, and then I guess there's a panel at the end of the day or what do we have? Keep everyone guys are passionate. You want to go to Lee at the very end. Awesome All right, well Hopefully we'll have a little bit of fun today This is an opportunity to Run through a simulation where we can be it's going to be going from all sorts of Chaotic to even more chaotic here as we get going so the Confusion to chaos So this is a value and certainty game My name is Todd little VP of product development for IHS They took a data analytics company Let's see if this is going Okay, I was gonna look at the jelly beans we do that if we still have time at the after finishing this We may do a little jelly bean experiment to So how many of you were in the talk yesterday myth busters quite a few So I left you with a click cliffhanger here now what so we're gonna do a little simulation of sort of both now What so they're just a quick review of what I just went through yesterday First of all, we had a test we did a bunch of tests a bunch of tests of different things Up and then we looking at whether we actually have how good are we at estimation?   I think we know that So is it understood? No, we are not very good at estimation. We're gonna experiment some of that today Significantly in estimation accuracy significantly improves as the project progresses is basically the cone of uncertainty That's pretty much not true either estimation uncertainties pretty much consistent Estimations are frequently impacted by biases. Yeah, that's pretty much true We're pretty good at estimating things relatively. No, we just suck in a relatively different way Velocity is a good tool Yeah, that's velocity or throughput cycle time. Any of those are also all good techniques For improving getting better data. We're a bit behind but we'll make it up in testing. Nope. We're not gonna do that Scope creep. Yep, we got scope creep Having more estimators, this is the wisdom of crowds. Yeah, that can that can definitely help Or more people involved in the estimation Project success is determined by on-time delivery It some organizations it does unfortunately, but we want to move towards more value oriented outcome Oriented view and then estimation is waste. I'm look at let's consider that plausible so So now what so let me go through how I how I have coached teams to to work And I found that this worked very well for me in getting dealing with the trade-off of what's the right level of estimation? What's the right level of predictability that we need? The particular exercise we're gonna go through where you're gonna live this Call the simulation exercise.  I don't know if the stories were already handed out Okay, you're already looking at them. You're already cheating. Okay, that's So he's gonna be a set of stories and on each story You're gonna have a sum of you're gonna have a value proposition and then you're gonna have a test Okay, and you're gonna be looking at the common as a trade-off between the value proposition and the cost Which is the cost is your estimate of how many roles it'll take to make the test Okay, some of them are very easy. You'll almost certainly make it in one role. Some of them may take multiple roles Okay, so that's what we're going to be looking at is two sides of estimation I consider estimation to be to be two pieces one is a value estimation the other is a cost estimation Both are necessary the primary part of the primary thing you're trying to do is Understand what your priority is because you want to work on the things that are the highest value for the investment Okay, so in order to do that you got to know a little bit about cost get a little bit about value If you want to assume everything's the same cost and go through in no estimates that can be done It may or may not be a good idea a few What I use something called ABC is a prioritization sort of keep it very very basic a lot like Moscow anyone here familiar with Moscow Remember with Moscow. I Don't like Moscow for one particular reason and I think it's the power of language Moscow uses must shoulds and coulds So must is pretty obvious the one I hate is should because if I don't deliver on a should that sounds like I'm bad So I work a little bit differently. I said that there's a's which are must The nice thing about ABC's is it's very basic It's I call it Moscow for preschool or sometimes But it everyone seems to get it pretty well, and it's also doesn't have that same loaded loaded message So a's are must be completed The B zero wishes, right? The shift in wording from should to wish is very significant Wishes are things that when you get them you're happy Okay, as opposed to shoulds and when you don't get them you're unhappy It's a very significant difference in the relationship You have between the development team and the business of the product manager And then season the things I think are still valuable, but they're not they're not even in the consideration They're not in the target I'm only going to be allowed as a product owner to communicate to customers based on a features I can't talk at all about B's and C's and the other when you we're looking at the overall release plan If more than 50% of the effort allocated to a items It is either allocated to a items and I consider the release plan at risk I want to build in enough buffer that I can deal with what I know to be sort of the very the overall normal variation in estimation This is sort of this is the approach that we're going to be working with today As I go through this this the reason this approach generally tends to work pretty well is this as I'm looking at a timeline here You know, I've identified You're working with the marketing team and what with other parts in the business We generally come together and we say this is sort of Nominally our target that we're working with and we might be doing some rollout or something If I start to plan this out and I look at the a's it comes There's only half the time That's my backlog. That's my initial plan What I'm actually going to deliver This is you know This is if it was sort of in a general what we've seen when we've been recording this if it on average We'll deliver our a's and we'll be About on target if we if we have adjusted ourselves so that our bias is counted for because you know First thing is you got to know how bad or good you are and once you know how bad or good you are You can adjust your bias a little bit with your historical data so that you're if you're always coming in Underestimating you can correct for that But if we deliver all the a's then we have some time left over it turns out that by the time the product owner You know learns more information Some of the C's turned out to be more important than some of the B's and we come up with some items There are D's that are totally new that we discovered in the process So that'd be a typical but if we have a particularly bad situation The only thing we may deliver is a we may have a situation where the uncertainty is so great that all we deliver is a And this gives us the ability to balance the overall Uncertainty and still guarantee to the business of the product owner that they'll get the things that they absolutely have to have So the structure I use As I said, I consider estimation Typically in our industry estimation is used mostly for cost I I consider that estimation is predominantly is a value and a cost situation and it's predominantly driving the business question What do I do? When do I do it? So it's a priority if I'm doing prioritization to me if you're doing prioritization You do an estimation because you're estimating a value and actually what you're estimating is not just a value You're estimating a value per return. Okay, so how I like to look at I look to look at them both at the same time some structure in terms of just ballpark T-shirt sizing small medium large extra large if you feel more comfortable putting numbers around that go ahead Similar on the cost side, okay Then priority is driven by the trade-off things up here in the green are the good things do those first Things down here in the red Do them last or don't do them at all, right? It's not, you know, that's very low value for the return Very low return for the investment Well, you get into these It's a bit of a trade-off question, right? Because nominally This is a set these all up and down that so this is that's what we're going to use now Does everyone have all the we've got cards out? Okay, what's that? Okay. Oh, yeah, yes Okay, okay, we're gonna have any hanging out so what we're gonna do first You've got a set of stories, so Let's go through a good look at the story Pull up a couple of them have a couple of them out there, and we've also got some Actually, you think I should hand out the score sheets later later. We'll get started on this first, okay? So on your table is already This chart, okay, everyone's ready to already get really started on that What we're gonna do is we're gonna look at all the stories that we have So actually maybe I can Get two stories for me here A one and two. Oh, okay. That's fine. Okay Maybe just borrow one. Can I borrow? Story one and two. Oh, you don't have it yet. You have it Okay, I'll take this one I'll get it. Okay. I'll take story one and two Okay Okay, so you each have ten stories to work with all right So on there just as you're going through and looking at them There's a value proposition, which is what you're gonna get and there's also a Test and the test is an indication of how what the cost is going to be I'll just give you any go we'll go through an example story that we're working on so we're gonna in the process of doing it so you can get Essence of what we're gonna do we're gonna run we're gonna pull this story into the back like so this is a story We're gonna work on we're only working on one story at a time when we pull it in So here we roll the dice The test is to roll three dice Pay no attention to this fourth dice It was they have a more a more complicated version of this in which case we always run four dice But this this version if it says to roll three dice only roll three dice, okay? And the test is so this is the three dice We're looking at and the test is here roll three dice and two or more dice are the same So in this case we don't have two or more dice the same So we fail this test okay, so that cost us one roll that was one one But we continue to work this story until we get the test and here we roll it and now we get a three a three in A one okay Passes the test okay, so what's the value? Seven awesome You learn that from the Russia's program that doesn't The rest has his math calculation thing so at a high level here's what we're gonna do We're going to run three iterations with ten rolls of the dice per iteration So just so you have an idea of how big this thing is We're working on one story at a time Your management wants you to commit to six stories for the release They said commit to six stories for the release and when when you're pulling it into the iteration since there's three iterations They would say let's pull it. Let's go to get you to commit to two stories per iteration That's their decree to you six stories for the for a release and two for iteration We're gonna score points for accepted stories and then this is just a thing values just an estimate at the end We're gonna do some magic and some other things will happen. So keep you in suspense on that So now the next step we're going to do is release planning So in the release planning your first step is to look over the stories and then you're gonna look at whether there's the The cost is going to be in the small medium or extra large You're also going and that's going to be along the x-axis You're gonna look at the estimating the value that you're gonna get from it And we're gonna do a lot of relative estimation right once relative to one another We'll then do the prioritization based along the diagonal and you need to commit to at least six stories Okay, we're gonna keep keep track of two types of value which is there's value points and there's committal points So value points we're going to do based on the value of the dice That the test says and on the commit basis you'll get ten points per committed story that you make But if you don't make one you get zero okay, and The same thing on the iteration you're gonna get well when you get to the duration you go five per iteration So right now focuses on release planning. Okay, so we're gonna get this going on release planes I'll come back and go through a little bit more on the iteration planning pretty clear not clear Not clear. Okay. That's fine. It usually usually takes a while to get things going so what we're gonna do I'm gonna give you Yeah, okay We're gonna start with this baseline We'll take each of the two store so I got two stories here story one and story two So I'm not gonna look at story one story one says Roll three dice and two or more are the same. This is the one we just did Okay, yeah, we ended up with more people here than I thought I brought a bunch of dice thinking that Yeah, if you yeah, okay, sorry about that. I Was expect I was expecting to have about six tables But but we've ended up with 12 so that's forgot about that. Okay, so so we have two dice to work with and we'll figure We'll improvise here. What's that? Yeah, yeah, so we just that's it was a distraction here So let's get back to the yes to the release planning side. So release planning what we're gonna do is we're gonna estimate these stories along the diagonal here So this number one roll three dice and two or more are the same Where do you think? How how hard did that look to be pretty pretty simple simple medium somewhere? Yeah, there's a there. Yeah, let's just say it's medium. Let's we'll start it as a medium I don't know whether it's where it really is we're gonna start it's a medium and then the value is the sum of all the dice So there's three dice involved and we're gonna sum it up Medium I will just say let's just say it's in the middle here Okay, so we're gonna start with that then what we'll do is we'll take that because it doesn't matter if this Is in the wrong place we can just adjust it later with this check things around What we're really trying to do is get a judging place here. So value number two is We're gonna roll four dice and two or might more of the same So when we roll four dice and two or more of the same is that easier or harder than the first one Easier it's easier. So it's somewhere. It's somewhere to this side and then the value is the sum of the matching dice It's gonna be more or less But only the matching dice realize Matching dice so most of the time it'll only be two dice probably right sometimes you could might know if you get three matching But so probably down here just this is a guess. It's so it's probably like that That's the relative work You're gonna be doing and we're gonna map it out and if this happened to be in the wrong place It's not that big of a deal because it may just be you may be skewed one direction or other because all you're looking for is this relative priority to work from That makes sense Okay So we're gonna start with this section and then we'll we'll go into a little bit more detail. So I think these are yours here, right? So everyone should have ten stories Everyone should have ten stories. We won't be doing anything with dice for a little bit So so we're just gonna be working on creating the the estimation backlog. All right Yeah, give him five minutes. Let's give him six. How are we doing on time 20 minutes? This should be fine Okay, hey take Yeah, but I don't want to distract them too much. Yeah Give them hand them out, but don't see you're gonna take two each one of you take you take two you take two Yeah, one three that's from one table Yeah, some of them have it but not all of them do so they just all of them need one of those So we'll just make sure they all get it And I've got some spares here. I've got some Here I think this this this this and this is another one What's this? Oh, maybe that's this one Number six we can find a six We may have to make a six out of here. Okay. I have a six.  Well, yeah, so the cost So you're sort of Blocked out of it. It's gonna get chaotic and it's gonna get more chaotic as we go So it starts from confused chaos to just sort of really Energetic chaos pretty soon. So let's let's let's take a step check and checkpoint checkpoint Okay, so it looks like people were making pretty good progress. Is anyone just totally stumped here totally stop Everyone's making some okay progress. Okay, that's okay. We don't have to absolutely be done. What I need now our Step right now. We've got our things laid out And we're gonna be committing management wants you to commit to six stories for the release Okay, so we're gonna be choosing our top six stories and how we're gonna be doing that is by looking at the matrix and Working down the diagonal working down the cross diagonal there. Okay, that's they're gonna be your next step It's a sign up for six stories. Okay What we have also we've just passed out Every team should have a score sheet Okay, okay.  Listen up Every team should every team should have a score sheet. Okay That we hid and told you to not look at now We're gonna look at that a little bit on the score sheet. I'm just gonna get it for hot There's two of them one is gonna be your score sheet that you keep during the iteration I'm not gonna worry about that one right. I'm gonna come back to that one The one that matters right now is this one which is sort of your layout of your release plan What we're gonna do for each story You're gonna mark it here quickly whether it's an a b or c and The a's will be your top six. Okay, you're gonna have at least six that you're gonna commit to that are a's So you're gonna mark on the score sheet which six stories you're committing to for this release Okay, you've got to commit to at least six on Some of them are marked on the on the cards. Don't worry about the cards themselves. This will be on the sheet on this score sheet Okay, yeah, we reused the cards from and we did this at my office the other day And so we reused the cards and some of them have some markings on it. Okay, what's that? the category This category Okay, all right, so Is everyone understand where we're out right now with the score sheet, right? This is what their next step is going to be to commit to six stories Mike oh Mike Mike Okay, Mike Mike, okay Remember when the power goes out the Mike goes to okay All right good now what we're also I want to just go through just sort of how this is gonna flow a little bit too Just give you now now you're gonna sign up for six iterate six for the for the commitment When we do it we're gonna go through three S three iterations of ten stories and Actually, let's we can come back to that. Let's go ahead and get the the sign up I'm gonna give you We should be everyone should be pretty close to being able to do the sign up So let's give them a two three minutes or what to do Yeah, really just take the commitment, okay? six stories Management wants to commit to at least six stories for the iterate for the for the release For Larry, then we're gonna get into the iterations and we'll work and that's when we get to roll the dice Then we get to play with the dice. Okay Good hand.  Is six story we've got your stories When you've got your stories bucketed into a B's and C's Get your stories bucketed into a B's and C's the a's of the ones you're committing to for the release You have to you want to commit to you have to commit to six so that there have to be six a's Yes, so even so your B's what your top B's will become a's based on this. Okay. Yeah. Oh, you're not supposed to have those. Oh Does anyone have more than ten Is it only one group that had that that must have been the I guess that was me who handed that one out Everyone should have ten Release commitment Awesome, good job People are getting close here We're getting the top six stories will all be a's your six commitments will be a's. Okay. You're good. Awesome Anybody stuck ten six a's Six a's yeah, so there your B's will become six your B's will become a's Yeah, and then you're you can decide how whether you want to call the rest C's or B's But right now we're gonna get them we're gonna end up at this six a's and then the rest of these B's are C's and And you have and you have sort of a priority queue Right because we're asking you to commit to all you will we're working something faster perhaps It's still prioritizing who does not have their priority queue those six a's they got their commitment six There should be a six a's is anyone not there yet You're not there yet. Okay Okay, let's see what we need need some help there actually maybe about we're not too bad all right who We still people are starting. Are we ready to start getting okay? No dice No rolling of dice yet. No, we shouldn't be playing. Okay. Are you already rolling? No, no, no don't don't roll yet. No dice that I know everyone's anxious to get moving I but we've got we've all got to go at the same pace and everyone has to help that team back there All right. All right. All right. Now if you don't have six stories signed up right now Management is gonna be very mad and sign them up for you. Okay, everyone have six stories signed up. Yes. Yes Oh, that was really fast now Hey, that works it works I'm playing yeah, it works. All right. You get you got signed. Okay. All right. We'll be checking Would you okay? We have six we got six stories signed up. We're committed to now. We're gonna get into iterations Okay So for the first iteration, we're gonna go into iteration one Ten rolls of the dice each dice each dice roll is you check it against the test, right? If it test passes you do it So we're gonna estimate the first thing we're gonna do we've got a release plan We don't have any new stories coming in right now We're gonna ask we're gonna adjust we pretty should be pretty good with this for the first iteration Now we're gonna sign up management wants you to sign up for at least two stories for the iteration commit to two stories For the iteration.  You just it just you just it's if you didn't work on it. It's just dead code, right? It's also okay to redo a story, you know, we can either you redo or refactor the story All we do is we just pull it back into the backlog So we've done it but we're not happy with the value we got right so it passed the test But the value is really weak we might say yeah, let's you know We've finished our up and we're gonna pull it back in so we're gonna pull it back in Sort of like a refactoring or redoing or whatever and we just work on it again And if it doesn't pass we still can revert back to what what did pass Okay, so it's okay to do to redo it. You can't do a story to get points for it twice You just get points for it one time, but you can get the higher of the two if you if you have Capacity to work on it that way. That's just some strategy things you can work with Otherwise if we had more space, I would use a product progress board We don't have this. Yes question Within it. Yeah, you can abandon the story Now if you've committed to it and you abandon the story that means your commitment is at risk Yeah, so you get zero for the whole iteration right for that So it might more it would more likely be a story you didn't commit to if you're gonna abandon Like he maybe try something out. Okay Okay, all right keep quiet here. Let's let's keep keep going here As we get so I'm gonna say let's go ahead and we'll do the commitment and we'll go ahead and start the dice rolling Okay, okay, because I know everyone's anxious to get rolling dice because Okay, you guys it the commitment should be pretty fast here I think you got this because you already spent a fair amount of time committing your top six So we're gonna commit the top two to the iteration. We're gonna start rolling dice when we start rolling the dice What happened here? This looks funny Okay We're gonna record the dice. Yes. Yes question. What's that? Oh the color coding on the header Okay, this is just dice one dice one dice two dice three dice four, okay Normally, I would have had to have four color-coded dice and and but what we're gonna have to do is dice one dice two dice Three dice four and hey, hey listen, let's keep I know that there's gonna be some questions here on the scorekeeping So the question is what are these these color codes normally? I would have had I'd have four four of the same or four different colors of dice We don't need the four different colors. We just need four dice or or whatever it says whether it's two or three So we only have two per table Which is unfortunate, but that will make it work So if it says to roll three dice you'll have to roll two dice And then you have to pick one of them you'll have to remember what one of them was and then roll again Okay, you'll record that dice one dice two dice three, okay? If it doesn't pass So for some reason I don't know what what happened here, but what you do is you would still record. Oh, I know why this is Ignore the blank ones here. Okay, because I was this was part of my more exotic version of this But you're gonna say so this is your first day here.  You took one of the hard ones and got a big point So what we're gonna do is we're gonna record dice the story you're working The first thing you'll do is pull the story into the to the backlog and you'll record the iteration one or Roll one of iteration one day one iteration one.  Okay, you'll work that one and whatever the test says. Yes. Yes Yeah, if it says to roll three dice It you'll roll two dice and then you're all a third dice and you'll record your dice as you go. Okay, and then There's room for four iterations ignore the ignore the fourth one. Okay What so what we'll do as we'll roll the dice we'll roll we'll pull the first step you'll pull All right, all right, you guys are Crowd control tough here, man Okay, so we're going to We're going to fold first step. We'll do is pull the story in. Okay, so we're gonna pull a story What says what says what says to roll three dice? We're gonna roll two dice Record the two and then we're gonna roll the third one. Okay. Yes question Oh Okay, okay. Okay. All right, quiet What you guys excited here gosh, okay Okay, first step commit to two stories Second step pull one of those stories in record it in this in this here. Okay Next step roll the dope roll the two dice Okay, because every unless you're pulling a story in that's only rolling one dice if it says to roll one dice You roll one die if it says to roll two you roll two if it says to roll three you roll two and then you roll another one Okay, so you roll two record it and then roll another one. Okay. Is that part clear? Okay, if it passes the test if it passes the test you will record the value Okay Ignore the release and iteration commitment until you finish the iteration. Okay, so We'll just be working up to here and then the end of the iteration will figure out what you got for iteration Okay The 60 came for this one because the test for this one was that it was three numbers in a row And it was the product of the three numbers in a row. So it was three times four times five So the it'll pass the test once it passes once it passes the test you'll get the value from that. Okay Okay, once you've passed it you record the value here Okay now That makes sense for this and then you'll go on to the next one. Yes question back there if it fails you just keep moving Okay, the story stays in the queue. You continue to work on it until it passes If you want to abandon the story you can abandon it and pull a new story in you had you either What's that? You get ten rolls you get ten rolls for the iteration You can commit for more than two if you wish No, no, do you only get that you have to commit at the beginning you if you can you can also pull new stories in What's that? No, no, if you'd miss your commitment you get zero points For that it you get zero commitment points. We're keeping commitment points and value points For the entire iteration the commitment is okay everyone. Let's repeat the steps Hey, hey What time? Okay, one You're committed to so like in this case I'm committed to commit story one to iteration one Okay, so you're two that you're going to commit to will be marked at least two that you're going to commit to You'll mark that on this score The other thing that if you'd like If you want to record the cost it's optional, but it's sometimes useful you can record the cost when you finish the story The number of rolls number of rolls, okay? So those you've got to score keeper to score cards you're keeping Yes Which I the cost of the how many rolls it takes to get it to pass So the number of rolls it takes to pass so you're yeah, and you're only you're already on to iteration two No, no, no, we just started Yeah So you committed to six in the iteration Okay, so you committed to the two you committed to the two already so you committed to the you only committed to the two But you ended up pulling in five. Okay, so you now on The fourth one is okay. Yes, exactly. That's that's not a surprise new items You're working at your release commitment, right? Or you can pull get there. You can pull something in that's That's something you're that's a you just pull anything in or You finish five if you've done one iteration you've done five here Facilitators, okay Some of you may not be done with round one yet, but you're getting close. So, okay, let's take a Checkpoint checkpoint. Okay. I think everyone's pretty close to finishing round one. Okay, right? Okay We're gonna go ahead and start passing out. We've got you know product management has been out to see some customers And we've got two new stories coming in. Okay. All right. Yes, but you're ready for them, right? Yeah, ready for give us more give us more. All right So here's what we're gonna do you're gonna when you get into iteration planning So finish out the iteration first don't pull any of these into if you haven't finished iteration one Finish iteration one first.  Okay, you can't get out of your release commitment But we're gonna give you these two new stories. Okay, so Everyone ready for them. Okay. I think they're over here So they'll be passing out the release the two new stories. They'll be story number 11 and number 12. Okay, 11 and 12 Okay, you guys have already seen them And they did okay iteration to We're gonna we're gonna reprioritize We're gonna recommit Okay, it should go much faster iteration to once you've got once you got some traction here You're ready to start. Okay, go ahead and go ahead and make your commitments sign your commitments up on this No, no, which one did you commit you only committed to if you committed to yeah, the ones you committed to mark them here the ones you didn't commit to It was five and six just circle them Okay, and you can't commit it is significantly harder with this mini it's significantly hard This is crazy. All right. We're doing good You're stuck Yeah, yeah, you can talk it and put another story if you want. Yeah. All right, how we doing pretty good Have who's done with iteration to iteration to you done with iteration to done with iteration to Okay Who do you done with iteration to? Done. Yeah done done with iteration to Done with iteration to Yeah, but you're you want to be done with all ten rolls all ten rolls So we got an executive injector and a customer request coming in so 13 and 14 these we're gonna start iteration three We're starting iteration three same same basic story same same program To do stories coming in the special they have a special orange version Okay iteration three commit to at least two stories and Then get rolling You're done done with everything no call at no penalty and get more value So you can take one of the stories that has a potential up to one Right No, it's not the cost. It's the value you recorded a value here, right? All right, how time time Okay Next step we're gonna do several teams have finished all three iterations if you if you haven't it's okay We'll continue to that but the step we're gonna so we can get moving on here the next step. We're gonna do Make sure on this sheet now. We're gonna record what value each story got Okay, if you hadn't already been doing that use it switch over to this sheet You've got sort of two sheets to record this on now record the value that you got And now that you've done this also if it was part of your iteration if it's part of your release commitment and you made it Then you'll get your ten points per story that you committed to so you committed to six stories And you made all six of those in the release Then you'll get your ten points per story Okay, if you committed to seven stories, you can get 70 points. Okay, if you made them all I think most people probably committed to six because that's all I told you but but you wanted to commit to seven You could have okay Keep that under the release commitment points, okay So keep this separate value points release commitment points and iteration commitment points So when you make if you made it during your iteration, you'll get those five points per story you committed to okay Cost is less important. I think we've been recording that so you understand that everyone understands that Okay, we're gonna have three columns of points The value that you recorded if you made the story If you committed to it in the release and you made it you'll get ten points for that story Okay, if you committed to it and you didn't make it you get zero for all of them If you didn't make a really if you didn't make one of your release commitments You'll get zero release commitment points because you didn't make you signed up for something that you and you didn't make it all the way through Okay, if you made it you'll get your ten points per story that you committed to if you made stories You didn't extra stories that you didn't commit to they just are not counted there If you for the release it's only for the it's it's all of them All return for the iteration commitment It's just the iteration and you and you made those two you're good if you didn't make it you got zero Yeah, okay, so everyone understand that Per store look on a per story basis Record your value the value of the from the story Record the release commitment points that you made and record the iteration commitment points that you made Include that for these extra stories 11 12 13 and 14. Okay, and then tally up those three columns Okay, so we'll have three separate columns here Okay, so I put this up just as an example here work this out recording value Recording release commitment and recording iteration commitment. Okay, make sense Okay, you still rolling.  Sum up the three columns. We'll have a value points. We'll have a release commitment points And then we'll have an iteration commitment points once you have those three columns The values the value assessment at this this organization is that total value is your value points Plus half your release commitment plus half your iteration commitment points. Okay, this is just an arbitrary thing I would if they if they had a little bit more time I'd actually do a something a little bit more complicated But I just arbitrarily said this is Navigating through all the chaos is a little bit a little bit much, but we're doing good. We're good. We've got you in this lap So let's go ahead and see where we're at with these total points When you've got it give you total points give all three numbers plus your total the fourth number is your total Okay, so get three numbers plus the total out to and when you're done with it write it write it on a on a on a note and and get it to one of the Facilitators the new stories that came in can't be counted against the release commitment. All right. How are we doing? Stone liquid liquid stone. All right Okay, who else who hasn't turned it in yet who needs you turned it in You're still waiting still calculating you've already turned it in. Okay, good. Okay. Okay, which one Okay Okay, we got it. Okay 215. Okay, awesome Okay, who has not given me their score sheet this one one in late. Yeah, yeah unknown Okay Okay, and you have a name you have a name here you have a name Put a name on What's your name? Okay, let's go ahead. I think we're already over here. So let's let's Wrap up you get the value points, but not the commitment points. I have no idea how anyone did anything Rules are meant to be broken I guess Okay, that's good We'll see what's how things work. Okay as they're finishing up. Well, I'll go ahead and read what we got here We got I got team crazy coming in at 215 Table by the door. That's a good name 230 liquid stone came in at 245 Yeah, you guys we can go at this for a long time bring the audit in here see start putting people in jail here for 249 for unknown Team unknown Table one is a 203 and a half What's that? At least yeah They're doing it very carefully they called for the audit before they turned theirs in Now they wait now they create the mess create the mess and then they come in and sneak it in underneath Okay, so do you have a number back there? 256 all right Now the whole game is made up that's okay. Yeah, okay next one. We have the navigators At 329 and a half what I didn't do what happened to team Lee 307 let's see. This is superstars or 307 271 for team Lane. All right What do we have here 256 and then The navigator is 329 and a half and the best one I have looks like the one is the last Beach Boys plus curious tester 345 and a half 345 and a half Alright the winners they get their bonus Okay, so a couple of things we are running late, but we'll we'll see. Is there something at 530? The the next session there's something at 530 right Nothing here. Okay. No, but isn't there something something on the main ballroom or something? Yeah, okay Okay, so we'll try to finish this up, but I'll do a quick retrospective here The first one did you have fun? All right, it looks like it was pretty good energy here a little crazy, but yeah good Was that a lot of chaos? Yeah, we had a chaos. Yes, we definitely had chaos I think I predict I can predict something. I predicted there'd be chaos and there was okay, so that was pretty good So what'd you learn anything? Did anything come out that? Okay, good. How was it fairly easy to do it relatively quickly and and then also how accurate was it? Was it did it do any any indication as to whether he did did a good job of it or did it you know? Was it pretty easy? Okay, good you had a Yes, yeah, it was extreme chaos at the beginning and then and then performance chaos after that, okay? Yeah, yeah Estimates don't matter. Just do it. Okay. That's possible. Did anyone use no estimates? Nobody nobody used no estimates You could What else anything else? What's that?  Okay You got a comment over here, I think What's that under other command and over over deploy. Yeah, okay. That's good.  Yeah, okay So how what are sort of things that are like soccer development or what are some of the things that maybe you're a little Misinterpret or not quite right in terms of the simulation Yeah, the value is not easy to estimate and in fact if I would do something more complicated if if we had a little bit more time And probably had the corraled some things in where value would have been even more uncertain But I would have added some uncertainty to value that came in later. I also do some things where Most teams got almost all the stories, right? so Sometimes when I do this and it's in a more complicated I'll make a deal where if one team does a story and no other team does that story then their value gets to be more right because then They're differentiated in marketplace, so I pull some other things in but we didn't do that for this one So so but yeah values one of those things that yeah, and the other thing is to notice that some of the stories value was very Random, right? It was a big gap in terms of value from almost like six to 120 I think on one of them so big range of value Not rolling dice exactly. It's a creative process, right? So this is just numbers, right? So it's fun. Yeah, everyone had a good time, but software development is fun, too Exactly Yeah, okay, here's an interesting what what the impact did committing have on your behavior You didn't do it So I've since we're running through time. I'll just a couple of observations. I've had when I've run this What I see happen is when when you have the commitment did anyone notice that they got more conservative You got very conservative when you committed Think about that in your regular software development, too. How much is commitment impacting? your Risk avoidance, right? So you got to balance it out. Why did they even include commitment? What value this commitment points even have? To the customer sometimes done, right? It's mostly politics. It's an internal thing So you could have I could have said can you set up with all these things having to tell you how to do commitment? And I could I have one version of this. I'll probably just zero the whole commitment thing out, right? so if it's a game sometimes we play so What really matters to the customer is the is the is the value you deliver I think there is I tend to feel that there is at least a little bit of degree of value to the release element because that's the business object that actually matters iteration commitments to me are relevant. I think are overblown in our industry. I mean, I think it's a little bit of a Almost an attempt at micromanagement. Now that given that there are times where I absolutely Expect the team to meet an iteration commitment if you got a trust problem I actually think an iteration commitment to making sure you can demonstrate Delivery and that delivery of value and delivery gets commitments is a good thing But if you've got a high-trust environment I tend to believe iteration commitments are actually creating potentially bad behavior Anything else I think we've got a five something Coming up now, but you get a reward. I would their bonus Yeah, we have to the audit stuff. Yeah, this team's gonna work extra hours and do the vote do the audit And I think you I think this team this team gets the gets the weekend off. I think right Take the rest of the day off. I think that's that's what we get I wish I had something Okay, thanks. I had fun. I hope you did too


This screencast will be another another one dealing with a sinusoid. In particular, we're going to be discussing the phase shift for a sinusoid. In the process of doing this, we will, of course, mention things like amplitude and period, but the main focus will be on the phase shift for a sinusoid and to some extent how to determine the phase shift given the equation of a sinusoid. Here's what we what we already know and this is called general form for a sinusoid. It might be just as appropriate to call it the standard form for a sinusoid. That really doesn't matter. The key here is that when we have this expression written in exactly this form, notice it's really the same for both sine and cosine. We will be able to read the amplitude, the period, the phase shift, and the vertical shift. This is assuming, of course, that A is positive and B is positive. C or D could be negative or positive. But when we have that, we can see we can read the various values. The period we have to calculate, but the amplitude, the phase shift, and the vertical shift can be read directly from those forms. The problem sometimes is our calculator or computer software, if we ask it for a sinusoid function in a certain situation, it may not give us the sinusoid in this form. And we need it in exactly this form in order to read these quantities from the expression. So if it's not in that form, we have to rewrite it so that it is. So for example, here's an example we're going to look at. This is, of course, a sine, but the same principle will be true, will be a whole if we also would have a cosine. And again, you can see that the difficulty here is this part inside the parentheses. It's not in this form. Okay, we can we can still look at this and say, okay, in this example, A equals 5, B, what's multiplying x will give us the B, that's 2. In this case, the vertical shift or D is equal to 0. What we don't see immediately is what the value of C is. And to get that, we need to write it in one of our standard forms. The key here is the expression 2x plus 3. What we want to do is rewrite that expression in this form here. And what we want to really do is factor out the 2. Well, that can look a little funny because how do we factor 2 out of pi over 3? Well, the idea, if you want to look at it, is you can always rewrite this fraction by multiplying both numerator and denominator by 2 and you can write pi over 3 as 2 times pi over 6. So if we do that, we can factor out a 2 and we'd get a result something like that. And again, we see one other issue that's come up here is this this has got an addition sign where our general form here requires a subtraction sign. So what we have to do is rewrite this at pi over 6 in a form of a subtraction. In order to do that, we use a property that says, okay, if we have a number q, we can always rewrite it in that form. And so what we do is take that x plus pi over 6 and write it as a subtraction and what we end up subtracting is minus pi over 6. And now we have this written in exactly the form b times x minus c. And this will allow us to determine the phase shift for this sine-us weight. So what we have right now then is y equals 5 times sine of 2 times x minus subtract minus pi over 6. And now we have exactly the right form of a times sine of b times x minus c. And we can see the amplitude is 5. The period is 2 pi over 2, or is equal to pi. And the phase shift is negative pi over 6. So we can see that what would happen is the sine curve would shift to the left, pi over 6 units. So there we've determined these that we want. Here's the summary of the work that we have done so far. We've got the original form of the expression. And this third form down here is the one that we really used to determine amplitude period phase shift and vertical shift. What we want to do now, and what we can do and also is check this work using our calculator. And it's nice to be able to then sketch a complete cycle of this sine-us weight. In other words, at least one period. In doing this, what I would really like to be able to do is show the phase shift. So notice that minus pi over 6, the phase shift, the period is pi. So if I add those two things, and we'll put some of the steps in here, we can see we write pi as 6 pi over 6 to get a common denominator. And so we get 5 pi over 6. So minimally, what I would like to do is have my x axis go from minus pi over 6 to 5 pi over 6. But it's also nice to see a little room on the sides. So what we're going to do is use x greater than or equal to minus pi over 3, which is basically negative 2 times pi over 6. And instead of going up to 5 pi over 6, we'll run it out to pi. And of course, the y axis, we will scale because of the amplitude of 6. And again, using that principle, we like to see a little extra room on the top and the bottom. So we'll use minus 6 less than or equal to y less than or equal to 6. So if you got your graphing calculator handy, you might set this up and see if you can get that graph using this viewing window. Okay, if you do so, you should see something like this. Now this was generated using geojabra. And although the x axis is not scaled for everything here, remember we went minus pi over 3, this here is x equal to minus pi over 6. So that's showing the phase shift of pi over 6 units to the left. And as we look at this graph and kind of sketch that out, we see one complete cycle out to here. And of course, we've already calculated this on the previous slide. That would be 5 pi over 6. Very nice way to be able to check your work on this. And I encourage you strongly to do that any time you're confronted with a problem such as this. That's it for now.


All right, thank you very much. So, hi. Yeah, I'm Russell Keith McGee. If you've heard of me before, it's probably because of my work on the Jango project. I've been a core team member there for 10 years. I've probably been president of the Jango Software Foundation since 2011. One of the big challenges of the Jango project, and any big open-source project for that matter, is has been to secure certainty in its long-term development future. My day job is as CTO and co-founder of TradesCloud, there are software as a service for tradespeople, plumbers, electricians, carpenters, people like that. TradesCloud depends on a number of open-source projects, Jango, Apache, Memcache, countless others. So, I've got a business interest in the continuity of these open-source projects, but I certainly don't have the resources to fund them all myself. I've also got a declared interest in user interface and GUI tools, especially as they relate to development tools. I've got all sorts of grand visions about what I'd like to do with the BWARE project, and I've received some great contributions from the community, but it's still largely my own work, but my startup would be able to make great use of these tools if they were mature. I'm also the maintainer of some smaller projects, like the Python wrapper to the Xero API. I started the project because I had an itch. My itch has now been scratched, but I've open-sourced the project, which means I've kind of inherited this maintenance task. I've accepted help from a number of people, most notably Matthew Schinkel and Aidan Listo have done some great work, but if I'm completely honest, the maintenance burden of PyZero massively exceeds the amount of time that I personally can reasonably dedicate to it. So I've got vested interests in free software. I've got interests in free software as a producer of a successful project with a high profile, as the producer of a small project with lots of users, but very little personal incentive, and as a producer of smaller projects with almost no profile but all sorts of really grand plans. And these projects all have different resourcing needs reflecting their maturity as projects. I've also got interests as a consumer of free software, both in terms of the software that I rely upon to develop my own projects and in terms of my commercial interest in the long-term maintenance of tools and platforms that I use. I need these platforms and these projects to continue to develop, to survive and thrive. Based on my experience, I'd like to make a very bold assertion. Absent of any other constraints, given equivalent resources, free software or the free software approach produces a vastly superior outcome than the closed-source approach. The catch here is the operative clause, given equivalent resources. Most free software projects aren't developed using anything close to equivalent resources of their closed-source counterparts. Now, in some cases, this is a blessing in disguise. Regardless of the process of the project, having scarce resources is an excellent crucible for burning away the unnecessary to leave just the base metal. But it's not always a blessing. Talk to any prominent free software developer and amongst the success stories, you'll also hear some really consistent troubles that they've got really great ideas and grand plans, but no time to execute, that they're about to burn out due to the pressures of maintaining their project or that they've had yet another mailing this discussion with someone who doesn't understand why you didn't drop everything to help them fix their problem. And there are plenty of examples of this. OpenSSL is the software that drives pretty much every secure connection on the Internet, and yet it took the discovery of Heartbleed, a critical vulnerability that sent the Internet into a tailspin before they could find funding to pay for maintainers. Another example, GNU PG, Verna Koch almost went bankrupt trying to support GPG, a project that many other projects depend upon for their trust in their release process. Verna was rescued at Death's Door in the UNIX Foundation's core infrastructure initiative. Now, those are both examples that ended with happy endings, with funding, but it's not all happy endings. Take the example of Capistrano, who was a hugely popular configuration management tool around 2007-2008, maintained by Yamas Buck. In 2008, citing burnout and maintenance overhead, he famously withdrew support for Windows, saying Windows may be the 800-pound gorilla in the room, but it's not my gorilla and it's not my room. This was an incredibly unpopular move amongst Windows users, but even with the scale down that came with that, Yamas burnt out in 2009, abandoning Capistrano wholesale and a number of other projects without maintainers. The thing is, though, this is a community that has lots of cash. In the grand scheme of things, software development is a well-funded industry. If companies can find money for football tables and meditative ball pits, they should be able to find resources to help maintain the software in which they base their success. And if you're on the receiving end of the problem, a developer of free software, that can be really frustrating. And for me, this is the really big unanswered question of the free software movement, how to reconcile the discrepancy between the clear demand for a software product and the ability to convert that demand into the time and resources needed to service the demand. Now, okay, in theory, the theory says everyone can contribute to a free software project. In reality, every single project of any significance has leaders. And at the most basic level, it's whoever has the commit bit. And you need that leadership, especially when you do anything where design is involved. The running gag is that a camel is a horse designed by committee. The very worst APIs we deal with on a daily basis are the ones that were designed by committee. You need someone with taste running the show. But there's a bigger problem. There's the extent of the engagement that users have with a project. Here's a third experiment to prove the point. We're in a room full of Python users. Django is a free software project. Who in this room has found a bug in Django or has a niggling thing that they'd like to see fixed with a Django API? Just show of hands. Okay, we're looking at probably about half the room. Who's turned that niggle into a bug report in Django? Yeah, most of those, okay, that's pretty good. Who's submitted a patch to Django for that niggle? Yeah, okay, so we're down to about a third of what was left there. Of those who've had that patch committed? Yeah, okay, a couple. That's better results than I got in PyKod Australia. So what's going on here? We've had a massive scale down from people who say they have a problem and down to people who have had that problem fixed. Well, what's going on here? It reflects two different ways of looking at a piece of software, projects and products. And it's a matter of personal perspective. My project can be your product and vice versa. When I look at a piece of code as a project, it's a body of code where I'm contributing to a larger goal. I'm willing to spend my resources focusing on other people's needs in the hope that their needs will help make the project as a whole better. I'm willing to do this because I get some personal gain, like an enhanced public profile, or if the tool is really close to my work call face, or if I know that I can make a really substantive contribution. But the further I get away from my call face, the harder it is to make a contribution, the less inclined I am to even what to contribute to a project. Most of the time, it's a product that I'm using. What's an all? If a product has bugs, I work around them. I find an alternative, rather than navigating the contribution process to contribute a patch back upstream. In the case of a product, the freedoms that are afforded by free software are a bit like freedom of speech. It's a freedom I most definitely want. It's comforting to know that it's there. But I don't spend every day making sure that I fully exploit the extents of those freedoms. There are people who do. Protesters, advocates for controversial social positions. And one day, given the right circumstances, I might join in and help them. But most of the time, I just want to be pragmatic and get on with living. The dichotomy between the theory and the practice is also the reason why comments like patches welcome get made in free software mailing lists. On the one hand, it's completely correct. Anyone can contribute to an open source project. And on most projects, patches are welcome. But most people don't look at a new open source project as an opportunity to engage with the development process. Most people just want to use the damn software. And you can argue that this is because people are focusing on the wrong interpretation of free and haven't captured the spirit of free software. And again, that's 100% true, but utterly counterproductive as a position. Anyone who's done any UX work knows that if users are consistently making a mistake with your user interface, blaming the user gets you nowhere. You were in charge of what the user experienced. They made the error because of a fundamental cognitive disconnect. And even if everyone did get the right message, let's be realistic, it wouldn't work anyway. The Mythical Man Month showed us you can't deliver a project faster by throwing more people at it. Nine women can't make a baby in one month. A project doesn't just need resources. It needs the right resources in the right quantities. And ultimately, that means the project finding a way to get the resources they need to be self-sustaining. So that means if you want free software to be maintained and maintained well, we need to find a way to fund its maintenance. 18 years ago, Eregas Raymond publiced an essay entitled, Cathedral and the Bazaar. That essay catalyzed the start of the open-source movement, a sort of a redefinition of free software to make it clear that openness, not price, was the important property we were aiming for. What isn't as well remembered is that the Cathedral and the Bazaar wasn't the only essay that Raymond wrote at the time. He published two other essays shortly after the Cathedral and the Bazaar, one called Homesteading the Newsphere about the social organization motivations behind free software projects, and The Magic Cauldron about the economics of free software. One of the key distinctions that Raymond highlights in that essay is the difference between use value and sale value. Sale value of a product is its value as a saleable commodity, literally what you can sell it for. The use value of a product is its economic value as a tool, as a productivity multiplier, and this is how much economic benefit the user will get from a product. The important thing you've got to know is that the two aren't necessarily connected. In a traditional manufacturing environment, the focus is on sale value because that's ultimately linked to manufacturing cost, the cost of parts and materials necessary in line, but most software isn't produced for sale value. It's in-house software produced for use value, and in the case of free software, the sale value of free software is zero. That doesn't mean, though, that the use value is zero, and the catch is working out how to exploit the use value that exists within an organization and using that as the monetization channel. Okay, so what are the options you have? Well, start easy. You can sell merchandise, and this is really easy to do. Throw a thing up on Teespring, you're selling t-shirts. But let's be honest, you're not going to fund your software empire by selling t-shirts. Okay, you can get your users to pay for documentation. Write a book, get users to pay for it, okay? Unfortunately, the dirty little secret of the tech writing scene is that nobody gets rich writing books. Thank you, Andrew. They're incredibly valuable resources for the community. They're great for patting your resume, but they're not so great as a revenue stream. One area that does pay well is selling training. Employers are willing to pay big bucks for training courses. If you can put together a three-day intensive workshop, you can sell that again and again and again. You can productise your offering. Source code remains free, but it is a simple, easy-to-use installer that costs money. And this works really well when what you have is a clearly identifiable product, something like, say, an IDE. One specific model of productisation is software as a service. Give the code away for free, but pay for the convenience of someone else having someone else administer it for you. An open-source web project is a good example of this. You can install the software on your own service. Yes, but honestly, unless you've got a reason to care, use someone else's hosted solution, give them money every month, let them take care of it for you. But software as a service is only really viable if you can deliver as a service, which means it's really only viable for web. Now, in this community, that's not such a bad thing, but as a broader software engineering thing, not every software can be done. Every piece of software can be developed as software as a service. And as technologies like Docker can modify development, it's possible that even this revenue stream might evaporate, because the hard part, the actual deployment, might be able to be completely factored out. Okay, so what else can you sell? Well, you can sell access to the developers. If you're the maintainer of a project, you're in the best position to provide support or debug complex problems, which means you're in the prime position to sell support and consulting. Honza Kral calls this the Ghostbusters business model. Who are you going to call? You can sell access to the software itself strangely. The project did this with QT. Riverbank still does with PyQT bindings. The library itself is GPL'd. But if you want to use it on a closed-source project, you can for a fee. Now, this has the advantage that it forces commercial interests to actually pay for what they're using. But it also has a problem of discouraging smaller-sized-scale commercial tinkering. If I'm writing a new tool and I'm forced between open-sourcing my tool or paying a $1,000 price tag, I might consider using a different option. You can also get into the business of providing certifications and guarantees, auditing code to ensure quality or compatibility, providing guarantees about fixing bugs, certifying that individuals are skilled in the use of your product. This is a big part of Red Hat's business model, auditing packages, making sure they all interoperate as expected, ensuring that security updates are available, meet the same standards certifying system administrators. This is a set of products that appeals to the enterprise end of town, and that's a really lucrative end of the market because those customers also tend to only want those guarantees for certain types of software, broadly speaking, boring, fuddy-duddy software. Your operating system, your database, these are the pieces of software that must be rock-solid in an enterprise setting. Your debug toolbar? Maybe not so much, unless it's being wrapped up in some other bigger suite of tools. Another problem with a lot of these revenue sources is that if you run your project well, a lot of them are ruled out or at least severely curtailed. If you make something truly simple to use, you've just removed the market for books and training courses, or at the very least, moved the ground to advanced courses and advanced books, which are a lot harder to write and have a much smaller audience. Django saw this firsthand. Django's documentation was famously very good from a very early stage, and as a result, it was very hard to get publishers to take on Django book projects because the documentation was too good and was undermining the market for books. It's taken a long time and a lot of self-publishing and very dedicated individuals, like Andrew sitting over here, to get good Django books available for sale. If you have a project mailing list with a community answers questions for free and it's a healthy, responsive mailing list, why would I pay for support? And if your software is well-designed and modular and those interfaces are well-documented and I need a modification, why wouldn't I just write them mod myself? Now, okay, I am exaggerating there. There are legitimate reasons to pay for support to bring in a consultant, but my point is the better you do your job as a free software engineer, the harder it becomes to make the business case for your revenue stream because the value proposition becomes a lot less obvious. And if it isn't directly undermining your value proposition, it can still undermine you indirectly because the more time you spend earning money, the less time you spend doing what the money is supposed to pay for. Administrating a certification program takes time. Writing and developing training courses and consulting can be lucrative, but developing a sales pipeline takes time. And if you're consulting, you need to make sure that sales pipeline is full, which means you're going to err on the side of taking on more work than less, which means you've just closed the door on the time you have available to work on open source. You also need to be careful that in selling your business case, you don't undermine your main project. If every hard question on your mailing list is answered with, well, we can answer that for a fee, you're going to start sounding like a shill. You don't need money to make sure you stay on top of security issues. You have to be really careful how you say that because the easy interpretation is, well, this project must be insecure because they're not on top of security now. There's also a question of scale. Python, Django, these are large projects with large communities. Making a business case for Python and Django isn't that hard. It's not trivial, but it's possible. But as the maintainer of a smaller project, say Django Debug Toolbar, to pay for its development or training and certification in its use, those revenue streams don't really exist. Smaller projects are no less important to the vitality of the overall Django ecosystem, but those projects aren't afforded the opportunities for fundraising that larger projects have. It's also important to realise that not all products are afforded these opportunities for revenue. An IDE can be productised. A developer library, probably not. Different projects need a different mix OK, so can we do this without selling something at all? Free software stems from a moral imperative. So can we fund development through altruism and patronage? Well, yes, it's harder, but there's evidence that it can be done. One option that's seen a lot of activity recently is crowdfunding. Platforms like Kickstarter, Indiegogo provide a way for a group of people to pitch in and contribute to a goal. Django Community has got a couple of examples of really successful crowdfunding projects, each raising tens of thousands of dollars. But if you survey the people who did these projects, they didn't really make money on those projects. The amount of engineering time that went into them really exceeded the amount of money they raised. Another idea that gets floated regularly is the idea of bug bounties, placing a price on specific bugs. Now, this is really just another form of crowdfunding. You want a specific bug fixed or feature added, contribute money. You really want it, contribute some more, and eventually, someone will take the bait and fix that bug or implement that feature. But it also has some really big problems. Most notably, who gets paid? Do you pay by lines of code written? Well, that ignores the contribution of reviewers. How much more important than writing code is reviewing code or triaging a bug or writing the documentation? But the biggest problem that I see with crowdfunding approaches is that they're in conflict with establishing a working income. If you're hiring yourself out, the shorter the engagement, the higher your hourly rate. This is a hedge against unemployment at the edge of your contract. You're best served by having a very small, clearly described, clearly achievable goal, so a month or two of work if possible. That means you need to charge your short-term rate in order to hedge against your long-term income. But it's also in your interest to have a low fundraising target so that the campaign actually tips and seems achievable. If it's too high, it can scare off potential bidders. It also means that the community is paying a premium for the development of new features, which isn't the best use of an already scarce resource. Okay, so if you want longer-term income, you need to start looking at longer-term engagements. This means you have to stop looking at funding specific projects and start looking at funding the person with grants and fellowship positions. I'm including Patreon in this list because it's effectively crowdsourced patronage. You're not paying for a specific thing. It's keep doing what you're doing money. Over the last 10 months, Django has been using this model. We hired a fellow at the end of last year, and the fellow, his name is Tim Graham, is responsible for keeping the project wheels greased. From a technical perspective, this has been a roaring success. Yes, Tim's made great inroads into our ticket backlog, and the response times on ticket reviews are lower than they've ever been. The hard part has been raising the money to pay him. We did a fundraiser at the start of the year, specifically to fund the fellow. The campaign raised about $50,000. That's no small chunk of change, but it's also not a lot when you're talking about a full-time employee. We're going to need to do another fundraiser really soon if the fellowship's going to continue. Almost everyone agrees it's been money well spent, but converting that into donations has been hard work. We're about to relaunch that fundraising campaign so that we can all contribute and hopefully be able to contribute. Well, we will be able to contribute that on a continuing month-by-month basis so that we can hopefully build an established income that we know we have every month to spend. Another approach to raising money is to embrace the devil and go commercial. Commercial interests have the money, so why shouldn't they pay for it? And this can be very successful under certain circumstances, but you also have to make a business case for the corporate owner. OpenStack's a great example of this. Why are Rackspace, HP, Red Hat, Ubuntu all interested in OpenStack? Because they sell products that benefit from commodifying a hosting environment. By making it cheap and easy to control cloud deployments, they increase the size of the market for cloud hosting, which means more money for them. Node.js is funded by Joint for similar reasons. Joint is making a long play that it's easier to develop web software. More people will write web software increasing the market for joint services. But Node is also a cautionary tale about corporate interests. What happens when the community and the corporate sponsor disagree about the direction of a project? Well, you get project splits like IOJS. Corporate money can corrupt. You need to be careful that project governance is independent of your funding source. Having a single corporate master also puts the project at risk. If that corporate master loses interest, Django is originally under the wing of the world company. Eventually, that interest waned and the corporate support dried up too. The other corporate answer that gets floated is to go get venture money. And there are some great examples of people doing this. Meteor, for example, is funding the development of their platform with money from a venture fund. Plenty of money to hire engineers, designers, whatever they need. What makes me nervous about this model? We've been here before. Who here remembers Ezel? Hey, there we go. Okay, so for those who don't remember, late 90s, Ezel was a .com company that was funded to develop the Nautilus file manager for Nome. And we got two years of great open source code. And then the bubble burst and the company went bust because strangely enough, no one wanted to buy a company that produced a file manager. Now, the good thing is we still have the code, but it would be better to have that code still being actively developed. And again, this discussion is happening in an industry where billion-dollar valuations are kicking around. Large parts of our industry are built on a foundation of free and open source software. But those with the capacity to contribute in many cases aren't contributing. Some are. These are companies that do give huge amounts back to open source companies. But there are a lot of companies that don't give back. And even those that do give back, many of them give the help they're able to give, which isn't necessarily the help that is needed. DSF, for example, regularly receives offers for free and subsidized hosting from hosting providers. And don't get me wrong, it's great. And it's incredibly helpful and very, very, very useful. But what we really need is someone on the payroll to review bugs. Earlier on in the development of Django, we needed people to review new features. We're in a constant need for graphic designers and artists and tech writers. We need people who know how to do sysadmin. We need community outreach. And we don't need 1,000 people donating one hour. We need 10 very specific people working 40 hours a week. When a disaster hits, organizations like the Red Cross call for donations. And they will usually say, please give us money, not tins of food or blankets. The reason? Money can buy what's needed. You can't control what people donate. And even if they do happen to donate exactly what is needed, there is a huge logistic task of working out what's been donated and how to get it where it's needed. Free and open source projects are much the same. They require resources. Some companies donate in kind. And that's great, but it's really exactly what is needed. And it's very easy to get distracted working out what to do with what has been donated, but you don't have an immediate use for. And sadly, just as with charities, many companies just don't donate at all. And I'm not claiming these companies have been deliberately malicious in not funding open source. If anything, we as a community have failed them because we haven't helped them help us. Most importantly, we don't have a mechanism in place to make it easy to spend money and easy to receive money. The current state of affairs clearly demonstrates that it's not enough that there is a lot of money in a community. You have to make the mechanism for donating that money as obvious and seamless as possible. And you have to have someone to direct that money towards. One model community that I think does this really well is the WordPress community. WordPress is GPL software. There are books, videos, blogs on how to write WordPress plugins and themes, the same as there is for every open source community. But critically, there are also books, videos and blogs about how to make a business writing WordPress plugins and themes. WordPress is GPL and therefore so are all the plugins, but they've got a store that you can go to to buy those plugins and get free ones and easily install them in your WordPress instance. The WordPress ecosystem has fundamentally embraced the fact that money needs to be part of the equation. And then by doing so, they've created an industry that is self-funding. And this, I'd argue, is one of the big reasons for the success of WordPress as a platform. In that vein, I'd like to make a very controversial proposal. What if PyPI was a revenue stream? What if when I registered an application or registered a project with PyPI, I could specify a price, either per install, per version, per app, per month, whatever. And then when I pip install, the cost just gets attached to my PyPI account and when I get a monthly charge on my credit card, that gets passed back to developer projects. If PyPI stats have been to believe, Django is downloaded from PyPI more than a million times every month. You put a 10 cent toll on each of those downloads. That would raise $100,000 every month, enough to pay for 10 full-time, well-paid developers or a metric buttload of diversity outreach, Django Girls and community support. You could also leverage the PyPI dependency information to pay it forward. If you're writing a project that depends on another project, you could opt to pass some of that revenue upstream or request that people downstream projects provide at times.  If PyPI took a small cut of the revenue raised, that could help pay for the development of maintenance of PyPI and potentially Python itself. You could also take some of that money, collect it, put it into a development pool. So if there's a new project that needs some bootstrapping cash to get started or an established project that needs some help for a big task like a Python 3 upgrade, the community as a whole can funnel money towards that project. Okay, what about people who don't have money? Well, you can still offer free passes. You're at a Django Girl event, use this promo code to have free access. You can still give away your software at no cost, and it's still free software. You're still developing Python, so you're still going to get the source. You could probably even make the sign-up process completely optional. All you're doing is paving the cow path, making it easy to collect a toll on the easiest possible way of using your software. Now, I'm not going to say that any of this is going to be easy to implement. Complete the aside from any technical challenge and nailing down those details, it's a bigger philosophical change for our community, and that's the much bigger issue. But the philosophical question about money is a discussion that we as a community need to have. What we've got at the moment is a tragedy of the commons. Everyone agrees that this software is good. Everyone knows the software needs to be maintained. But why should one individual company take on the economic burden of maintaining or funding maintenance of a product when their competitors are getting the benefits for free? For me, the key lesson from the music and movie industries from the last 20 years is that if you make it simple and seamless, make it easy to do the right thing, people will do the right thing. If you make it simple and seamless for a large company to swipe their credit card, get charged $100 a month for using all this open source software that they've been using for free, they will. Yes, people are going to cheat. Don't worry about it. As long as cheating isn't easier than doing the right thing. The biggest reason this isn't happening right now is that it isn't obvious what the right thing is. I could donate to the DSF or the PSF, but it's fiddly to organise and there's not clear where the money goes. And I could sign up to a few Patreons or sign up to a bug bounty program, but not everybody's there and I don't really want... The amount that's being given out isn't really enough to fund a real living and I don't just want to contribute beer money. So what are we going to do? Short answer is I don't know. There probably isn't going to be a silver bullet. I'd like to think that monetisation channel on PIPI would work, but I'll be the first person to admit that that might not be the answer, although there might be problems I haven't foreseen. But I firmly believe that this conversation is a conversation we have to have. Free software is a movement that is over 30 years old. Open source is almost 20. We've conquered the technical hurdles. We've even conquered the policy hurdles. Now it's time to tackle how we make this a long-term, sustainable industry, not just a set of commercial interests exploiting the naivety of a stream of do-eyed volunteers. Now, I'm actually going to take a slightly more controversial position now and not take questions at this point for two reasons. Firstly, because this sort of talk is a magnet for I have a comment on a question and questions, but also because this isn't a subject where I have the answers. This is a discussion we need to have as a community and I'm really eager to have that discussion, just not on this stage. We're about to break for afternoon tea. Please come and see me. I'm more than happy to talk about this at length and as always getting me to stop talking at length is often the problem. Thank you all very much.


My whole career and most of my research work have been influenced by the book. I held that book in my hand and you know all life valves went on. This book permeated into our thinking. We're standing on the shoulders of giants. We are able to see so far ahead because of people who have already done a lot of work. I've often asked myself how did this book come into being? The persistence of widespread hunger is one of the most appalling features of the modern world. It does not seem to engender the kind of shock and disquiet that might be reasonable to expect, given the enormity of the tragedy. Indeed, the subject often generates either cynicism, not a lot can be done about it, or complacent irresponsibility. Don't blame me, it is not a problem for which I am answerable. This is one of the passages I quote most often in teaching. It's lots of good quotes but that one I use every year. In 1979 when I came to India there was a big drought and one thing that struck me is that famine was averted basically through massive relief works and that was in sharp contrast with what was happening at the time in Africa where there was famine after famine in the absence of a relief system. I wrote to Amrotho and I pointed out that something should also be written about the prevention of famines and that letter actually was the beginning of this collaboration which has now lasted more than 30 years. I said well why didn't you come to Waida? We would work together and do a work. I knew the Bengal famine because I grew up amidst it in 1943. So I was studying famine elsewhere including in sub-Saharan Africa. In 1986 I was 34 years old. Waida had a conference which Amartya Sen was the chief organizer.  The introduction to the proceedings took a life of its own and it became a separate book which became hunger and public action. This was the decade of Thatcher and Reagan when the dominant view was that states should actually withdraw and things should be deregulated and left to the market. We made the case for the importance of public action in development. This book is picking up on Amartya Sen's earlier work on famines where he pointed to the fact that you can have famines in times of plenty and he gave evidence from historic famines where the distribution suddenly got lopsided. The people who needed the food could not get to it. They were being priced out of the market. Public action, the state action can do a lot. You don't have to wait for the next 40 years to become a rich country in order to reach out to the poor in order to improve the standard of living. You're opening up fields of inquiry and from the front of your research we were pleased that the hunger and public action generated a huge amount of work by others who pursued the question often rather better than we did. Hunger and public action put you anywhere on the map. It changed the way we thought about poverty, famines, hunger, food security and then ultimately the capabilities approach. The capabilities approach had been around for a while but with this book for the first time we could see in very concrete and practical terms how we could yield concrete policy action and policy recognition. The timing of the book was also linked to a shift in thinking and development that moved from the entitlement dimension really to this capabilities dimension and human capacity. We needed to understand how we could bring that human dimension far more into the center of development. The capabilities approach is about what people want to be or do. People want to be educated, to be politically active. They want to do specific things. So these beings and doings think of a bicycle and you can see it just as a good. But what really matters is not the access to the bicycle. What matters is the fact that the bicycle allows you to perhaps have a job to transport yourself and try to socialize. But it could be that I don't have permission to ride a bike and so having a resource like a bike doesn't mean I have the capability to move around. The capability approach broadens our lens just to make us see much more of people's lives and how they interact with the economy rather than narrowly focusing in this case on income. The thinking about human development and the work that Andries and Sen had then done began to find a new form of expression and the human development report I think was one articulation of that with the largest development agency in the world at the time. The human development reports use the index as a tool to send the main message which is let us think beyond income. But actually the human development reports are important because of the process that allows you to think about different issues in a different way. We're in London at the Institute of Education UCL at the 15th Human Development and Capability Association Conference. It is very much a community of people for whom Amartya Sen's work has had deep and meaningful impact on their lives, on their intellectual journeys. So my research is looking at how university influenced the capabilities of women in my country in Indonesia. In the beginning I was just looking at the surface level. That's everything is considered in terms of numbers, income and salary. But then with the capability approach it actually really looked what's beneath under those numbers. When doing research you have to have a particular kind of glasses like the ones I'm wearing. So I'm using capabilities approach at the frame and I'm using African feminisms as the lenses. I am marrying them together to look at a problem properly so I can see different things. Currently I'm doing research in terms of poverty inequality and also policy making. You need to go beyond necessarily things that perhaps are material. You need to understand that people value other things that are very subjective and they have the right to value. Data is only a partial manifestation of human life. Many students of economics learn mainstream economics and they are not able to connect it with real life. And I think that this is the situation in which I found myself. So I am hoping that it is easier for many of them today because of that earlier history including this book and many other books that have been published since. If you focus on asking the right question you're opening up fields of inquiry as well as encouraging people to pursue more complicated research. I joined the World Bank in 2012. I find it's much easier to make this case for direct action, public action, state action because of books like this. It was Univider's first book. This book is essentially what is really Univider's DNA. It's ability to change thinking and be this thought leader that can have a huge impact. So I see this book as an example of what Univider has done and can do in the future.


Shit, sleeves rolled up. There we go. Oh, exactly. Thank you. Thank you. Your prime minister. Thank you, Bono, for that kind introduction. I swear I had my sleeves rolled up before I walked into the room. And I do have to say that my wife is a much bigger fan of yours than she is of mine most days. So I think that makes us even on that level. Thank you, Bono, for inviting me to be part of this. I know how important it is for you to be focused on bringing everyone together, focused on challenging everyone, and the fact that you are sharing the stage with a politician is something that I really, really appreciate. Thank you. But this is an issue that goes beyond political parties and politics, and that's why I'm so glad to know that there are politicians, MPs, from every different party in the room here today, and I think that's really, really important to recognize. This is beyond partisan politics. The first time I met Bono, it was actually, I was a leader of the third party in Ottawa, and he came, and he met with all party leaders to talk about our engagement with the world, talk about international development, talk about the one campaign, talk about everything he's been involved in, and it was a pleasure to meet him then, and of course, he remembered everything I had promised in the third party position when we met again in Davos, and he called me on it, and he said, okay, you've said all the right things, let's see you pull together the world and host a replenishment conference for the Global Fund, and that's exactly what we did here, and we show that the world comes together. A lot of people talk about it as governments showing up and pledging, but it's been so much more than that with private foundations and private sector leadership, but mostly civil society, activists, citizens, making sure that everyone knows just how hard it is, how important it is that we work hard together to solve the great challenges facing this world, and we couldn't do it without compelling voices that resonate beyond borders and around the world, like Bono, so thank you so much. It's been an incredible day with extraordinary people, and I'm really, really pleased to be able to highlight that today's success really wouldn't have been possible without the amazing work of Marie-Claude Bibo. Marie-Claude, our Minister of International Development has worked for months and months on this success that we have today, and it's truly an honor that we have achieved this beautiful success, because today our global family came together in support of the most vulnerable, and we showed the world what true strength and solidarity looks like. This day, my friends, is one for the books. Thank you for all being such an important part of this journey, and thank you for your leadership on these important causes. I would like to thank our partners for allowing us to achieve this goal, which seemed impossible to achieve. Our country's donors across the world, our private sector partners, the leaders and activists of the World Fund, our friends and allies who fight these epidemics directly on the ground every day, are the hard work of all these people a day like today wouldn't have been possible. Thank you for believing that together, we can make a difference. Those who heard my speech yesterday at the conference are probably already a good idea of my position on the issues that women and girls face. As a husband to an incredible inspiring woman and a father to a beautiful, whip-smart little girl, it should be no surprise that I am a proud, unwavering feminist, and so will be my sons. And to be honest, it's absolutely baffling to me that every time I say so in the media or any sort of forum, it really makes news. But the fact that it does make news tells me that I need to keep saying it, and we all do. Les leaders politiques, sociaux et économiques doivent faire preuve d'audace. Nous ne devons pas avoir peur de déclarer haut et fort que nous sommes féministes, que nous n'accepterons rien de moins que l'égalité pleine et entière des femmes et des filles dans le monde. Maintenant, je sais que je m'adresse à des gens qui partagent déjà cette vision, mais n'oublions jamais que nous avons tous la responsabilité de faire avancer l'égalité à chaque occasion. Et je sais qu'il y a encore énormément de défis pour moi, pour mon gouvernement, pour le Canada. Et je compte sur vous tous de me mettre au défi de nous exiger qu'on fasse plus, de nous rappeler que le travail n'est pas fini, alors que ce soit Bonneau, ou n'importe qui d'autre qu'elle, citoyen, qui nous disent, non, non, c'est bon, mais il y en faut en faire plus. Je l'accepte énormément, mais je vais vous demander de vous impliquer pour m'aider à y réussir. La pleine égalité des femmes et des filles est l'un des combats les plus importants de notre génération. Nous ne pouvons pas nous permettre de perdre. Nous savons que la réussite de toute société repose sur la participation de tous ces citoyens, et surtout les femmes et les filles. Lorsqu'on soutient les femmes et les filles et qu'on favorise leur autonomisation, nos communautés progressent et prospèrent. Nous devons donc faire en sorte que nos paroles se traduisent par des gestes réels et concrets. Et les résultats impressionnants obtenus à la Conférence du Fonds mondial ne sont pas essentiels dans la bonne direction. We know that poverty is sexist, and we know that the far-reaching impacts of poverty are cyclical. Women and girls living in poverty are less likely to get an education, more likely to suffer from disease and almost always lacking basic social, political and economic rights. When you don't have an education, it's hard to climb out of poverty. When you're battling disease, it's hard to climb out of poverty. And when you don't have basic equality rights, it's hard to climb out of poverty. It's time to accept that these barriers to living a full, healthy and happy life are undeniably interconnected. And it's time to do our part in tearing down these barriers. It's time to break the cycle of poverty, and together we not only can, we will. Thank you very much for being here from every corner of the country. Thank you for your activism, your engagement. And boy oh boy, I look forward to taking some questions from you now. Merci beaucoup.


I'm back! Having taken a pounding in the first round, I've got to get my head back in the game. I can't let my family down. Now I feel like this match is starting to go my way. You want to win this fight, you win this round. It's been a good course at the end of the day. She won. Now I'm buzzing. I don't know how much winning means to us or I'm going to be more happy. Seeing her happy is like, you pee. Literally, well done, Amber. The boom, boom, butler. Go on girl, buzzing. I've heard someone cry. Who? You? Are you cold?  Honestly, I'm buzzing. Did you have to cry? No, I didn't cry, I got to hear me. I always tell you that you make me emotional. I don't know what you do to me, Mum. That's really sweet. This is just like, maybe 10 times happier. I feel like it's like a start to something else as well, do you know what I mean? Things like that do bring us closer together. Yeah, I dropped this back. I'm not like, you see, I don't think. I'm well padded, so you can give me a hug. Who's the kiss? Okay, yeah, I'll put it.


Okay. So let's try a significant figure rule problem using multiplication or division. So this one's of course division, right? So everybody knows that this sign here, even when it's all on the same line, means division, okay? So another way that you can write this and probably the way you want to start writing this in chemistry class is one over the other, okay? So this is how they write it in like the textbook or like if I was going to text message, you know, a problem to you, I would write it like this because it's much more convenient to write on one line. But when we're working it out, it helps us out visually to kind of expand this, okay? So let's do that. So 103.37 grams divided by 20.5 milliliters. So what were the significant figure rules when we're doing division? Go to the what? Least amount of significant figures. So how many does this one have? Five. And this one? Three. Three. So this answer is going to go to three. Okay. And what are the units of this answer going to be? Can somebody tell me that? Grams per milliliter. Grams per milliliter, we say, okay? Grams per milliliter, okay? Why? Because grams divided by milliliters, they don't cancel each other out, right? You'd have to have milliliters on the top or grams on the bottom to have those units cancel out. So grams divided by milliliters gives us a new what we call derived unit, okay? So I'm going to write that down. Grams per milliliter. Okay, and this is going to go to three. So let's get our calculator down and say 103.37 divided by 20.5. And I see my answer says 5.042439024. Okay, am I going to put all those numbers on there? No way. Okay. If I do that, remember that's incorrect, okay? So we've got to go to three sig figs in round. So I'm going to show you what the calculator says. So 5.0424. Okay, so we're going to three sig figs. So what's my answer going to be? 5.04. 5.04. Okay, so 5.04 grams per milliliter. And I like to box in my answer just to show my instructor that is definitely what my answer is, okay? So remember this rounding rule is because this is a two, you're going to round, you're going to keep this at four. Okay, so round that thing. That's that same one. Any questions on this one? Grams per milliliter.


Nearly a month after Britney Spears' father, Jamie Spears, announced, intends to step down as the conservator of the pop mega-stars' estate, reports have surfaced that he has officially begun the process. Via court documents obtained from reports, Jamie, the father of Britney Spears, after being slammed in a damning testimony from Britney that sent shockwaves throughout the industry, has not only filed paperwork to have himself removed as the head of her estate but also is putting Wales in motion to request the courts end the arrangement altogether. The news comes just a week after Britney's lawyer Matthew Rosengurt alleged Jamie was attempting to extort millions from the Grammy winner estates just to step down. Specifically, Rosengurt claimed that Jamie was seeking $2 million in payments, which includes $1.3 million in attorney fees, $500,000 to Britney's former management company and additional payments to himself. As of the time reported, Jamie had not publicly responded to any of those allegations.