Coding Blocks - How to Scrum

Episode Date: April 12, 2021

We discuss the parts of the scrum process that we're supposed to pay attention to while Allen pronounces the m, Michael doesn't, and Joe skips the word altogether....

Transcript
Discussion (0)
Starting point is 00:00:00 You're listening to Coding Blocks, episode 156. Subscribe to us on Spotify, iTunes, Stitcher, wherever you like to find your podcast app. And yeah, if you find one that we're not there, let us know. And you can go to our website at codingblocks.net, where you can find show notes, examples, discussion, and a whole lot more. And you can send your feedback, questions, and rants to an email address, comments at codingblocks.net. Yes, and you can follow
Starting point is 00:00:29 us on Twitter at CodingBlocks, or head to www.codingblocks.net. What is this voice, man? I can't take it. All our social links there at the top of the page. I'm Alan Underwood. I'm on vacation.
Starting point is 00:00:47 I can't, I can't take it. I feel like I'm listening to like a, an advertisement for sweaty on a, like NPR or something. Yes. And, uh,
Starting point is 00:00:57 I am Mike Wadlow and thank you for listening. This episode is sponsored by Datadog, the monitoring and security platform for end-to-end visibility into your Java applications. All right, so we covered the stuff that you didn't need to know in the previous episode on Scrum. So in this episode, now that we've gotten past the overview biz we're going to dive into some of the the actual nitty-gritty details and how you might implement this this is the one that we have to pay attention to this one this one you should pay attention to and that makes sense this should be interesting because i believe we have some fresh new recruits that have just been through a lot of these things. So I think we'll have some thoughts on this. Okay.
Starting point is 00:01:48 Okay. Wake me when they get here. All right. So with that, typically in our news, we go over the reviews and stuff, but we were kind of recording this one pretty close to our last one. So we don't have any new reviews, but we did get called out on twitter about having the resources page out of date um we said that we have an sla of two plus or minus two years and we updated it within a couple weeks so um we got a thumbs up for that and and i love it we actually
Starting point is 00:02:19 got called out on the scrimmage did you see this on twitter no no not on twitter i'm just like laughing at ourselves for like patting ourselves on the back for updating the page like two years later yeah we're pretty bad about it like hey guys pat on the back we did good right but calling it two weeks we did it within two weeks we got it within a week of being asked to do it that's that's impressive um but so we mentioned on the last episode that scrum comes from the term scrummage in rugby games and we mentioned that it happens after a foul but i think that we or i i should say i portrayed it a little bit wrong because i said that's where people get together and kind of figure out how they're going to go down the field. If you watch,
Starting point is 00:03:07 so I'm going to have a link to the, to the tweet from, I think it was, yeah, David Stevenson. And he said, look, I want to show you a proper scrum and rugby after watching it.
Starting point is 00:03:20 I still don't really know. Nobody understands rugby, right? Oh, is there audio? Oh, cause this is on YouTube if i click play you're gonna hear it yeah oh no you probably won't hear it but i'll hear it but so here's the gist of it right it's a reset after a foul so it's not necessarily everybody gets together and tries to figure out what they're going to do going down the field they're just going to try and run people over like they do on every other play. But they have to get in these little huddles and try and shove the other team out of the way and kick the ball. The first person, I guess, that touches the ball with their foot or something
Starting point is 00:03:53 gets to that team. You pick it up and run with it. But at any rate, it's a resetting of play. And I've got a Wikipedia article link here that kind of gives you the gist of it but i guess that's why they took this term is at the end of every sprint you're sort of resetting play right like hey what are what are we doing now right like we finished that one all right start over let's let's go again with the most important thing so it's like the hoopoe and football american football a huffle my bad huffle oh it's like uh there was something football, American football. Hupple, my bad, Hupple. It's like there was something that we used to joke around about, like we still don't understand something.
Starting point is 00:04:32 I can't remember what it was now. Oh, open source. Open source. Oh, yeah, licensing. There you go. We still don't understand open source licensing, and we apparently don't understand sports that don't occur here in the U.S. That's right. That's right. So at any rate, that was great. Thank you, David, for sharing that.
Starting point is 00:04:51 So now that's it for the news and we're going to dive into the details. So I think where we left off last time was we were talking about the themes, right? And they don't actually show up in something like JIRA or anything like that. And then we talked about epics sort of go up underneath those themes. The next level down from that are user stories. And these are supposed to be a detailed valuable chunk of work that can be completed in a single sprint. So remember in the last one, we said a sprint could be anywhere from one to four weeks. Probably a good place to land is two, maybe three, but that means that you need to write these stories in a way that you can knock them out in whatever sprint duration you have. Um, and in the video that I watched that I mentioned the LinkedIn course,
Starting point is 00:05:45 they had a really good breakdown of like the things that happen when, when you write a story and it's the invest, um, mnemonic and it's, I is independent. The story should be able to be completed without any dependencies on another story. Anybody want to take a couple of these?
Starting point is 00:06:07 Yeah. All right. Uh, so sorry, I was, um, I was finding something very important. I'll show,
Starting point is 00:06:12 I'll share it here in a minute. I'm still, I'm still tripping on the way you pronounced that word. Mnemonic. I thought it was Johnny mnemonic. I thought it was mnemonic. No, I think it's mnemonic with a silent N.
Starting point is 00:06:25 See, we don't even know how to pronounce words. I'm going to have to go look it up now. Okay, so we're on the N in invest there. Forget it. We're done. Let's start all over. So starting over again, we're spelling invest. I was independent.
Starting point is 00:06:41 And N is negotiable. The story isn't set in stone. It's important to know that you should have the ability to modify that. So if you get it and it doesn't make sense or you think you can make it better or you think there's something about that that should be mal. What's the action of malleable in something? Hey, so we both said it wrong, Outlaw. It was a mixture between what I said and you said.
Starting point is 00:07:05 It's not pneumonic. It's actually pneumonic. The M is silent. The M is silent, but it's pneumonic. So, yeah, we were both a little bit off. We're there, though. Pneumonic. And that's the important thing.
Starting point is 00:07:24 We don't know how to pronounce this word with this weird M that's silent. Like, when is the M ever silent? Right. I should have just stuck with it. Yeah. Acronym is what I should have done because I know how to say that. We're going to substitute everything with the words we know how to pronounce. That's right.
Starting point is 00:07:44 So we're talking about user stories. We we know how to pronounce. That's right. So we're talking about user stories. We're spelling invest for the Melmont acronym. I was independent and was negotiable. V is valuable. The story must deliver value to the stakeholder. And remember who the stakeholder is, right? It's the person. Wait, stakeholder.
Starting point is 00:08:02 Isn't that the business owner? Yes. Whoever you're actually delivering the product to. Okay. So if I say I'm a, as a customer, the stakeholder is the customer. Is that,
Starting point is 00:08:11 is that right? I thought the stakeholder was always like the person who had a, it could be the all the chickens or whatever. It could be the product owner, right? It could be, but it's yeah. Whoever you deliver in the software to.
Starting point is 00:08:23 Okay. Anyone with a vested interest in the product who is not part of the scrum team. Right. Okay. All right. So outlaw, you want to take a couple of these?
Starting point is 00:08:34 Yeah, sure. Why not? We passed the V. Yeah. Oh, I know that Mark. Well,
Starting point is 00:08:40 Joe, Joe doesn't keep up. So I was looking up something very important on Twitter. I'll help you know. All right. So the next is the three. No, I'm sorry. It's an E.
Starting point is 00:08:50 So it's estimatable. You must be able to estimate the story. And I guess we'll go into the details of why some of these are important later. Or can I go ahead and say now that if you can't estimate the story, then that probably means that you don't have uh you know the details that you need it's too vague if you can't even estimate it agree which means that you're probably you might not be able to even fit it into your sprint right uh s is small you should be able to estimate within a reasonable amount of accuracy and completed within a single sprint.
Starting point is 00:09:26 And T is testable. The story must have criteria that allow it to be testable, which I think another way that you could say that to the testable portion is like the success criteria, right? Because depending on what, like to say it's testable kind of makes it sound like you need to be able to write a unit test or an integration test. And that might not always be applicable. Agreed to, to the thing.
Starting point is 00:09:53 I think, I think Joe has us a new mnemonic. Do I? I don't, I was just saving a note for later, but I did want to ask a question about, uh, estimable estimable.
Starting point is 00:10:09 Uh, so what's something that you can't estimate? Is that like an open ended research? Like what, like what is, what is a non estimable ticket? Just like that. What you just said,
Starting point is 00:10:19 if it's too vague, like outlaw said, I think, I think research is a perfect one. Um, if somebody is like, uh, need tolaw said, I think, I think research is a perfect one. Um, if somebody is like, uh, need to find out,
Starting point is 00:10:28 I don't know. I can't even think of anything off the top of my head. Experimenting like, Hey, you know, would flank work better for this situation than beam would, or would we be better off with Kafka Kafka streams app? And in those cases,
Starting point is 00:10:43 like those are three different technologies that you like, I don't know. I just need to like figure it out and go experiment, but you don't know how much, how long either one of those might take you. It's literally like a research thing, a research project. It may be better off to like,
Starting point is 00:10:55 say instead of trying to take on all three at one time, maybe you're like just go a one after one in a given sprint. Right. As a, as a developer, I would like to implement a flink pipeline to do real time streaming on event data, right?
Starting point is 00:11:09 Something like that is, is easier to lock down. So I say, I just don't know how long that's going to take. You'd say, we'll break it down into smaller pieces and let's find an early one that you do know how to estimate. And I,
Starting point is 00:11:20 and I think in some cases the unknowns are hard to do, right? So it might be that after you do your first story and you find out that you just didn't break it down far enough, when you create your next story, you'll know the bits and pieces that you need to call out. But it also might be like way too open-ended. Like it doesn't have to be a research thing. It could be like a real thing, but it could just be way too vague and open-ended. Like I want to build a Twitter competitor for this sprint.
Starting point is 00:11:47 Right. Really? Yes. So, so yeah. All right. So I think I actually, wait, Joe, did you have something you want to share now or were you going to hit us with it later?
Starting point is 00:12:00 I think we'll do it later. I'm putting it in the, the notes now. Can't say that one. Okay, got it. I'm still figuring out how to talk about it. All right, so as he figures out how he's going to mention this in a way that is good. Good luck. I kind of just said it a second ago.
Starting point is 00:12:20 Stories should be written in a particular format. There's actually a way that they suggest you do this because it defines a few things. So one is as a user role, like the user role being who it is as an administrator, as a customer, as a developer, I want, and then you fill in their requirement so that you get the desired benefit. So one of the things that I think I saw somewhere is as a developer, I want to upgrade to the latest version of Kubernetes so that we get better metrics on our nodes and our pods, right? Like that would be a good story for a developer. It's not a functional thing that any end user is going to care about, but it's something you care about for your end user is going to care about,
Starting point is 00:13:05 but it's something you care about for your team. So you can monitor and observe your system. Maybe you just have crappy users. Then if they don't care about your Kubernetes version, it's possible. They say it's always a user. It's always a user error, right?
Starting point is 00:13:19 It's like written right there in the footwork, you know, the footer of the webpage, you know, like copyright, blah, blah, blah, Kubernetes version, blah, blah, blah blah uh that's all every decent website has it oh oh by the way though so i just mentioned that was a non-functional it's worth calling out because i so the three of us actually had an issue with this recently in that it seemed like
Starting point is 00:13:41 every user story we're coming across was like a web page component or something, right? Like something tangible that people could go feel, touch, look at. User stories don't have to be that. So there's functional user stories like, yeah, I want a page that does, you know, X, Y, and Z. But there's the non-functionals, which are, I need to set up some database tables. I need to set up indexing. I need to, you some database tables. I need to set up indexing. I need to, you know, make connections. I need to create a connection library for, for talking to these
Starting point is 00:14:09 various different data stores. Right. So just know that every story doesn't have to be something that someone interacts with. I love these by the way. And here, here's the reason why, do you remember? Um, I think we talked about it in regards to like cucumber and spec flow, but it's not necessarily specific to those technologies, but the given when then syntax. Yep. syntax and you know shame on me like i never uh it never became habit but i did i have done it a lot over the years but you know i guess it depends on like how much time i feel like writing the ticket as to whether or not i do it you know but it makes it super clear like what the expectation is right and to me this is basically that it's just, you know, semantically you use different words, but you still accomplish the same thing.
Starting point is 00:15:13 Given that I'm an administrator, when I blah, blah, blah, then I can blah, blah, blah, right? You know, given I'm an administrator, when I look at the Kubernetes version, it's upgraded. It's like that. It'd probably be better than that, but yeah. Yeah, just look at the version, right?'s upgraded it's like that it'd probably be better than that but yeah yeah just look at the version right i want to see the higher numbers um yeah i mean it takes you back to just sort of your elementary grammar type stuff right like cause and effect type things right like i want this so that i can do that and and that's a really good way of telling the story
Starting point is 00:15:40 and it is a story so it's perfect so would you want to, what's a valid reason for wanting to upgrade, uh, for the benefit you get from upgrading something like Kubernetes? Well, like I said, one of the ones that we actually ran into this on our own team was, um, in, in an older version of Kubernetes, you couldn't see like some of the system metrics unless you upgraded the thing. And then you could see IO performance and that kind of stuff. Right. So there's that, but there's another,
Starting point is 00:16:09 there's another great story for these kinds of things is, Hey, I need to upgrade my SQL server from version 2012 to 2018 because it's no longer going to be supported in a month. Right. So there's all kinds of legit reasons to do upgrades. Yeah, so I was thinking like, so we have better, it's like, I don't like the word have,
Starting point is 00:16:30 but because it's not action oriented, but you know, it's not like your English professor is sitting there grading your user stories. So I was just trying to think if there, you know, it's very easy to write bad user stories if you want to get kind of tricky with it. And so there's a Twitter account that I follow that's got a dirty word in it. So you're going to have to go to the show notes and click the link.
Starting point is 00:16:50 Would you say it's a crappy word? It's a crappy word. Yeah. Say crappy user stories except it's not crappy. Something user story and actually no IES, it's just one. And every tweet is just a user story.
Starting point is 00:17:09 And some are just like bad because they're like written poorly, kind of in the sense that like, this is how a developer might write a story when they are just trying to get the job done and check it in and get to work. But sometimes there's other ones that are pretty funny. Like as a website visitor,
Starting point is 00:17:27 I want to enable notifications on my web browser so that the daily mail can let me know that Kim Kardashian can't stop smiling as she heads into a meeting about a divorce. So it's kind of funny stuff like that where it's like no website visitor ever wanted to enable notifications, right? They only do it on accident. So obviously that's a joke there that's pretty good they only have 130 of these that's it they got 58 000 followers apparently they're worth it i'm sorry i was thinking about
Starting point is 00:17:57 about your upgrade examples though so uh because you know joe was asking about like why why you would write the story like that or how you would write the story like that. And I was thinking, as a Kafka Connect developer, I want to use the Strimsy operator version blah, blah, blah, so that I can take advantage of horizontal auto-scaling. Right? That might be an example of where you name the goal is to upgrade, but why do you want to do the upgrade? Right? And it's not that you're necessarily doing the coding as part of
Starting point is 00:18:36 that ticket. That ticket is just about the upgrading. You're just saying why. The justification for it. Yeah, and I like that better so I can have something because they have something it kind of the reason that they want you to phrase things like this is because they want to set you up to be able to have uh be able to break the stick down in all the different ways things it defines the stakeholder so you know who to talk to or who you're supposed
Starting point is 00:18:58 to be dealing with it defines the action you're going to take so this is what you are going to do and it defines the result that you're going to get. And so if you just say, so I can have something and then it's kind of like, it makes it wishy-washy on your acceptance criteria. And so it kind of sets you up for vagary. So I wanted to point out another one of my favorites. This is actually probably my favorite of these user stories. And this is the reason I follow this account. So this is an example of a bad user story as a user. I want to sign up for an account so that I have an account. And there's something about that have word.
Starting point is 00:19:38 I think that almost like kind of leads you to writing about user stories. If you use the word, have any user story, then maybe a sign that you're being vague there. I don't know that I've ever thought about it at that layer. Yeah. Well, I mean, even though still, like, instead of given when that, this is as a I want so that. Right.
Starting point is 00:19:59 But I think given when that just, like, flows better. Yeah, when that, so that. Yeah, I like that. All right. So I see what. All right. So I see what you did there. That's pretty good. Bazinga.
Starting point is 00:20:13 We have new toys. So let's, let's go to the next part here, which is want to remind you of what we said in the previous episode. That wasn't that important. The whole episode wasn't important. just this one part, right? But in the previous episode, we talked about the fact that teams are supposed to have team norms, and there's supposed to be these definition of dones. And there's certain things that the definition of done applies to everything.
Starting point is 00:20:48 You should not have to write this in your user story, right? I need this thing deployed to my QA environment before it's considered done. That's, that's a rule for everything. So now let's talk about these things called acceptance criteria. So every story is supposed to have acceptance criteria that is unique to that story, right? It shouldn't be you need to deploy this out somewhere, you need to test it.
Starting point is 00:21:13 That's complete garbage. You know that that's supposed to happen. Is it? I forget. I say no. It's supposed to happen. I think I had somewhere in the notes that, oh, one of the stories I put up there that I didn't even read off was like, as a user, I want multi-factor authentication in the user profile so I can securely log into my account. Right.
Starting point is 00:21:40 So if we if we stayed with that notion, then some of your acceptance criteria might be the token is captured and saved, like you can verify it in the database. The verification of the code completed successfully. So if you've ever done MFAs, typically you have to punch in a code twice after it refreshes. And the login works with the new MFA, right? Like those are some pretty good acceptance criteria to make sure that if you implemented this feature properly, these three things have to be testable. You know, basically like what Outlaw said, maybe you can't unit test it, but you should be able to verify that those three things are happening. Who writes the acceptance criteria in a perfect world? I believe it's so most of the stories are supposed to come from the project manager. So there's the product owner who was probably your stakeholder, right?
Starting point is 00:22:41 Then your project manager is going to be whoever is, you know, breaking out these stories. And then it's your teams that are working on these things. So it's supposed to be the project manager, but that doesn't mean that you don't have developers and people on the teams that help fill out some of these details, right? I was thinking when you asked about like, who does this in an ideal world? And I was immediately, my mind went, not it. Yeah. Yeah. For real. Yeah. I was just thinking, you know, MFA, like I look at these things. It's like, yeah, that all makes sense. Oh, but wait, I, uh, as a developer, I want a way to turn this off in development. And Ooh, if that service is down, we should probably have a backup plan.
Starting point is 00:23:20 And Ooh, if they forget their MFA, we probably need a, you know, so it's like, this is a big story, right? Right. It is. And man, that's really good stuff too, because if you keep those in mind, we'll get into some of where that comes into play here in a minute, because that's really important. That might be an example of a story that we ended up kicking back or breaking up into multiple stories and kind of rolling out more slowly.
Starting point is 00:23:43 Totally. Totally. Totally. And these acceptance criterias define what done means for that story, right? So you can't mark that thing finished until you've checked all the boxes that have been put as acceptance criteria on the story. And it's important to know that depending on the tools you use, like if you're using Atlassian Jira, um, they will have, they actually have a feature for acceptance criteria, like a box that you can put check boxes in to where people actually have to tick them off to mark.
Starting point is 00:24:14 The thing is done, right? Oh my God. I just click all those myself. It's so frustrating. Like, come on, man,
Starting point is 00:24:20 you're not clicking those things. Like you didn't do all this. You just clicked them. I didn't feel like the first two and now I just leave them blank. But you know, the problem, you're not clicking those things. Like you didn't do all this. You just clicked them. I didn't feel like the first two. And now I just leave them blank. But you know, the problem, you know,
Starting point is 00:24:27 the problem is the acceptance criteria that we're talking about, that these guys are like, yeah, I just checked them all. Those aren't true acceptance criteria. Totally. Those are supposed to be the definition of done that is supposed to apply to everything that you should have already known.
Starting point is 00:24:42 The acceptance criteria should be specific for that story, which in the situation we're talking about here, it's not. Yeah. It's like, you know, sometimes the committee gets together and like, well, these are the things that define done. And it's like maybe that this person signed off on that person signed on, it has been deployed. You come up with this list of like 13 things that constitute done.
Starting point is 00:25:00 And then somebody has a ticket that's like, you know, check on backups or something you know something very minor and none of that stuff applies and because you went out and you were specific and kind of wrote down exactly what you wanted for 80% use case maybe it doesn't fit for the other 20% which is awkward and
Starting point is 00:25:17 I'm not saying it's bad to have that stuff written you know it's great to have that in there but it's just funny when you like whatever you're doing doesn't make sense. And that's kind of weird, too. Ticketing systems, there's kind of this hard line between help desk items and just kind of different types of tasks.
Starting point is 00:25:34 And the ticketing system doesn't always fit well for those other things. You can put it in there, and it helps you budget and allocate time and all that other stuff that you get, but it's really awkward for user stories. Yeah, it can be. Or to write user stories for those things.
Starting point is 00:25:46 Right. All right. Like, check on backups so I don't get fired. That's a good one. As an employee, I want to check on the backups so I don't get fired. That's awesome. So the next part was you're supposed to set up team boundaries, and we already mentioned the definition of done and how it's supposed to be part of everything.
Starting point is 00:26:08 There's another one that the backlog prioritization or grooming is what they call it. Grooming the backlog. You are supposed to constantly, or I say you, the project manager should constantly be ordering this thing by value, right? So they are going to the product owner and talking to them and saying, Hey, what is the most important to the business or to the success of whatever this thing is? And let me reorder it.
Starting point is 00:26:37 It doesn't matter that you've had stories in there for three months. The same story might keep getting kicked to the bottom of the list because it's just not as important as other stuff that comes up. Right. And that's the whole purpose of agile. Nowadays, you'll see this referred to as refinement a lot of times. Right.
Starting point is 00:26:53 I still really liked the way that we've talked about John, our friend John that was on episode 100 had mentioned this idea that we've talked about where like the, the prioritization be based on – like typically we would do this based on like this is priority because this customer wants it or whatever. Or I just think like this is the amount of time i'm willing to have spent on this thing and if it can be done in that amount of time great if it can't then i don't need it that bad right like if it can be done in three weeks then i want it but if it's going to take three months yeah i guess not i don't care and user stories might help that right right? Like if you have,
Starting point is 00:27:46 if you create a net pick or something and then you break it down into user stories, you might be able to say, uh, we story pointed these things and based off our velocity over time. Yeah, this is, this is going to take us three months, right? Like you might be able to do that as you build up some of that, um, past history of how quickly you're able to move through your backlog items. And then the other thing that they said about the team boundaries is, you know, you have set up the sprint cadence, which we mentioned that, and the cadence is just how long your sprints are. They say two to three weeks are probably best. Oh, and here was an interesting thing. So I think I mentioned it on the last episode, but they said that two weeks is really good because it sort of gives everybody
Starting point is 00:28:32 a sense of urgency, but it doesn't throw people into a sense of panic. Right? So the whole point of a sprint is to really try and push to get things done, but as at a sustainable rate. And they found that two weeks is a pretty good timeframe for that, right? Like, you know, you got to get things done, but as at a sustainable rate. And they've found that two weeks is a pretty good timeframe for that, right? Like, you know, you got to get things done. So you're not slacking off and you've got enough time to get something meaningful done. If you go down to one week, you may not be able to get anything meaningful done, but
Starting point is 00:28:57 the pressure is really hard, right? The problem. You get under a day, right? The problem. You go to the bathroom. Blah, blah, blah, blah, blah, blah, blah. Okay. the problem you get under a day right the problem you go to the bathroom okay that's uh uh the problem i think with both the one week and the two week though is they are not forgiving no if you have one or more members of your team that take a week off for vacation which is quite common right then? Then it throws, you know, either, either you lost the entire sprint or you've lost half the sprint. And, you know, so that's why I like
Starting point is 00:29:33 the three week one, at least you've only lost like a third, right? So it's kind of like, okay, I guess, I mean, I have historically liked the two weeks better, you know, but I can see why I can see the value in the, in the three week, four weeks just seems crazy talk. Can we, can we agree? Yeah. Four weeks is too long. And it is one week also was crazy talk by the way. I agree. Yeah. Two, two to three is definitely it. Um, I do like the point of people taking time off. And when you consider what we said, the ideal team size was, which was seven plus or minus two. So you're talking about five to nine people. If you're on a five person team, you lose 20% of
Starting point is 00:30:11 your, of your coding or, or development capability for, for a week of that sprint. Right. So that's, that's a pretty decent chunk out of it. So yeah. All right. So this is where you've probably heard us hate and lament on anything that has this word in it over the past eight years since we've been doing this podcast, right? This one's crappy. Can we even talk about it? Are we allowed to say this word? I'd like to skip it. Okay. Do you want to try and say it out loud?
Starting point is 00:30:42 No, I'm good. We can just go on. All right. So I'm going to say it out loud? No, I'm good. We can just go on. All right, so I'm going to put it out there. I guess this is like saying Voldemort. Whoa. You can't just throw that out there. Estimates, man. Estimates.
Starting point is 00:30:57 So there are some important things here that actually made this come into focus for me. Because I've always hated estimates like straight up hate them you're saying that in past tense so i i'm not saying that i love them anymore i'm not saying that i've completely flipped but there there's a big difference and we'll get into it here in a second joe but there's i think he's become one of them i think that's what we're about to hear yeah this is where alan's moved into like management material or something like that i love my estimates so i can i can plan out everything you know what's so funny about that you know what i love to do and the reason why i like being a software developer is i love to
Starting point is 00:31:41 solve problems right like that is that I love to solve puzzles, problems, whatever. And what we're going to describe here in a second, it sort of clicked in my mind, like that solves a problem, a problem that I've always been frustrated with. So the first one is, and we've talked about this in the past and actually outlaw brought it up to me the other night in chat. I had totally forgotten about is actual estimation. There's that means how many hours or days will this take? Right. Somebody gives you something and you say, I think it'll take five days.
Starting point is 00:32:15 When you do that, you're locked in. And we've talked about this. This is why we hate estimations because it stinks. Specifically, we talked about it in episode 109, the pragmatic programmer, how to estimate. He didn't look that up. It was just sitting in the back of his index and his head somewhere. He had it. But then the other worst, the bigger it is, the bigger it is, the worse it is too. You know, it's just hard to be accurate on. So try to keep it small.
Starting point is 00:32:45 And that was, if I remember right, so going back to that episode, Outlaw, and you reminded me of this the other night, it was that whole point of the smaller it is, the more they want to hold you to it. And the bigger it is, the more nebulous it is, but they still. Well, not exactly. Let's finish this section because I was definitely going to bring it up, especially with one of the bullet points coming up.
Starting point is 00:33:08 Okay, cool. All right. So the next one is not actual estimation. It's relative estimation. And this one's interesting because, and I wrote in here actually wrong. I put the wrong notes in here. I need to redo it. I think this task is two times bigger than this other one.
Starting point is 00:33:28 Not necessarily. It's going to take more time. I just think it's a lot more effort, right? Or it's, this one's at least more than double the effort. It's probably more like three times the effort or something like that, right? It is a relative estimation, a ratio of what your gut feel is just looking at it. And Scrum uses both actual and relative estimations, which was a light bulb moment for me. And this is why I didn't hate it as much. So if you've ever heard story pointing, I actually, when we first started talking about
Starting point is 00:34:04 going back into Scrum, I was actually so irritated by it. Because I remember in the past, people would be like, well, how many story points do you think this is? And I'm like, I don't know. Five? They're like, well, why'd you make it five? I was like, I don't know. That's for an arbitrary number. I gave you an arbitrary number.
Starting point is 00:34:21 You told me we have 20 points in our spread and our spreads two weeks so i'm gonna guess that that's about you know however many hours per point so i'm gonna guess it's this right and and then when you'd say it they're like well you can't equate it towers and i'm like well but you told me we only have so many points in the spread how you want me asked me this thing right right and then you throw out a number. They're like, no, you can't do that. That doesn't sound right. And I'm like, I don't understand what you're trying to get me to do. It's so frustrating. It was so painful. It was. And you were there with me when we were going through this whole thing. And I was like, I, I, dude, I can't do this. I don't know what they're trying to get us to do, but I can't do it.
Starting point is 00:35:04 So you're not supposed to do it that way. You know, I think, did we lose Joe? No, he said he'd be back in a second. Okay. All right. So you're supposed to do it relative. And what we've seen and what seems to be sort of standard practice is using Fibonacci sequence, right? We just talked about that on the Recion, recursion, recursion show.
Starting point is 00:35:27 So you should be familiar with it's one or zero, one, two, three, zero, one, one, two, three, five. You're adding that the previous two numbers to get to the next and then by eight, 13, 21. Right. Yeah. you're adding that the previous two numbers to get to the next and then by 8 13 21 right yeah so here's the interesting part about this what you're supposed to do is take a story that that you're pretty comfortable thinking about the effort level of it right like if it's small if it's a medium-sized one whatever and then you give it story points you might look at one and say i think that's about five story points.
Starting point is 00:36:05 Then the next story you look at in the backlog, you look at that in relation to the previous one that you just story pointed. And you say, is this one a bigger effort or a smaller effort? If it's smaller, then you might say, well, this one's a two. If it's a bigger one, you might say, oh, well, it's not twice as hard as the other one. So I'll make that an eight and by the way that's why they do the fibonacci they don't want it to be like multiples of two like oh that's twice as hard and that's four times as hard they want it to be like a exponential oh yeah i've got i've got to wiggle this in somewhere right like it's somewhere between two times as
Starting point is 00:36:40 hard and not not quite two times as hard right so that's how you do the story pointing. And now I'm curious what you guys thought about it because I've only ever done this one time doing Scrum Poker and I thought it actually played out pretty well, minus the fact some of the stories weren't well defined. But throw that away. I thought it was pretty good. Well, we might want to define Scrum Poker for those who have never played scrum poker yeah so you basically kind of you flash the ticket up in front of everybody in scrum and then uh everyone kind of silently picks what they want you can use the app there's websites uh we can get a link for you well hold on back up first
Starting point is 00:37:22 you have to read the story so people know what the story is. And then everybody has the ability to pick one of these scrum cards. All right, go ahead. Yeah. And once everybody's kind of picked what they're going to do, everyone shows what they got. And you look at the results and say, hey, everyone said five except for Patricia. And Patricia said 13. Patricia, why did you say 13?
Starting point is 00:37:44 And they may say, oh, I misunderstood the story or y'all aren't thinking about this or maybe you see something that said it was a one. Like, why? They're upgrading it for some reason. And so the idea is that you get the group to do it because you get a better result than if you just ask one person. Sometimes people in the group will realize something or will have some kind of hint as to get a better result. And so the idea is that the group mind is better. Multiple brains are better than one, so you get better results. And also, I kind of like the door times.
Starting point is 00:38:15 When you're estimating, you feel kind of pressure to give a low estimate, right? Because if you're giving high estimates, then it means you're slow. You're not good. So it's kind of relieving when you are looking at a story that you're probably going to end up with, and you say you voted a five, and everyone else picks a five or an eight or something. It gives you even more room, and then makes you feel like you're not grossly off.
Starting point is 00:38:36 It kind of takes off some of that individual pressure, and it leads to better results. So I was really happy with it. I think another point that should be made regarding the Patricia example that you gave there is that whatever the majority of the people, uh, people pick, there's going to be the outliers, right? And those outliers on both sides, you, you give them each an opportunity to speak, to say like why they were lower than everybody else or why they were higher than everybody else. Because, um, you know, similar to like what you said, like, you know, somebody might vote a really low number cause they've already done something, you know, almost they've maybe
Starting point is 00:39:12 almost done exactly what you're asking for. And they're like, Oh no, you just tweaked this one configuration variable and it's done and nobody else knew about it or something, you know, like there, there could be reasons like that. And that's why you have, um, you know, this, this group vote, but also you let the outliers speak. Right. And that that's really important when you just let the outliers speak, then you don't have an entire group debating all the finer details of something, right? It's really just, why did you think that? Oh, okay. And, and in our experience, what we saw
Starting point is 00:39:43 was if somebody made a really good point on either end of it, then you'd hear a bunch of people say, oh, yeah, you know, I could be talked down to a five, right? Or, you know what? That makes a lot of sense. You could talk me up to an eight because I wanted to hold specifically for the scrum poker part. So in like Alan said, you would typically do the story points in using Fibonacci numbers so that they are they aren't just a multiple of, you know, five or two or something like that. And, but a lot of the, the, um, apps and websites out there, they'll, when they get to past 13, they go 20. So they, they suddenly break out of the Fibonacci sequence and instead of 21, it's 20. And then maybe from there it's, you know, 20, 40, a hundred or 20, 50, a hundred, you know, what the point is, is like, you're no longer in the Fibonacci sequence. And so Alan got curious because when we were going through this in our own team, all the engineers on the team were like,
Starting point is 00:40:55 hey, wait a minute. This isn't, we can't, no, this isn't right. This is broken. Start twitching. Yeah, we were all like, but seven minute abs. Like I forgot to take my medication today. And so Alan, being Alan, went and researched this and figured out, why? Why is this?
Starting point is 00:41:20 And so then he and I got into a debate about it because we had actually discussed this already. And the short of it is that if you pick 21, then like various – the particular app owner, he had said like the product owner would see that you picked 21. And because it was such a large and specific number, then they assumed that you, you picked that number for a reason that it wasn't an estimate because if it was an estimate, it would have been something like 20 or 25, but because it was 21, it was like, man,
Starting point is 00:41:54 that's so specific, such a specific number. Then you must know that that's exactly what it's going to take. And so I'm going to hold you to that. And we had talked about this before in regards to episode one and nine, the pragmatic program or how to estimate, because in that book, the authors had said that when you're doing your estimating, that the level of specificity that you provide to your estimate conveys how sure you are of your estimate. And so if I told you that something's going to take three weeks, then you're probably going to think like, oh, it's probably just an estimate. But if I said it's going to take 120 hours,
Starting point is 00:42:35 because I went to that extra level of granularity, then you are going to assume, oh, it's 120 hours. And so that's why in these scrum poker apps and websites out there, once they get past 13, then they break, they more often than not, most of them break out of the Fibonacci sequence and instead go to, you know, just rounded numbers so that it kind of conveys that back to the product owner that this number is not specific. This number is an estimate. It's not really Fibonacci anyway,
Starting point is 00:43:10 so it's close. It's pretty close. Yeah. Getting rid of the, it's distinct Fibonacci, right? It's Fibonacci. There's no zero.
Starting point is 00:43:19 Sometimes there's a coffee option depending on the app you're looking at, which is kind of cool and debatable. But yeah, I just couldn't let the guy have to mention that. But I did want to say two other things that you got me thinking about regarding poker real quick. One thing is you might think that there's a lot of pressure since you typically ask the outliers why. And based on what I saw, it was not really pressure at all. It was like there's people on the team that just knew nothing about that story, and it's totally fine.
Starting point is 00:43:44 And so these people, it's expected that you just take a guess. And sometimes, you know, you might say, hey, Patricia, why did you say 13? Maybe Patricia will say, I just, I don't know. I've never heard of this before. So I just, you know, whatever. So hi. But sometimes Patricia might say, well, I don't know. I heard you all, you know, talking about it a lot.
Starting point is 00:44:01 So I figured it was something bad because, you know, people had problems last week. And they might say, oh crap, we did have problems last week. Good call, we're going to bump it up. And so there could be valuable feedback even for people who just know nothing about it. And there's no harm in saying, I don't know, I just took a guess because you're just being honest. It goes by so fast too. And what I thought was cool about it being fast and being okay to being wrong and being safe and just kind of interesting is it kept everybody engaged, which is really hard to do, especially with a lot of people on a call. So I thought that was kind of interesting to be able to go through. I will say I'm sure it's really
Starting point is 00:44:36 painful the first time you do this. If you've got your stuff mostly kind of shaken out, if you're in a brownfield project, you know, you're jumping in the middle of something and you're trying to do this, it can feel pretty overwhelming. And so, um, I liked how we kind of took a slab of, you know, what was kind of most current and what we cared about and just kind of went for that and didn't try to do everything. But I can't imagine when this be with like a greenfield, like brand new project, like seems kind of, uh,
Starting point is 00:45:01 exciting to do that with something just net new. Yeah. I mean, I'll say like, we just went through it with a decent number of people on a call, right? So it's basically three sub teams with like 17 people or something. And after we got the ball rolling, it was pretty efficient. And I feel like, like what Joe said, it took the pressure off everybody and everybody was engaged. So people weren't afraid to throw out the numbers that they were truly thinking.
Starting point is 00:45:27 And, and like I said, typically when the outlier spoke, one of them would make a pretty good point and then it would sway. Basically everybody would be like, you know what? You're right. We'll round up.
Starting point is 00:45:38 And then basically people would just say that, Hey, we'll round up or we'll round down. We'd like that. Right. So, um, it worked well.
Starting point is 00:45:46 Here's the thing with the story points, though, and this is the beautiful part. And Outlaw just hit on it based off our pragmatic programmer series back in the day was when you do story points like this, it's an estimate. It's a known estimate. Story points are, are weighed, um, you know, against each other. And so it's not a commitment and that's huge because the people that are looking at these things know that. Um, and it's supposed to be lightweight and fast, which like I said, us getting into it, it like, I think our group took 30 minutes talking about how it was going to happen before we actually started anything. Hopefully we'll never do that again. Yeah, yeah.
Starting point is 00:46:31 Let's hope not. But once we got rolling, it really seemed like it went well. We kind of burned through some things pretty quick. Now, this is where we go off the notes for a second. So Joe just pointed out that on a brownfield project, this might be difficult, right? Which is what we have. And part of the difficult thing was if you decide to go into Scrum, Scrum is all about having a backlog of stories that you can work on, right? And what this means is if you're going to start up the Scrum process, somebody's got to go create all these stories. And guess what? Creating a ton of stories is not exactly fun work. And it's
Starting point is 00:47:22 not something that somebody's going to put a ton of time trying to break down in the way that you would if you're creating these stories as they come up. Right. And so I at least want to throw out there and I want you guys to talk about it too, is like one of the frustrations we ran into is I mentioned earlier, like all the stories that we have were basically functional stories. I have a webpage that I want to show this. I have components on a page that I want to show this. And it ignored a lot of the work that has to happen behind the scenes to move data around, to update data, to get data into the system, to hook up to external systems, right? Like all that stuff that as software engineers, we deal with all the time. And you'd have, you'd have two stories that looked identical and just, you'd have to
Starting point is 00:48:15 magically know that one of them had all this, this stuff buried deep in it. Right. And, and so just know that if you do want to transition into Scrum, it might be worth, and I think this would have helped us, it might be worth having a backlog grooming session before you have your first sprint planning so that people can call out those things and say, hey, you got a page here, but you're kind of ignoring a lot of work to even hook that page up to any data, right? So we probably need to have a story for that. So that'd be my opinion is set it up to where you do this. I don't know, a few times before you have your first sprint planning. And then that way you're kind of in a better state for people to be able to vote and feel comfortable with those, with those poker numbers. We like to lie to ourselves and tell us that we're all proactive and we lead we
Starting point is 00:49:06 lead these proactive lives where we're gonna like no we're gonna switch to scrum so you know a couple weeks before that we're gonna do these grooming sessions twice so that we can be ready and have a backlog of you know all these beautiful stories no man it's always reactive always yeah what's this fantasy land we're all thinking about what's going on tomorrow wait hold on y'all think about tomorrow today and nobody got time for that right oh man but but do you guys agree like do you think that if if we had taken the time to do something like that beforehand, the initial sprint planning would have been, I don't want to say perfect, but I think there would have been a lot less contention on some of the
Starting point is 00:49:52 stories. I definitely agree. We would have had the stories prioritized better. Having gone through that grooming, it would have made things easier. We would have understood them better. But it also seems like such a utopia in this. Like, it's, I don't know, is that really a thing? Is that possible? Right.
Starting point is 00:50:19 Like, I can see us iterating to the point where eventually we will, you know, live in that world. Because we will have iterated on it, you know, through the course of multiple sprints. Right. But I can't see, like it just seems so unfathomable that we would have like ever done all that grooming before we decided to start doing scrum and then be like, okay, well guess what? We're already prepared for this meeting. It seems unfathomable that we're even doing scrum again. So the fact that we would have planned and done things properly before we got in there. Yeah, it seems unreasonable. Cool.
Starting point is 00:50:53 All right. So the next bits of information are the roadmap and the release plan. And these are important from not necessarily just the team, but it's really important for the, for the project manager, as well as the product owner to be able to see this stuff. Right. And this is where I think that some of this stuff gets enabled through scrum. Um, so the roadmap is supposed to show when the themes will be worked on during the timeframe. So we talked in the previous episode that themes are supposed to be like a grouping of like or similar type items that you can work on. So a profile, a user profile page or an ordering system.
Starting point is 00:51:33 Those are logical themes that you can put together. And it makes sense to work on those roughly at the same time because you're in it. You understand it. You know what's going on. And so if you break those down into stories and stuff, and you start seeing what the velocity of the team is, then you can start saying, Hey, it looks like we have stories that'll fill up three months worth of work here. Right. And if we put that on a calendar, we can see if we do this story here, you know, January to March, we can also start another story from February to whatever,
Starting point is 00:52:02 you know, and so you can start laying these things out. Well, wait a minute. The story wouldn't go January to March. Oh no, you're right. The themes, the themes would, but the stories that comprise those themes, you'd be able to sort of aggregate. Got really confused there for a second. Sorry about that. Sorry about that. Um, and, and that's having the calendar, right? Like, so it doesn't necessarily have to be days. It could just be like, Hey, you know, week one, two, three, four of, of calendars, or it just might be months that you have on there and you draw, draw some bars across it. Right. Um, if you think about the old Microsoft project, you know, the Gantt charts or whatever they were called that you could probably
Starting point is 00:52:39 do something like that. I mean, let's face it though. Everybody loves to see a roadmap. Like how many times have you ever looked at like one of your favorite brands or products or whatever, and you, and you happen to find a roadmap, whether they, they purposely published it or you found it otherwise. And you're like, Oh, I can see what they plan to do for this thing. Like you, you love that right now. Imagine if that was also available for your job. It's not. You improved. Here you go. Here's what you're going to be working on. You scared me. You scared all the managers.
Starting point is 00:53:10 When we talked about Agile first coming on the scene in the manifesto and we were going away from big upfront planning waterfall, we were saying, oh, man, people were scared. Managers were scared. They were saying, what do you mean no planning? And here we are, just a few hours later, next episode, talking about roadmaps and release plans and measurable velocity and two different tiers of estimates. It sounds like a manager paradise, right? But it is
Starting point is 00:53:35 pretty far from what we kind of started talking about people over process and all that stuff. But we're talking about Scrum and that's what it is. But what manager doesn't want to have immediately, you know, be able to pull out on demand, oh, here's our roadmap. Oh, here's our release plan. Here's what we're going to have done in the next three weeks. Here's why I'm confident in saying that, because we have, you know, this much history and this much velocity.
Starting point is 00:53:56 And then this looks like it's tracking really well. You know, so it seems like it's really great for reliability, and the business should like this. Plus, every three weeks, they get to reprioritize and kind of take a look at that stuff. And they have a backlog that's prioritized and roughly estimates that they can think about it. It seems like a win all around to me. Yeah, I think so. And that's kind of why we wanted to do this episode is because as we're living it, it makes sense to go through it. Because I think we're sort of seeing the light a little bit.
Starting point is 00:54:28 I don't know that it's perfect yet, but, you know, it's going to be interesting to see where this experiment goes. So roadmap, if I was a single-person shop and I was making a new product, I quit my job, I was going to just focus on a new job full-time. Roadmap and release plan? Yeah, sure. Scrums? That doesn't really make a lot of sense. There's only one person. If there's two people on the team, that seems a little weird too to have a two week plan and then we go turn our backs in the same
Starting point is 00:55:00 office and get working. So I'm just wondering is Scrum more valuable for large teams than it is for tiny ones? Well, not large. Remember, we don't want big ones. Large organizations. So is Scrum more valuable for a thousand people companies than it is for three people companies? I don't think so. I think it helps. I think it helps those larger companies maybe more because it can be chaotic trying to communicate stuff on projects.
Starting point is 00:55:34 It's easier to do that communication on smaller teams, but I do think the value that you add by seeing what you're trying to get done in a short period of time is helpful for anybody, right? I mean, knowing that you've got in a lot of block of time to try and get feature A, B, and C out the door is a whole lot easier than what a lot of small businesses do where they're just constantly scrambling, you know? I mean, I kind of think of it as like, depending on how small the company is, you know like your your one and two person company example that where you started with that you know maybe you're just purely kanban and you know you don't think think about anything else like these are the list of tasks and just pull one off the board and let's just move on about our day so next game jam should i start with user
Starting point is 00:56:19 stories yeah i'm just wondering like is that the theme of the game if i would yeah well no i mean if i've got four days i'm just wondering like it seems like there is some sort of limit like if i'm gonna be working on something for four days probably not worth writing right you know tickets and user stories for right it's not even the size of sprint so it does seem like there is kind of like a sweet spot where it starts to become valuable and if you're just working on something on the weekends like maybe it's you know maybe it's not worth doing i'm just kind of interested in exploring that line i'm just telling you man if that's going to be the theme of
Starting point is 00:56:52 the game tram i can easily tweak my uh my app so that instead of uh you know closing tickets you're like closing stories i don't think that would actually be difficult i think i can get that out pretty quick right yeah i i think that if it's if. I think I can get that out pretty quick. Right? Yeah. I think that if it's weekend projects or something like that, I don't think I'd mess with it. Right? I think it's more for teams that are going to be dedicating a block of time doing things. Otherwise, Kanban seems like the way to go. Just pull it off the stack.
Starting point is 00:57:20 Well, if you're going to be that organized in your personal life, then I don't think it don't think it matters. Like, you know, Kanban sprint, scrum, whatever. Like you're pretty organized person. You're probably going to be all right. Uh, you know, so whatever, whatever, whatever you feel more comfortable with. But you know, I think to Joe's point though, there is probably a sweet spot in terms of like the team size and dynamics and like how long something is supposed to take. Right. Yeah, it's a hard one. I think the long term projects definitely will benefit more from it than than anything that you're trying to do in a month. Right.
Starting point is 00:57:59 I mean, going back to Joe's four day example, does that mean that you have hourly stand ups? Yeah. And it's also really catered towards um long evolving projects like it's this is something that you knew that you were going to be done in a year and delivered and so you know if you have a military contract and it's like hard hard day due on you know april 1st of 2015 or whatever you know 2025 then uh maybe it doesn't make sense to keep doing this thing where you're reprioritizing stuff. Cause you probably spec'd out that stuff pretty, pretty fine, you know, at a pretty
Starting point is 00:58:32 fine detailed level just to get the contract. So, uh, you know, we're not saying, um, it's, uh, we're definitely not saying that, um, scrum is for everybody, but, uh, it's got its place. Yeah. And it's definitely for you. There it is. All right. So here's another part that was really interesting.
Starting point is 00:58:52 So they talk about having these, these components that you can demo at the end of every sprint, right? That doesn't mean that you're necessarily shipping them. So there's a, they wanted to really call out that there's, there's a line, right?
Starting point is 00:59:04 Like just because you finish something, that means it might be a quarter of the product that it's important, but it's not ready to give to a customer in that form, right? It might take another sprint to get there. So don't think that, that having something complete means it's actually ready to go. It could be an example of like a webpage, like let's go back to your user profile, right? You have a webpage that shows the user profile. It doesn't necessarily mean that it's styled pretty. Maybe styling is part of something else. Like the first effort was just to get the data on a page and functional.
Starting point is 00:59:35 Right. Right. We have text boxes. Right. There it is. Yeah. Have you seen my application, my game?
Starting point is 00:59:42 I mean, like I'm really good with like making things pretty. The UI is there. Yeah. Yeah. It's on point. It's a game recognizing game. Thank you.
Starting point is 00:59:51 I appreciate that. You got it. So here's the other thing. And this is probably the part that's going to be difficult for the project managers and even the teams to deal with at first is you're going to get stacked with a number of stories, right? And it's going to add up to so many story points. It's going to take a few sprints, at least three to four sprints to get your initial velocity. Meaning how many stories were you actually able to knock out, right? You story pointed them. Now you did it. How much did your team finish? So it's going
Starting point is 01:00:25 to take you three, four sprints to get there. And per the course that I took, it said that it takes you six months to get a pretty good read on it, right? So it's not something you're going to have immediately. It's going to be something that evolves over time. Did you say six months or six sprints? Six months. Wow. Yeah. They said, they said it takes some time and that makes sense, right? Because you're going to over story point some things and you're going to under story point some things. And so as you get better at identifying stories and what you think they're going to take, because you've story pointed a few in previous sprints, you're going to get better at that too, right?
Starting point is 01:01:05 So you're going to see it start to average out and you're going to get to see what your real velocity is over time. All right. And then this last bit here, um, there's more notes than, than what it really means, but here's the thing. So I'm going to use some fake numbers here just because numbers are really easy to follow when you're driving. She's a graph. Right.
Starting point is 01:01:27 We'll chart this too. But let's say that you have, what did I do? So let's say that you have 10 points that you can fill up in a sprint, right? You said that the most you can do is 10 story points in a sprint. So we talked about you're supposed to prioritize and order the backlog, but you want to be efficient with your time creating components, right? So if you only have 10 points available, and let's say that you have four stories. So I have story is three points. Story B is five points. C is eight points and D is two points. Not important that you memorize those,
Starting point is 01:02:05 but what is important is you can see that if you have 10 points, well, you can't do B and C because that's 13 points. You're overcommitted. Something's going to slip. But you also don't want to do A and B together because that's three and five points. So now you have two points left. So now you got to figure out, okay, well, I know that A is the most important thing I got. So I really want to get that out there. So that's three points. How can I fill up the rest of my sprint with the most important things, right? So it may not be an exact order, but you're trying to optimize the efficiency of your sprint. So it might be that something that's in the second or third place gets bumped back to the next sprint and something in the fourth place moves up into the previous sprint just because you can fill up the sprint better.
Starting point is 01:02:57 Started from the bottom. Now I'm here. Keeping it real. Oh, so yeah, that's, that's really what it is, right? Like, um, you want to work on the most important stuff, but you also want to make sure that you're not just leaving, you know, 10, you know, 20% of your sprint open without filling it in. Right. It makes more sense to optimize. Um, And then what do I have here? Oh, the roadmap is supposed to be an estimate of when the team will complete the stories and that should be updated every sprint. So that's the important part. Like the difference between
Starting point is 01:03:36 the roadmap and waterfall where you have this big thing that got printed out at Kinko's and they threw up on the wall and can't change. Now you have this living, breathing roadmap, which is more effective for everybody that can see it. I promise you, you give me a Sharpie, I can change it. Just saying, just throwing out my, just throwing out my offer there. My skills are available. If you need to change that. Very nice. And Kinko's doesn't even exist anymore, does it? Now it's FedEx or something? They got merged into some stuff, so you can still kind of Google it and
Starting point is 01:04:07 find it, like FedEx Kinko's. Okay, there we go. So yeah, that's the first part. Dang it. This episode of Coding Blocks is sponsored by Datadog, the monitoring and security
Starting point is 01:04:24 platform for end-to-end visibility into your Java applications. Datadog provides out-of-the-box customizable dashboards, actionable alerts, distributed tracing, and always-on low-overhead Java code profiler for your production environment, all in one spot. Yeah, and they have, of course, in typical Datadog fashion, this is one of my favorite aspects of this company. I so admire this company. Not only do they have
Starting point is 01:04:55 just a bazillion integrations into whatever your tech stack is, I guarantee you they've probably got it covered like 14 times over, but even better than that, they also have the blog articles to, to go along with it. So you can follow along and understand the reasoning and rationale about why you should care about this thing. And so of course, you know, we're talking about being able to monitor your Java application. Guess what? They've got like a half dozen different articles dozen different articles on like here's what you should look for in your java application here's why this would matter here's why you should pay attention to this it's just amazing absolutely and i got an idea for you so uh i we talked a couple weeks back about some of the security
Starting point is 01:05:39 stuff they're doing log rehydration um all the integrations. I have an idea. If you go to Solutions and then Security up in the menu and look at all the beautiful graphs, and they've got these cool GIFs on the page that show you exactly how it works. You take this to your CISO, and you show them all the great benefits they get from Datadog, and then the CISO signs up for it, comes out of their budget, bam, and you get to use Datadog for all the stuff that you want to use. In addition to security, you know, security is great, but you get all the container stuff, serverless stuff, cloud stuff, on-prem, all the great integrations and application performance monitoring stuff that, you know, feels really great for developers.
Starting point is 01:06:19 And so everybody wins. And I mean, there you go. Everybody wins. And it really isn't a lot of effort on your part either to set up any of their agents. Like literally, you can go look at it. They'll have you like, here's the command line you need to enter to install this particular agent onto your system. And maybe a few extra steps of configuration and done. Now suddenly you have that thing.
Starting point is 01:06:42 So with support for over 400 different technologies, I thought it was a babillion. I was pretty close though. With support for over 400 and automatic instrumentation for popular frameworks, you can start monitoring your Java applications alongside the rest of your stack within minutes. And I mean literally minutes. So you can start your free data trial today to start monitoring in real time. And listeners of this podcast will receive a free super cute t-shirt once you install the agent and create just one dashboard. Yeah, so to get that, go visit datadoghq.com slash codingblocks. Again, that's datadoghq.com slash codingblocks to get started today. All right. Again, that's Datadog HQ dot com slash coding blocks to get started
Starting point is 01:07:25 today. Alright, hey. How's it going? Yeah, I'm talking to you. Hey, how you doing? Doing that. And we got the coding blocks folks all here in your ear talking to you about reviews because we love them. We need them. Sometimes we get really great ones
Starting point is 01:07:42 and sometimes we just get kind of small like you know five star whatever little dabbles both are fantastic of course we prefer to get you know awesome feedback with it constructive feedback but you know just the five stars is great
Starting point is 01:07:58 so if you go to codingbox.net slash review we try to make it easy got some links there and you can just do do do do do do do and uh looks up slash review. We try to make it easy. We've got some links there. You can just do-do-do-do-do-do do-do-do-do-do-do and it hooks up. Were you trying to do this? Is this what you were trying to do, Joe? Yeah, but five times. We're good.
Starting point is 01:08:20 That feels too much, man. You're asking for too much. Okay. Well, with that, we will head into my favorite portion of the show. Survey says. All right. Here we go. All right.
Starting point is 01:08:38 So a few episodes back, we asked, what is your favorite lesson from game jam and you know this was very uh sumptuous on our part that you participated in game jam because maybe i don't know maybe you did maybe you had things to do that weekend you know but uh that was rude so whatever we asked it anyways. And your choices were less is more or focus on playability or need more graphics or don't worry about the graphics or think like a player or, oh, my God, I need to theme the submission page or include instructions, video and or screenshots with your submission. Some of those submissions, man. Oh, my God. They're so good. So good.
Starting point is 01:09:31 All right. So this is what? Episode 156. It is, according to Tatako's Rules of Engagement, Jay-Z's turn. Okay, well, I think the answer has got to be less is more with 47%. Less is more, 47%, okay? Dig it. Man, that's what I was going to go with.
Starting point is 01:09:59 But in being a good sport here, we're going to scrum, and I'm going to try and push you across the line here. Uh, I want to say focus on playability and I'll go with 35%. All right. So we have Joe saying less is more 47% of the vote. And Alan called it. Obable was called.
Starting point is 01:10:24 Obable. You know what it's called? Abable? And Alan called Focus on Playability at 35% of the vote, right? Yep. So, well, Joe, I'm sorry. That's so excellent. Can you see that I'm having so much fun with my new toy? Great. It's a little thing in life.
Starting point is 01:10:48 Yeah, Joe, I'm sorry. That did not work out for you. You lost, sir. Another way you could say that is... Mission failed. We'll get them next time. Yeah, you failed. I feel like I failed.
Starting point is 01:11:05 So, yeah. Focus on Playability was the number one. failed. So yeah, focus on playability was the number one answer at 43% of the vote. Oh, nice. Now, if it makes you feel any better, less is more was second. Okay.
Starting point is 01:11:17 I thought less is more was going to win, but I thought he overshot the percentage. So yeah, that's, that's pretty cool. I was really hoping that you're both going to be wrong. Cause then that, that sound clip would have made, would have been even better. So, yeah, that's pretty cool. I was really hoping that you were both going to be wrong, because then that sound clip would have been even better.
Starting point is 01:11:31 So, yeah, whatever. Less is more. Yeah, that sounds like Lance. I don't know. Do you know, because it's not a very common name today, but in medieval times, people were named lance a lot i saw it coming man i saw the gleam in his eye from across the the county here whatever no you didn't liar liar you know i got you buzzing that's like lids you know it was a good segue it worked it was good it was good it really worked whatever whatever um all right fine let's talk about for
Starting point is 01:12:17 some reason uh i think we are in the mood to buy a car because for we got curious we're like hey for your next car you plan to buy and your choices are an electric car i can tell people it's because it's green but we all know it's about the acceleration or a hybrid just in case these evs don't work out or a gasoline car. There's other kinds or a diesel, a turbo diesel at that, or a fuel cell car like the Hindenburg, but on a smaller scale or Uber, the Uber mode of transportation or anything with more than two wheels is too many.
Starting point is 01:13:02 I love these choices. I love them. Yeah. I thought they were pretty well done. Yeah. The love these choices. I love them. Yeah. I thought they were pretty good. Very well done. Yeah. The Hindenburg. You're right.
Starting point is 01:13:12 Yeah. So there's all your shopping. Speaking of shopping, I went to go buy a dozen beasts from the farmer. However, instead of a dozen, I got 13. The farmer said, oh, that's a freebie. Oh, my gosh. Wow. Wow. Yeah, I see. I thought you were going to go with the beats of me
Starting point is 01:13:27 kind of thing. I should have known better. Is that a micro G? No. Okay. So in fairness, I did forget to credit, you know, in my references here, my bibliography. Micro G was the Lancelot and that one was from Niklaus.
Starting point is 01:13:44 Awesome. All right. Wait, Nick loss or class Nick loss. Oh, all right. So yeah, let's talk about sprint planning. Let's for a second. I thought we were at work, but I got scared. I know. Is this a nightmare that's some ptsd oh man okay so uh yeah go ahead i can think a little about sprint planning i can talk about sprint planning all right let's hear what you got yeah so y'all thought we weren't doing planning anymore we do lots of planning now uh so sprint planning planning is planning that, uh, at the beginning of each sprint.
Starting point is 01:14:25 And sometimes, um, uh, people will actually, uh, kind of keep that day out of the sprint just to do kind of stuff like this. And so, you know, we say every weeks, but really it's a 14 days or whatever. Um, and that's, you know, your miles, but very, we'll probably get there, but I want to hit some of the highlights here. Attendees, all developers, the, uh the scrum master, the product owner, and that's really important. So all the developers in the team, obviously the person leading the thing,
Starting point is 01:14:55 and the product owner. Just getting the product owner in the same room as the developers is really powerful, and just to be there to kind of hear and kind of get that interaction, because sometimes developers are really far away, so I thought that is really powerful. And just to be there to kind of hear and kind of get that interaction because sometimes developers are really far away. So I thought that was really cool. Product owners should have already prioritized the stories in the backlog.
Starting point is 01:15:15 And that makes sense. And it kind of keeps them in touch with like your ticketing system too, wherever you're keeping the stories, which is also really nice. Sometimes you have product owners that are completely divorced from the development process and this kind of brings them in.
Starting point is 01:15:29 And the goal of this planning means to ensure that all involved understand the stories and the acceptance criteria. So this is the time to ask questions, to clarify. I mean, you can do that anytime, but this is the best time to do it because it could infect things that happen kind of downstream of there. But this is not dive into technical details and try to architect the story during this session. Right.
Starting point is 01:15:56 Acceptance criteria. Yeah. If that starts happening, then that story needs to be redone. Yep. Scrum Master is responsible for keeping the people in line here too. So they're responsible for saying, whoa, whoa, hey, we're getting an implementation deal, so it's can't air. We need to be discussing the acceptance criteria and making sure you understand the story,
Starting point is 01:16:16 not the details, the story. You understand who the stakeholder is. You understand what you're supposed to be doing and you understand what the result is and that you understand what the're supposed to be doing and you extend your what the result is and that you understand what the deliverable is so don't get in details um it's not really the time to just get any details what if it's a bad story that would be a good time to say hey can we revise this let's split it so not not then necessarily i think that you you sort of say hey we need we need to discuss this because the very next thing that we have here is you need to plan for a q a session and so
Starting point is 01:16:53 that's probably where you would bring that stuff up again okay and i also need to make sure that overarching definition of done is uh posted as a reminder because that's uh kind of assuming you're in the same room. But it is nice to kind of have some document somewhere whether it's on a share or something that it's kind of reminded about. And then for kind of the acceptance criteria, it should tie back to that definition there.
Starting point is 01:17:16 That's a pretty... And the definition of done according to the DevOps handbook, that's a pretty big one then. Because that would mean it's deployed to a production-like environment. And tested. Oh, yeah, yeah, yeah. Sorry.
Starting point is 01:17:34 And observable. Yeah. There was a whole bunch of ands on that. Yeah. Okay, yeah. I thought you were, like, waiting to go into all the ands. There's too many. We thought you were about to. Yeah. all the ants. There's too many. We thought you were about to.
Starting point is 01:17:47 Yeah. No, I don't remember any of that stuff now. Oh, that was Christmas. Yeah. Last year. Three weeks last year. So I do want to reread it, read it on audio book anyway. So about that Q and a session.
Starting point is 01:18:05 So it's crucial to make sure that any misunderstandings, the stories are cleared there. I didn't realize there was a separate Q and a session. I thought that was part of the planning. So I'm glad that I read this. It is part of the sprint planning. It's just supposed to be towards the end of it, right?
Starting point is 01:18:21 Like after you've done your story pointing and all that kind of stuff. Okay. Yeah. So yeah, you don't want to hold it to me and you say like, Hey, let's get together later or we'll do this towards the end of it right like after you've done your story pointing and all that kind of stuff okay yeah so yeah you don't want to hold up the meeting you say like hey let's get together later or we'll do this at the end yes you ever notice how like sometimes your brain will just like latch on to something and no matter how many times you look at it you're like no that's just not oh that's wrong that's what it is and so the whole time i'm thinking like man we got a plan for a quality assurance session during the sprint plan that feels wrong and i was going to ask something about it and then i'm like oh wait a minute it's question and answer yeah q a yeah that makes a lot more sense we should definitely plan one of those i've had a vacation brain right just keep doing
Starting point is 01:19:04 that or i'll i'll be in a meeting or something i'll say something like uh they'll say q a session i'll say oh yeah let's get the uh q a people uh qa people on the meeting like no quality assurance i'm like yes you're right i told you i was paying attention and five minutes later i'll do the same thing and i'll even know it's wrong but i got vacation brain y'all yeah it happens that's right i mean it's part of the process it is so next uh stories are broken down into specific tasks these tasks are given actual estimates in time we're not we're not talking poker uh actual estimates in time like hours you're going to estimate these tickets and these tasks in hours and it's
Starting point is 01:19:46 important here to emphasize the tasks too so we take that story as a user i need to whatever and we're going to break that into like okay well someone needs to uh you know dockerize the thing someone needs to write the change someone needs to add the configs from there someone needs to set up a dashboard and it may not be the same person you know but the idea is to just list out all those tasks make sure that they solve uh the you know meet the acceptance criteria and that you can put estimates on each of those if something's too big break it up and at the end of that you add them all up and there you go you got an estimate for the story but i want to be clear though that like because we're we're talking about this in this, in the context of the sprint planning,
Starting point is 01:20:28 but breaking the story down into tasks and estimating it is not part of the sprint planning session. It actually is. Oh, it is. Yeah. So here's the thing. Here's the thing.
Starting point is 01:20:42 We're going to give you some background into the world that we live in right now to let you know. Prepare. Yeah. Here we go. So in a typical sprint planning thing, remember there's, there's seven people in there. And so you will do your story pointing. Then you'll do your Q and a to clear up anything. And then you'll go straight into creating the tasks. Wait, so sprint planning, you said there's seven people. Like I thought the sprint planning was like the whole developer team.
Starting point is 01:21:10 And then each individual team might be seven plus or minus two. No, that's what I'm saying. Like in a typical scrum thing, you have seven people is your team, right? You're going to have a scrum master, the product,
Starting point is 01:21:21 uh, the project manager, and then your team of seven people. Okay, plus or minus two. We just live in a world where we're more than that. Right. But so we have a sort of unique situation to where we have three teams of five to seven people. And so we did all the story pointing in one meeting because all the developers, all the people that sort of know
Starting point is 01:21:46 what would be going on are there. What we did afterwards, well, we kind of had our Q&A session at the end. It was more of a gripe session of things being buried in stories. But after that, the individual teams, the three teams broke out and did these tasks on their own. And it was because it doesn't make sense for teams that aren't going to be dealing with these stories to be sitting there twiddling their thumbs while you come up with tasks. Right. So I see. Yeah. What we're talking about is if you just had one team that you were working with. Right. But we had three. And so and that's the thing about Scrum that just to be clear, and we said it in the last episode is when you do the Scrum process, it's supposed to be about agile, which means focusing
Starting point is 01:22:34 on what the customer needs, right? But there are guardrails here. It's not set in stone. And for our particular use case, we were like, you know what? We got three teams. Let's let them go off and do those tasks, things on their own. So we're not wasting anybody's time. And then we're going to get back into this next part here that I think Joe's going to continue on. And then we'll talk about how we did that as well. All right. So at this point, we have prioritized things. We've asked our clarifying questions about, first, the actual acceptance criteria. And then we went through a Q&A session and kind of ironed out any kind of higher-level details. And then we went and broke down things in tasks, and we got our estimates. And so now, once that's completed, we have to verify that we have enough capacity to complete the tasks.
Starting point is 01:23:27 It's possible by the time that you finish listing up those tasks, you realize, hey, maybe we're a little wrong on poker. Maybe it's someone realized something we didn't think of that we have to do, or maybe we realized something that we didn't have to do that we thought we did. And so it's possible for those numbers to not match up so well. And so maybe what you thought you were aiming for this sprint isn't feasible once you see those numbers. Or maybe you need to go grab some more stuff. And so basically at this point, you're supposed to kind of look at this and say, okay, we can take this. And we've got some general guidance here that each team member can only complete about six hours of actual work per day on average. There's meetings, there's discussions, there's
Starting point is 01:24:11 you know... Lunch. Wait. I don't know. I think people in Europe include lunch break in their eight hours. This is a theory that I've had that I've never tried to verify. But I kind of feel like that's something that I'm very jealous about. So let me know if that's not the case so I can stop being jealous about it. But if it is the case, I don't want to hear about it. Yeah, don't tell me.
Starting point is 01:24:40 Let me know if it's not. But if it is, don't think. Let me go on in life being naive about it. Listen, the song is 9 to 5, and you know there was some lunch in there. Yeah, you know somebody ate. Yeah, that's right. Somebody's eating in there. Dolly Parton ate lunch.
Starting point is 01:24:53 Hey, don't think that didn't cross my mind, just like the 21 versus the 20 when we were talking about the Fibonacci party poker stuff here. Hey, but real quick, what's important. And I think we said it, but we might've glossed over it a little bit. When you're adding these tasks, you're putting those actual hours on there. And the reason you're doing it is at the end of it, you're going to look and say, Hey, the story that we, that we gave five points is, I don't know, 85 hours of work, right? Like that's your estimate based off the task that you added. And so now you look at that and you say, Hey, do we have enough capacity to complete this 85 hours of work knowing that we have X number of resources and all that kind of thing. Yeah, we got 86 hours. The person's out
Starting point is 01:25:35 one day. And so we've got a two week sprints, nine times six. Uh, who, no one knows what that is without a calculator. So, uh, if you've an 86-hour ticket, it's probably less than that. I don't know. I'm not a chicken. I mean, I'm not going to say it was 54, but it's like me. The math of a chicken just throwing random numbers out in the world. Definitely. So I had a lot of fun with that.
Starting point is 01:26:01 Then you're 54. Yeah, probably. I don't know. I'd have to see a number line to verify, but I'm pretty sure that one of those is bigger than the other. I would need to see stacks of M&Ms in order to verify it. Specifically the peanut butter M&Ms. Cause Oh,
Starting point is 01:26:15 those are, those are the best M&Ms. No, no, no, no, no, no,
Starting point is 01:26:18 no, My wife doesn't like them. No, no, I don't like them either. She's wrong. Peanut M&Ms. That's what she says.
Starting point is 01:26:23 She says, why not just to get the whole peanut? Yeah, man. Peanut butter. No, peanut butter is what she says. She says, why not just get the whole peanut? Yeah, man. Peanut butter. Peanut butter is way better than peanuts. We got to redo this survey. That's it. That's it.
Starting point is 01:26:32 These are fighting words. We could end this show. Coding box could come to an end right now. This is coming from the guy who would put a tub of peanut butter on top of some ice cream. I can't get behind this. Peanut butter ice cream is the best. You can even put just peanut butter in the ice cream. Just like scoop a –
Starting point is 01:26:47 Literally vanilla and just like scoops of peanut butter. That's good. But if you make peanut butter ice cream, it's like it's even better. It's infinitely better. It's true. Peanut butter makes everything better. I'm going to have to say – I'm going to have to request that we move on though because we should have really ironed this out in a previous phase.
Starting point is 01:27:05 We should have discovered Alan's deficiency here before we started recording, and now we don't have time. It's not part of the plan. That phase is over. As the Scrum Master, he's telling us to move on. I didn't realize his bias towards peanut butter before we started this show. Who would have guessed? It has no place in my M&m nor in my ice cream see see this is what i'm talking about yeah i can't go on what do you do if something just you just can't
Starting point is 01:27:35 complete it you just can't get it yeah i know it's a problem and that's why you got to make these estimates come up with this stuff and figure out ahead of time is this something that we think we can actually do based on these numbers? Are these estimates accurate? Yes. If not, then let's refine that. Let's bring it up. Let's make it smaller.
Starting point is 01:27:52 And in the end, we asked the person, can you commit to this work? They're going to say, you know, yes or no. If it's a no, hopefully there's a why. Talk about it. And they'll say, i disagree with this estimate or i do too much support work and so my capacity isn't what you think it is or you know something and so you know it comes to some sort of agreement there or else maybe hr gets involved i don't know how that works so i'm like i'm a good worker well hold up hold up in all honesty if somebody says
Starting point is 01:28:22 they can't commit then then that's when. So in the regular planning, like what we were talking about where we didn't have three teams that split out to do this, you do these task things and then everybody's basically asked, hey, can you commit to this? You say yes or no. And if everybody says yes, cool, fine. Whatever the story goes in the sprint, life is good. If your team says no, then, then you have to work it out with the project manager at that point and say, if you want this one done in this sprint, we've either got to break this story up or we're going to have to kick another one out. We're going to have to, or we're going to have to refine those acceptance criteria. You're going to have to move some of those things out to next sprint or other items. Or maybe we say this person can't commit. We're going to have to, or we're going to have to refine those acceptance criteria. You're going to have to move some of those things out to next spring or next other items.
Starting point is 01:29:06 Or maybe we say this person can't commit. We're going to have to take some stories from them and move it to somebody else and something like that. And so, yeah, I mean, if the person says no, they're not taking it,
Starting point is 01:29:17 you know, that's a deal. And commit is a strong word to when I hear the word commit, I think it's like, you know, locked in sign of blood and it's not the case. I mean, stuff happens, stuff comes up, things get reprioritized.
Starting point is 01:29:27 You know, this is the real world. Things get reprioritized or whatever I just said. Come on. You think of git. Come on. Don't lie. Oh, totally. Totally.
Starting point is 01:29:35 When I commit something in there, it's in there unless it isn't. Sometimes that happens. Yeah. Then you call outlaw and he bails you out. Yeah. So anyway. Yeah. So the important part of the know is you break things into tasks to get those hours and people say, yes, I got it. Yes, I got it. Yes, I got it.
Starting point is 01:29:52 Everyone says, yes, we're done. Until stakeholder feedback. I don't know anything about this. All right. So if I can speak now, I don't know what happened there. I'll cover come before you. Yes. So they have what are called the feedback that people are supposed to provide out to the stakeholders. So they have these things called information radiators.
Starting point is 01:30:20 We call those rats. There's a mole in your organization. So you're supposed to post out there whatever will help the stakeholders understand the progress of what's happening, right? That could be. So typically the way you used to see this is they'd have a whiteboard up with some swim lanes that is like, um, to do in progress and done. Right. And you would actually move stickies out of one swim lane into another. So you can do something just like that. It's called a task board or a burndown chart, and you can have a digital one that people have access to whatever. Right. But the whole
Starting point is 01:31:04 notion is people can look and see how things are going during the sprint. On the task board, these are the stories that were committed to the sprint, right? And that's, that's really good. And then you'll actually see the status of any current tasks, um, which tasks have been completed. Like I said, moving through the swim lanes. And it's a pretty good way for everybody to see, not just stakeholders, but the project manager, your scrum leader, and the team itself. And then the burndown chart, if you think about it, it's pretty easy, right? You just have a a line going, like you started it at 80 star, or let's go with what we had earlier. You had 10 story points is what you started with.
Starting point is 01:31:54 And by the end of the sprint at two weeks, you want to be at zero story points, meaning you've completed them, right? So what you want to see is the story points being completed sort of along that same line, right? Like you want to sort of be around where that line is, meaning that you're completing it as the sprint goes on. And that reminds me, I totally forgot about this when we were talking about breaking the stories out into tasks. And I didn't even mention this when we were doing it for real in our job is one school of thought is every task should be no more than a day's worth of work. And there was a really good reason for this. Is you constantly moving tasks from one lane to another. And if there is a task that stays in one swim lane, like if it's in the progress swim lane for more than a day, then it gives the scrum master a chance to say, hey, are we blocked on anything?
Starting point is 01:32:48 Is there anything we need to do? Hey, Joe, can you help Alan? Because, you know, he's not able to get this thing done quickly. So if you know that these tasks are supposed to go into in progress and then the next day during your daily stand up, it should be moving to done. And it isn't, it's a good spot for people to be able to say, Hey, I can help. Or what's the problem. Um, okay. That's news.
Starting point is 01:33:12 I didn't realize that we were supposed to, uh, estimate these things at no more than a day, which we're saying is six hours. Now you don't have to, it's a school of thought. Like I said, it's a way to make sure that things are moving through the, the process or the, through the swim lanes. It's interesting, right?
Starting point is 01:33:32 I mean, it means that it, okay, so here's the reason why I say I like it is it means that you've made the things granular enough to where you can do that, where I personally have problems with this and and like this is my own uh you know deficiency is that like i'll just see the story and be like okay i'm gonna start iterating i'm just gonna start right working on it and making it happen
Starting point is 01:33:56 like i don't care right i don't even need a task right yeah user profile you wanted to use a profile i'm giving you a user profile. Right. Getting there. Exactly. But so it's interesting. Like I said, it's a school of thought. It doesn't mean you have to do it again. Again, Scrum is guardrails. It's not hard, fast rules.
Starting point is 01:34:16 But it is an interesting thing to where if you did that, then you know when people are stuck. Because you know if they're not moving that thing that next day that they got stuck. So it's interesting um so at any rate yeah that that burn down thing is just so people can see how the sprint is progressing right and and you really want to see things burning down as time goes by um so when we say uh if we don't question do we estimate tickets in hours? You estimate tasks. Yeah. Sorry.
Starting point is 01:34:48 Tasks. So tasks will always be in hours because they're not really supposed to go over a day. So of course you're always doing it in hours or maybe half hours or something. Uh, yeah. And each, you're not supposed to go over six in a day. So yeah, uh, that's, that's interesting. And, uh, also like, uh, if you're in a lot of meetings, like four hours of meetings a day, and then throw in some support and stuff there in a day, it's like your day is really only two hours.
Starting point is 01:35:11 Does that mean it's the only right tasks that are two hours long? It's definitely hard. So, man, here's the thing. I think we should probably give some more insight into what we've been doing. I mean, how many hours of meetings have you been on each day this week yeah this week's weird but i mean hours are in the week plenty i mean it's it is i'll say there's definitely times when i spend more than four hours a day on the phone right um that's not i wish it was uncommon man i only spent four hours on the on the phone then it's like woohoo I got the whole afternoon to do what I want to do.
Starting point is 01:35:46 I mean, it's difficult, especially when you're starting out a process like this. Expect to be going through some rough times just because people are going to have questions. Everybody's trying to figure it out. I'd say after we did the first day of sprint planning, the next day was nothing but people trying to figure out, how do we break this down are we doing this right like there's just a ton of questions so the first two days were completely shot and then day three was a little bit more of it and so you know i mean we talked about this in the last episode too that like you know there you'll have some people on your team there will be a consultants you know that might get hit with questions from other teams and whatnot.
Starting point is 01:36:26 So that's going to happen. And so I think that's where we kind of field some of those questions that end up taking up some of our time. And that's just part of the job. We all are in principal positions. And so a lot of our time is like, it's supposed to be, um, you know, and in doing these kinds of things, we bounce around, we kind of advise on stuff. Uh,
Starting point is 01:36:48 we ended up being in more meetings in that. Yeah. We're, we're, we're the rising tide lifting all the ships, right? People think, except for the evergreen doing,
Starting point is 01:36:57 I don't think anyone ever described me that way, but I'll take it. Yeah. Well, except for, yeah, like I said, I was trying to make the joke about the evergreen,
Starting point is 01:37:03 but you guys ruined it. So whatever, I'm tired of all the jokes about the evergreen, but you guys ruined it. So whatever. I'm tired of all the jokes about the evergreen. Anyways, that ship has sailed. Yeah, it's you're right when you start looking at the six hours. But that's also why you got to look at the capacity whenever it's time to do it and say realistically yeah i am going to be able to do this or not right and and you have to try and be that way yeah and i immediately like sprint planning like immediately was like i'm out for a week this week is a mess because it's been planning like realistically my you know
Starting point is 01:37:39 my capacity is extremely low this sprint and so that that's what it is. Got to call it out and plan accordingly as best you can. Hey, so that brings up another thing that's not in this document anywhere, because this is all based off stuff we've learned about Scrum through other resources. But just own experience. Like one of the things that I'll call out to you that you need to think about if you do go into this is are all the resources on the team developer resources? Because that wasn't something we had considered when we first got in there. And a lot of the tasks that were built or stories that were built were based off creating this thing that was going to make this work. Right. And, and so if you have a team that is, I don't know, three full stack developers, a database person, and a QA person, you have to think about the tasks that you're
Starting point is 01:38:33 assigning out to all those different types of people, because just saying, Hey, I have five people and you know, five times 40 is 200. And then times three weeks is 600 hours worth of work and then multiply it and then, you know, automatically kill off two hours of each one of those. That's not necessarily your pool of working hours for development, right? You have a database specialist and you also have a QA person. So you need to be careful not to count all those towards the same task that you've set up. And that's something that is a little bit challenging, especially when you first started out, because you didn't think about that gap, right? Like you're just looking at, oh, here's the total hours of work we got,
Starting point is 01:39:13 and here's the total people we have. And that doesn't necessarily work out perfectly. Well, I think the real thing that you're highlighting there, though, is regardless of what the speciality is or the technology is, is that you're saying you have three generalists and two specialists. Right. And, you know, in that example that you're, you're describing, it's like, well, my generalist, I can easily just, you know, apply them anywhere. But those specialists, it's like only if there's this bucket of work that falls in this one vertical. And if I don't have anything in that vertical, then how do I utilize them? But also at the same time, I don't want to penalize the rest of the team by counting their hours as stuff that could be done.
Starting point is 01:39:56 So, yeah, that's tough, right? It is hard. I guess the right answer, I don't know. But maybe it's to try to like blend all of that knowledge. You know, you make your, your generalists more specialists and your specialists more generalist. Well,
Starting point is 01:40:13 that and the individuals have a chance to weigh in. So they can say, well, we thought we had this bush capacity by doing a little bit of math, but we, as we all know, math doesn't really work. And so when you ask the people,
Starting point is 01:40:22 do you commit this? He's saying, no, you're crazy because I've got this, that, and the other, I do this. There's no way I can commit to that work. And so when you ask the people, do you commit this? He's saying, no, you're crazy because I've got this, that, and the other, I do this. There's no way I can commit to that work.
Starting point is 01:40:27 And you say, well, what the heck went wrong here? And you realize that your, uh, the capacity that you started with was a, a faulty number because yeah, again,
Starting point is 01:40:35 math just doesn't add up. It doesn't add up. Yeah. See what you did there. And can we just say like, of course the math of my chicken would say that math doesn't add up and doesn't make it. I tried it before. It doesn't work. I get it. Yeah. say, like, of course the math of a chicken would say that math doesn't add up and doesn't make sense? Yeah, I tried it before.
Starting point is 01:40:46 It just doesn't work. I get it, yeah. It's like singing in the shower, right? It's like it's all fun and games until you get shampoo in your mouth, and then it's a soap opera. And that one is from Tristan. Thank you. Thank you, Tristan. That was very nice.
Starting point is 01:41:05 Oh, I will say the one thing that at least I've noticed is even when you have the specialist, when you have a team that's that closely tied towards getting things done, people seem because everybody has a vested interest in finishing that one story. Right. As opposed to, hey, I've got five tasks to work on. He's got five tasks to work on. She's got three. You know, it's instead of everybody being off in silos working on individual things, you're all working towards a common goal. So it seems like there is better collaboration. So definitely a good thing. All right. So now let's move on to one of the, probably the most key pieces of scrum in terms of, of making sure everybody's constantly in the know. And it's called the daily standup.
Starting point is 01:41:59 We've talked about this in the past. It's called standup for a reason. It's because you should not have this meeting longer than you're comfortable standing. And the max is universally said to be 15 minutes. And there's supposed to be three things that are supposed to happen in these things. There's collaboration, communication, and cadence. So here's the interesting thing about this one. The entire team is supposed to join. That's all your developers, your product owner, the QA person, and the scrum master. So everybody outside of the stakeholder should be in this meeting. Why the stakeholder? Huh? Why the stakeholder? I think because the stakeholder is usually there when they're being demoed or when they want to give feedback to things that are going on.
Starting point is 01:42:54 And once you've added things to a sprint, you're really not supposed to be trying to change things at that point, right? I think that's why. So there might be, yeah, it might be tempting to negotiate or whatever at that point. And it's not supposed to be happening. Right. And also, like, this is supposed to, I think, tell me if I'm wrong, but my understanding is this is supposed to be like a safe room, and you can get technical in the discussions. A little, but not much.
Starting point is 01:43:19 A little, but not much. Sure. It's fast, right? Yes, it's fast, and that's the thing. I can talk really fast if you'd give me a minute. So these are supposed to happen at the same time every day. Whatever. Do what works best for you. But, you know, try and keep it consistent so people aren't skipping out on it. Right. Like if it is the same time every day, then people are aware of it. It's supposed to be an overview, meaning it's light on the details.
Starting point is 01:43:50 That's key because as soon as people start diving into details, us as developers, it tends to go long. Now, this is where things are supposed to visibly happen. You're supposed to take a task and move it across the board, right? If you're doing things virtually like what we do, then you could have a Jira swim lane board up and just drag tasks along the way, right? Through the swim lanes. And you're sharing that so everybody sees it. Stakeholders, so this is what they say. Stakeholders can come to the scrum, but they have to hold their questions to the end. So they're not allowed to interject and start trying to change things and all that, Right. They can ask some clarifying stuff at the end. Um,
Starting point is 01:44:27 so there's supposed to be three questions per person. What did you do yesterday? What are you doing today? And is there anything blocking you? They should be short, sweet and to the point. That's really what it is. Um,
Starting point is 01:44:42 what's a blocker. This is a blocker mean I can not progress? Does a blocker mean I cannot progress, or does a blocker mean something is slowing me down? Oh, that's an interesting way of putting it. I would assume that it would be you can't progress, because something that's slowing you down could mean that maybe it just wasn't estimated properly or or yeah or maybe you know maybe it was estimated for assuming somebody else who might
Starting point is 01:45:12 have already had experience with that technology or that area you know but and you don't have that so you're trying to get caught up to speed right is one way you might interpret slowing you down yeah so i was just thinking like maybe if you're struggling with the ticket, maybe it should be kind of mentioned as a blocker because maybe someone else on the call can say, Oh, you know what, here, let me communicate and collaborate with you on, you know, something that might clear up some, whatever. Have you seen this? And then you don't want to talk about that in the meeting. This is not a place for discussion, but half maybe it can happen afterwards. I was just kind of wondering about that. Like if I say, well, okay, you know,
Starting point is 01:45:46 things aren't going as well as I'd hope because blah, blah, blah, blah. Am I wasting everyone's time? You know, is that relevant? I think it's definitely important to like call it out to say like, you know, Hey, this is what I'm working on. It is taking me longer. Or maybe even like if you started on it yesterday, like, yeah, I expected to have this done, but I'm having some, uh, some difficulties or whatever. Uh, you know, I hope to get it done today, you know, kind of situation. Then I think that would be appropriate to like, you know, at least express, you know, that there
Starting point is 01:46:13 is something slowing you down. And, and by the way, this is a good time for somebody else on your team to be like, Hey, I know what to do here. I can help. We can jump on after this and, and, and go do it. Right. So that's actually a really important thing that came up because when we were talking about this entire scrum process with our team, one of the things that did come up is like one of the jobs of the scrum master is anytime a blocker is brought up during one of these, these daily standups, it's the scrum master's job to go and try and remove that blocker after the meeting. And what one of the concerns was from our project manager was, hey, I don't want to wait until the next daily standup to raise a blocker. That's not the point. If you're working on something
Starting point is 01:47:02 and you're blocked, it's your due diligence to go try and unblock it, right? Like you don't sit on it until tomorrow. If you're blocked at 12 noon today, you don't wait until your call or until your stand up tomorrow at 11 a.m. to do something about it. You try and get it taken care of. Contact. I can contact Outline, contact Jay-Z. I can contact any number of people and be like, hey, can you help me here? If it's still not resolved the next day, then the Scrum Master kind of goes and tries to take it up to the next level, right?
Starting point is 01:47:34 Like, hey, I'm going to talk to the project owner or the project manager and be like, hey, can you try and get something done? Because we've tried to and we can't, right? So this is not a, an excuse to sit back and do nothing. It's just a nice way to escalate things if you're not able to get them done. Okay. So I, so I think my answer,
Starting point is 01:47:57 so the answer there that I was wanting to hear is, is maybe it's not listed as a blocker, but it's, you are supposed to highlight the important things in your yesterday and today story. And so that's a good place for it. But the blockers is really an escalation channel. So unless you need that escalated, it's, you know, I don't want to hear your excuses. Yeah, basically.
Starting point is 01:48:15 I mean, yeah, if you can't take care of it on your own and you need some assistance, sure. That's when you bring it up and like, hey, you know, we've been trying to get Team X over here to do something and they're not able to get to it. And it's, and it's stopping us from being successful. Then, then maybe they do something. Um, so it's, it's interesting. Again, these aren't hard, fast rules, but they're, they're a framework to work within that can be helpful. And yes, this is also an opportunity to where, you know, I'm stuck on something for two days. Scrum master is going to be like, Hey, you haven't made any progress on, on two days on this. Um, do we need to get you some help? Right. So it's kind of on them to sort of hold you accountable to a certain degree and also try and help you along so that
Starting point is 01:49:03 you're not flailing around. Right. Like, so the process is there to try and help you along so that you're not flailing around, right? Like, so the process is there to try and make sure everybody's succeeding, really. So that's pretty much it for the daily standup. And again, they're supposed to be short, short, sweet and to the point, no more than 15 minutes. It can be shorter if you want it to, if it finishes in six minutes, cool, but it cannot go longer than 15 and you it to if it finishes in in six minutes cool but it cannot go longer than 15 and you have any shut it down if you have any long-winded people that try to uh get too verbose in their descriptions you should shut that down yeah it's actually scrum master's job yes it's
Starting point is 01:49:37 the scrum master's job saying hey um we kind of need to stick to the format here because you know we got to get through this pretty quick yeah joe um somebody else want to take the backlog refinement so okay the backlog refinement this is part of that grooming process that we talked about before but this should be constantly changing as your business requirements are going to change over time. So like what you thought was important today, tomorrow might not matter anymore. It'll fluctuate with the price of Bitcoin. It is the jobs of the product owner to be in constant communication with the stakeholders to ensure that the backlog represents the most important needs of the business and making sure that the stories are prioritized in value order.
Starting point is 01:50:30 So real quick, I made this mistake too. It's project owner. So it's basically the project manager essentially, but go ahead. Okay. But this goes back to our like utopian, you know, world of, you know, you have this perfect backlog and you this perfect backlog and where we didn't get to start out in that world because we didn't do that process first. But these stories are constantly being modified and added or removed. So maybe you thought you wanted multi-factor and then you decide part of your upcoming user profile story doesn't need multifactor authentication. So, you know, you might remove that or maybe you decide that you want to change, you know, the support for that multifactor to be a meeting, maybe a 30 to 60 minute meeting that will be this backlog refinement session where the team will come together or dial in on the same virtual call to understand these new stories, um, and, you know, try to,
Starting point is 01:51:47 you know, get a feel for them. And these stories can only be added to future sprints. And I think that's something, I don't know that we've described that so far, but once you're in a sprint, uh, the goal is, you know, you can't change the current sprint. Oh, in fact, we said the sprint commitment cannot be changed once the sprint begins. So, yeah, hey, we were getting to it. Hey, and in our real world, it's locked down. Nobody's even allowed to touch them, right? Like once the person who has the ability in Atlassian Jira to set the sprint, nobody else can touch them. So it's kind of forced on us.
Starting point is 01:52:28 Well, I mean, if you have something come up that's high priority and production's down, it's on fire, you go handle it, right? This is the real world. But you don't change the sprint. You don't move stuff out because then that's going to mess with your forecast. And you need to see when things break down
Starting point is 01:52:42 and figure out why and adjust your things accordingly. Because if you see that three of seven of your sprints went off the rails because of production support issues, you either need to fix production or adjust your capacity or velocity. You know, it is your it already affects your velocity. Yeah. The importance of this mid-sprint session is that the team can ask clarifying questions and be better prepared for the upcoming sprint planning session. So this is why we were talking about that utopian world of if we had had a couple of these, we would have probably been better off by the time we did get to that first sprint planning session because instead we were all looking at these stories for the first time. So the whole point of this is to not get that. And you don't want the surprises, right? Yeah. And this helps the project owner know when there are gaps in their requirements and helps to improve the stories. So that by the time you do get to that sprint planning session, then, you know, maybe they've been able to add that refinement. And just a thought on this too, these midpoint things, I don't think that you want the entire
Starting point is 01:53:49 team there. It's probably some of your team leads or something like that, that you want in these that are going to do enough critical thinking to think about what's missing or what gaps are in the stories, because you're not trying to make them perfect. You just don't want there to be any surprises like what we were talking about in our first go around. So then there's – Okay. I was going to talk about marking a story done.
Starting point is 01:54:16 Is that what you wanted to talk about? Yeah, I did. All right. You can go ahead. You want the same things. Okay. So the product owner has the final say in making sure that all acceptance criteria has been met. That sounds a little bit much, though, right?
Starting point is 01:54:33 Like, I mean, can we be honest? Like, they're going to delegate that. They're not going to go and click around and everything. Yep, multi-factor. Yep, see it. Well, the story should be pretty high level. It should be like, you know, they show it to you in the demo and they say, well, what about this? What about that?
Starting point is 01:54:48 And then you say, you know, either I messed up or we didn't talk about that for the acceptance criteria. And over time, the idea is that, you know, both sides will kind of help train each other and get to where the communication is. And you're communicating all the time, right? So eventually over time, you get to a spot where you're pretty good. So your first sprint is probably gonna be pretty rough, but your 40th sprint working with the same people, hopefully that should be, y'all should be a well-oiled machine.
Starting point is 01:55:16 And again, that product owner is, or the project owner, I even do it. The project owner is in those daily standups. And so they're seeing the progress of this thing. So it shouldn't be hard for them to tell you, yeah, I'm not going to be able to sign off on this, or yeah, this is looking good, right? Like, great job, everybody. No surprises, right? No surprises.
Starting point is 01:55:35 Exactly. Yeah, so you could have another meeting called a sprint review where the entire team meets to get sign-off on the completed stories. And then anything that's not accepted as done gets reviewed, prioritized, and moved out to another sprint. So maybe you thought you were done, but in the case that you mentioned where some other criteria comes up or, hey, what about this, or did you think about this, then that's how you can address that.
Starting point is 01:56:01 And this can happen when a team discovers new information about a story while working during this sprint. It's kind of weird to be out a little bit. Cause you, it does say you move the story out and that story has tasks, tasks have estimates. And so you're kind of dropping this half done thing into the next sprint,
Starting point is 01:56:19 which is a little bit awkward. Um, but it doesn't really offend me as long as you're tracking it appropriately. I guess the important thing is the story points, whatever it is, is going to affect your velocity. So it's going to show you only finished 36 of what you thought would be 66 points or whatever. And so I guess it makes sense from that point,
Starting point is 01:56:41 but it is kind of weird in that by dragging over, you're kind of taking something that's potentially half done or 80% done and moving to another sprint. So I don't know. It seems like it would kind of mess with the charts to me. So hopefully this doesn't happen too often. Right.
Starting point is 01:56:53 I think what would probably be more apt to happen is you would create another story with the remaining bits and add the task to it, or maybe even transfer those tasks over that you didn't get to complete. It makes more sense to me. And you would title that story something like, Finish the First Story. Right, yeah, seriously. But you've got to phrase it as a question. You know what, though?
Starting point is 01:57:14 As a project owner, I want this first story finished. Yeah, because I told you I need this. I told you. What's funny is, honestly, when I was going through this entire learning process with all this garbage, that was the one thing that bothered me is everything seemed to be so perfect. Right? Like, oh, Scrum's going to be, you're going to be able to track your velocity. You're going to have these stories that are completable in a sprint. You're going to have this and that.
Starting point is 01:57:40 And everything just looked like, you know. And there were world peace and unicorns and rainbows. Right. You have these fields of lavender spread out everywhere. and that and everything just looked like you know world peace and unicorns right rainbows right you have these these fields of of lavender spread out everywhere and i'm like wait no there's something that stinks here and what and what happens when things go wrong and and i liked it that they called out that hey things are going to go wrong you break out a new story you move some things into the next one and then hopefully that lets you identify where you missed the gaps this time. And in future sprints, you'll be aware of those gaps and you'll plan better.
Starting point is 01:58:13 Now, here's the best part about this process, the demo. So this is going to happen towards the end of the sprint. And this is an opportunity to have direct communication between the team and the stakeholders and to receive any feedback, which that feedback may result in new stories. Right. But, you know, it's also,
Starting point is 01:58:38 it's also possible that the stakeholders might not even want the new feature that you spent the front working on, which it's okay. All right. I mean, if we're honest, it's like, it's going to the front working on, which it's okay. I mean, if we're honest, it's like, it's going to hurt a little bit,
Starting point is 01:58:48 but it's okay. It's okay. But, uh, it's better to find out early rather than sinking more time into building something that they don't want or need. Right. So, yeah,
Starting point is 01:59:00 but I mean, you know, let's face it. We're all gonna be like a little, little hurt about it. Um, you know, whatever, we'll move on. But, uh, it's mean, you know, let's face it, we're all going to be like a little hurt about it. Yeah, whatever.
Starting point is 01:59:05 We'll move on. But it's a great opportunity, though, to build the relationship between those team members and the stakeholders, though. And I think that can be really key. Now, again, in this particular case, though, the stakeholders are like your internal customers, not the external, because, you know, you're not going to have a demo with your external customers necessarily. Maybe, you know, in a big enough situation, maybe. But this demo also shows the overall progress towards the final goal. And you may not be able to demo at the end of every sprint, but you want to be able to do it as often as possible. And I really do think that this is one of the best parts
Starting point is 01:59:48 of it. The fact that this is encouraged and formally a part of the process. Showing progress is a big deal to everybody. It really is. Imagine you just join a company, right? You're a few years out of school, and you just join a company, and you get to work on something, and now you get to show it to your peers, right? That's going to be an exciting moment, right? Yeah.
Starting point is 02:00:18 So it gives everybody – everybody likes to take the spotlight for a little bit, right? No matter who you are. So, so there's nothing negative. There's no bad about it. And that's the stakeholder. So they didn't even want it. Right. If they don't want it. Hey, but then at least you didn't waste too much time. So that's true. I mean, you only wasted one sprint. Right. So the last bit of this entire framework, and this is truly, this is it right here, is the team retrospective. And this one's interesting because everything else that we've talked about so far has been about the product and how to move the product forward, you know, the task for the product, the stories for the product, all that.
Starting point is 02:00:59 This is about your team and the people on the team. That's what this entire thing is about. The scrum master is the one who facilitates it. And this is a closed door session session. This is not the project owner. This is not anybody outside the team and the scrum master. That's it. So, um, you have to observe your norms, which we talked about those. You're supposed to have how people interact, how to handle conflict, all that kind of stuff. You need that there. But the important part of this thing is you want an open dialogue. What worked? What didn't? What can we do about it? How can we make it better? What are the actual steps to actually go and improve this so we don't
Starting point is 02:01:39 run into it next time or in the future. Right. And they actually say, put items for improvement in the backlog. It should be a task type thing, right? Like, I mean, I know the three of us can give examples of just having deployment pipelines that are a pain in the butt to work with,
Starting point is 02:01:58 right? Like there are times that that slows you down. What can you do to improve that? Is there anything? It's a great way to address your technical debt. It is. It totally is. Yep.
Starting point is 02:02:09 So if there are things slowing you down, you can put actionable items back there. But they did say one of the big things that you want to do here, if you are the scrum master especially, is you want to start with the successes first, right? Like get people excited about the things that have going on. Like we,
Starting point is 02:02:27 we, we did a great job. We've got this stuff out there, you know, all this kind of stuff, but Hey, you know, we really need to work on a,
Starting point is 02:02:36 B and C. Um, and what can we do to get there? Bob's stories are always terrible. He always tries to trap us to the end and it's closing. We got to do something about Bob. Right tonight it's closing we gotta do something about bob right there's that and and it like a realistic thing would be hey um alan i saw you struggled on this thing for three or four days before you asked for help um next time let's not wait so long wait you know after the second day and not making progress um
Starting point is 02:03:04 let's let's raise that flag quicker, right? Like it can be anything. But again, the important part is this is a safe room. You're not trying to tear anybody down. You're trying to figure out how you can be more effective in future sprints and work well together. I dig it. So what do we think? It's a lot. It's a lot.
Starting point is 02:03:26 It's a lot. I definitely have kind of had a bad taste in my mouth about Agile because I was familiar with the manifesto. I kind of saw where it kind of sprang out of and saw over the years the industry spring up around it and the consultants and the trainings. And I totally see why companies send their development people to, to, uh, training meetings for like two weeks to get this stuff right. And then kind of bring it in and then have mixed results. And,
Starting point is 02:03:51 uh, I've also see, uh, you know, why some people say, uh, this is too complicated for us. Let's go,
Starting point is 02:03:56 let's kind of forge our own path using the pieces that we like, and then end up, uh, you know, kind of suffering with the some areas that they didn't take you know because maybe they're skipping retrospectives or daily stand-ups and that's uh areas that are having problems and sometimes it works out really well so i don't know i still have mixed feelings about it i'm excited to give it a shot and really try to do things kind of by the uh quote unquote book
Starting point is 02:04:20 or kind of modern standard i guess i should say say. So, you know, I'm looking forward to it. But, you know, for my little projects, my game jams, my stuff, I'm not really planning on doing too much different there. And like we said, you know, the ideal team size is seven plus or minus two. So I'm nowhere near that. And so I feel justified in kind of staying away from that for solo things. And I have no intentions on being any sort of director or anything anytime soon.
Starting point is 02:04:47 Uh, and so I don't have to worry about anything bigger than that. So it feels like a good spot for work type stuff. And, uh, for me, it'll stay at work. So if you disagree with anything,
Starting point is 02:04:59 uh, you can reach our director of communications, uh, Joe Zach on Slack. That's right. I'm going to do some tips here, but I'll have resources in the show links, including the Naughty Word Twitter account with 58,000 followers and 100 tweets.
Starting point is 02:05:19 This is just that good. I do have a couple questions that I thought I'd ask. One, I think I've already asked this one in the past, but, uh, you know, I figured I would do it justice that, uh, you know,
Starting point is 02:05:30 what's the object oriented way to wealth, to weld, well, to wealth inheritance. I know this one. Yes. Yes. Thank you,
Starting point is 02:05:38 Simon. Yeah. But that was also, uh, you know, made me think about like, what do you call a factory that makes okay products? A satisfactory.
Starting point is 02:05:53 Oh, my gosh. And with that, we head into Alan's favorite portion of the show. It's the tip of the week. All right. Looks like I'm starting off. So I want to tell you about a little tool I just found and showed Alan the other day. I thought it might be a good thing to mention.
Starting point is 02:06:09 So I was having an issue with a Genja 2 template, if you're not familiar with that. So basically a Python templating language for generating documents, HTML text, markdown, stuff like that. And in my case, I wasn't in a position where I was able to easily run the app. And so the thing I needed to do was at the very end of this kind of long process. And it was
Starting point is 02:06:30 really slow. And there were some things I wasn't sure about some functions I wasn't familiar with. I'm not really familiar with Jinja anyway. So I just Googled like Jinja template online, and I found a site that did exactly what it let me kind of do some experimentation and do some things in a cheap way that didn't involve me having to get things kind of set up. And so I was able to figure out my stuff really easy there. And so I thought I'd mention whatever templating language you're doing, you can probably find an easier way. So anytime really that you've got like a long, slow feedback cycle, it might be worth checking out some online tools and Googling for stuff like that.
Starting point is 02:07:05 So I wanted to mention that as a tip because sometimes it can really save you a lot of time and you can just figure out something quickly. And even if there wasn't an online version, you can just spin up a quick site, Django New Project, whatever it's called, and try some stuff like that. It's much easier than waiting two hours to figure it out if you got the parentheses in the right spot or whatever. So I want to mention that. than waiting two hours to figure it out if you got the parentheses in the right spot or whatever so when i mentioned that also bonus uh andromeda misspelled uh so it's like andromeda m-i-d-a at the end is a instrumental band that i've been following for a while and they just put on a new album which is uh i would say heavily influenced by the new Doom game soundtracks, which I'm also a big fan of.
Starting point is 02:07:46 And so if you like heavy instrumental music, then this is a great listen to. It's great for working to. And it's not as, we'll say, spastic as the Doom soundtrack. So it's a little bit easier to listen to while you're working. And so I think it's great. It's awesome. So I'll have a link to that on Spotify. there to listen to while you're working. And so, uh, I think it's a great, it, uh, you know, it's awesome. So, uh, I'll have a link to that and on Spotify or even just on YouTube or whatever, too. All right. Well, uh, for my tip of the week, uh, I had mentioned windows terminal, uh, I think in the last episode, not switching over to Terminal. And I thought I would share
Starting point is 02:08:25 this time that if you have made the switch to Windows Terminal, you can easily use like the keyboard shortcuts to switch to create a new, you know, open up a new prompt for whatever your favorite shell is. And, you know, it is really nice because it'll show you, you know, like, hey, it's this one's control shift three, this one's control shift four, whatever. But one of the things that was a little bit hidden, unlike Connie Mew or Commander, is that, you know, if you wanted to open up a new terminal and you wanted to split pane the screen with that new terminal in Connie Mew and Commander, it was like super easy. It was like in your face, you know, and you wanted to split pane the screen with that new terminal, in Condom Union Commander, it was like super easy. It was like in your face.
Starting point is 02:09:11 You could like, hey, do you want to split this off to the left or the right or the bottom or whatever? And in Windows Terminal, instead what you have to do is use the Alt key and click on your shell of choice and it will do that. And so once you then split it the first time, then you can select, you know, one prompt or the other, and you could do it again and again and again to keep splitting whichever one you have selected depending on, you know, your needs. So yeah, I'll click to open up a new terminal. Cool.
Starting point is 02:09:45 All right. I've got a few. I'm going to try up a new terminal. Cool. All right. I've got a few. I'm going to try and blast through them pretty quick. First. So first, if you're not a member of our Slack community and you've made it this far into the episode, you probably should be because there's a lot of awesome people that share a lot of awesome things up there. So the first one is from Ron in our tips and tips and tricks, tips and tools channel. I can't remember. Um, this one's awesome. It's a site on how to make different kinds of knots. So I know it's not program related, but man, how many times have you needed to tie a certain type of knot and you have no idea, you end up spinning things around 500 times. I'm not a boy scout. I get annoyed. And I know that knots
Starting point is 02:10:29 are really useful. This is awesome. There's like little step-by-step you can click frame one, frame two, frame three, and it'll show you exactly how to do it. Really cool. So should go do that. The next one, this is excellent. I saw this in that same channel and this is from Batterfoot. So this is, you know, that like, if you decide you're going to zoom and I have to do this all the time, cause I'm on a big monitor. And if I'm sharing my screen with people, I I'm, I'm always zooming in and out, you know, so that they can see. And so I'll do command plus, plus, plus command, minus, minus, minus, whatever. Well, the thing that stinks about that is if you're in Chrome, it does it for all your
Starting point is 02:11:10 tabs. So you go from tab one to tab two, you zoomed in 400% on tab one, tab two is also 400%. There's a, uh, an extension for Chrome that will allow you to do per tab zooming. That's really cool. So there's one. Wait a minute. Huh? I want to like throw a caveat on that though,
Starting point is 02:11:30 because that's not entirely accurate, right? Like the zoom, the per tab zooming, it does do it per tab if they aren't the same domain. Hmm. That's interesting. I don't know if I've noticed that. Maybe I'm in the same domain so much. That's interesting. I don't know if I've noticed that maybe I'm in the same domain so much that I don't. At least that's been my mileage. And I even like verified it just now.
Starting point is 02:11:53 I opened up some, you know, another tab and zoomed in, super zoomed in on that one. And it even says in the description, apply zoom to each tab independently of other tabs of the same website. So it's specific for that. Yeah. Yeah. Okay. Good call. That makes more sense.
Starting point is 02:12:09 I never even noticed it. All right. So that's pretty cool. So my last two are all about shortcuts. So I don't like using a mouse. I try to avoid it like the plague because my hands are always on the keyboard. So the first one is there is a problem of that problem is because you got like a 58 inch monitor in front of your face so it's like yeah well yeah way too much effort to drag
Starting point is 02:12:29 that boat anchor of a mouse plus you don't like to have your sensitivity turned up as high as i do so you're like oh really just dragging that thing around right it's a workout yeah i'm not trying to curl while i'm working so this though if never, if you, there's lots of people that probably have no idea about this. GitHub has tons of shortcuts. So I've got a link to all their shortcuts, but I want to share with you my favorite one, which is the T button. If you're in a get repo and you click the T button on the keyboard that puts you into a search for file type thing. And so if you know the name of a file puts you into a search for file type thing. And so if you know the name of a file, you start typing the file name and it'll pull up a list of things and say, hey, which one of these files did you want?
Starting point is 02:13:13 Right. And you click it and you're at the file. This is awesome, especially if it's repos that you're familiar with and you just need to get something really quick. And and that search, by the way, will also let you search for directories. Like if you know the name of a directory, you can type in that directory and it'll show you all the files in the directory. So love that shortcut. Is there a shortcut for GitHub that'll make it use the full screen of my monitor? Man, don't I wish.
Starting point is 02:13:39 Yeah, for real. And then, all right, so along the same vein, I work with so many people that I see using Visual Studio Code that they just don't, they've never taken the time to either read the great getting started pages or something. Yeah, whatever, right? I'm not going to say RTFM, but there are some really good things that are built into the thing vanilla out of the box that people just don't know about. My favorite one is very similar to the T thing on GitHub. And if you're on a Windows machine, it's Control-P. If you're on Mac, it's Command-P. But if you do Control or Command-P and you start typing the name of a file, it'll come up in that list and you
Starting point is 02:14:26 can just click it and it'll open it, right? If you know the name of a directory, but not necessarily the file, you can start typing the name of the directory. It'll give you the list of the files. So it's fantastic. It's a nice little quick shortcut to do. And then alternatively, there's another thing that I really like that I just don't see a lot of people use is command shift P or control shift P. That brings up the command palette. And so like all the functionality from plugins and stuff that you've installed, it's all available right there. So like an example, I see a lot of people do this. A lot of people do this.
Starting point is 02:15:04 You don't have to. If you copy and paste some JSON from somewhere and you put it in Visual Studio Code, a lot of people think they need to save that as a dot JSON file on their system to get that formatting and all that kind of stuff in there. You don't have to do that. Paste it into a blank document, command shift P, and type in the words change language. Just start typing change and you'll see change language mode come up there. Hit enter on that thing and then choose JSON. And now you've got it.
Starting point is 02:15:36 Now, there is another easy way to do that in Visual Studio Code. You can just go down to the bottom right where it says plain text, click on that and choose JSON. But again, I hate using the mouse. So my point in telling you this is there is tons of functionality built into that tool that is just absolutely amazing at making your life way easier and more efficient. So hopefully these are a couple of things to kind of wet your whistle a little bit and get you moving forward on that. I have another tip for you.
Starting point is 02:16:05 Okay. I just Googled this based on what you're saying. Cause I do this all the time. I go down in the bottom right corner. I changed Jason, just like you mentioned. The thing is, it's almost always Jason that I'm pasting almost always when I'm pasting
Starting point is 02:16:17 something and changing. I was like, you know what? I bet you can set the default for a new file because if it's text, who cares? I never, I'm not using code for text. So you can, uh, if a new file because if it's text, who cares? I never, I'm not using code for text. So you can,
Starting point is 02:16:27 uh, if you control K or command K and then, and then the letter M afterwards. So controlling K together and then M afterwards, you can actually choose the, uh, language. Wait,
Starting point is 02:16:39 not for the file. Sorry. That was just for the file. It's under click file preferences settings, and you can go change the default file. So every time you create a new file, you can just set it to be JSON. If you're using it for Python all the time, you could probably do it for Python or something too,
Starting point is 02:16:54 but I would definitely do JSON here because that's so common for me, and I don't like Googling for it every time I want to know. Yeah, I was going to say the one that Alan mentioned specifically about changing the file, the language mode, you can do it in the bottom right or you can go up to one of them. It's buried also in the menus too, like in the edit menu maybe. Or the control K and then M that you mentioned is the one to bring up that change mode and to and, um, this to select, to change the language mode of the doc, the current document you're in. And, um, when Alan mentioned, if you do the control shift P or command shift P, depending on your operating system, the, um, when it's
Starting point is 02:17:40 showing you those various commands, like it, you know, if there is a keyboard shortcut, it will show you the keyboard shortcut that you could type in otherwise to, you know, to not have to go through the command palette. Um, but you know, I hear you on that Jason thing though, because where I'm typically doing is when I do paste it in where,
Starting point is 02:17:59 when I find myself wanting to change the language mode, it's because I want to use the formatting. I want to, I want to actually do the shift mode, it's because I want to use the formatting. I want to do the... Alt-Shift-F. Yes. So I'll like, okay, shift it to change it to JSON. Okay, Alt-Shift-F. Okay, now I can read it
Starting point is 02:18:15 because that other stuff was just garbage. Right. No, it's just, man, it's such a useful tool, even for people that aren't doing regular programming, even if you're a database person or whatever, it is such a useful tool, even for people that aren't doing regular programming. Even if you're a database person or whatever, it is such a handy tool. And these little hints, just these little things, just even though they exist, can save you so much time. So, yeah, that's all I got. Yeah, Visual Studio Code is awesome.
Starting point is 02:18:44 And I'll tell you this too. Here's another bonus tip for you because we've been chatting about this one around the office. So there's WSL and WSL 2 has been out for a while. And I think I might have mentioned that in the last episode, WSL 2. It sounds familiar. But at any rate, if you haven't used WSL2, it's available, and especially it's important if you're using Docker. A lot of improvements have been made to speed up your Docker world.
Starting point is 02:19:15 And, yeah, I mean, Microsoft is only, like, improving their integration with WSL over time, and specifically WSL2. And one of the cool things that has happened is, you know, there was a Docker blog article that I shared with our team where the Docker community was saying like, hey, here's the best practices for Docker plus WSL2. And one of the recommendations that they had was to use WSL, your WSL two environment for everything as much as you possibly can, which means that if you had to, uh, you know, clone a repo and you're working with a repo, you should do all your get operations inside of your WSL two. And instead of doing it from like a command uh command
Starting point is 02:20:07 prompt or powershell prompt right and the reason there are reasons for it were like for file io simplicity but you'd also gain the ability of like these these uh you know linux tool chaining that you could do but the but the idea is that like anything that you can do in WSL two, then, um, if, if it's, if the files are in that Ubuntu or a WSL two, you know, file system, then there's no like facade that has to be gone through in order to get to the file. Right. Because if you had it in windows, yes, you can access it from your WSL two instance, but you're kind of like going through this facade to get to it. Right. And, And you definitely take a performance hit on that. Even in my own experience, I've got Git repos where if I do the Git command in PowerShell, there's like no hesitation at all.
Starting point is 02:20:57 Just boom, pops up the response. Whereas if I were to do the same Git status command in an Ubuntu instance through WSL2, then there's like a four-second delay. But where the rub is on that is that depending on your use case, maybe you're like, well, I need to use a tool like a Visual Studio. I need to use a Visual IDE. How can I access my files if they're under Ubuntu? Which Visual Studio Code we can put aside because that one makes it easy because if you were to try to open up the file system,
Starting point is 02:21:32 Visual Studio Code would automatically recognize like, oh, hey, you have a WSL instance. We can connect to that. Or if you were to launch code from your WSL instance, then it would automatically make that connection. And if it didn't already have the WSL server extension installed, then it would install it so that it could make that connection. But here's the thing that I didn't know.
Starting point is 02:21:53 When you use WSL2, Windows will automatically map a network share to WSL dollar for your WSL2 file system. So you could, you could do all of your get cloning, for example, inside of your WSL two instance. And then you're like, Oh, but I need to use visual studio code or, uh, you know, I want to open up these, these, uh, SQL files in data grip or my SQL management studio. You could open up the path files in DataGrip or SQL Management Studio. You could open up the path using a network file share path like slash slash WSL dollar sign slash home slash your username, assuming you put it in your user folder or whatever,
Starting point is 02:22:37 wherever your path may be. You could find it using that route. And in File Explorer, you'll get type ahead. Oh, one thing I forgot. I did say that a little bit wrong is that the the path would be slash slash wsl dollar slash and then the name of your wsl instance so okay so if you had a w um if you had a an ubuntu 2004 instance installed and then you know like i had a username of michael right if i wanted to get to that home directory then the path the unc path might look like slash slash wsl dollar slash ubuntu 20.04 slash home slash michael nice so a hidden chair is what it's putting in windows for
Starting point is 02:23:23 you for yes and but the thing is though is that like because it is you what it's putting in windows for you. Yes. And, but the thing is though, is that like, because it is, you know, it's kind of like a network facade, but like, you know, it's all in the same on the same box. So it's, it, you know, not really that bad. I mean, you are still giving up. There is still some give and take, right. Because you know, one, either one of those sides of the equation is going to like kind of have to go through this facade to get to it. But depending on what your needs are, maybe you can prefer to take that hit on the Windows side
Starting point is 02:23:56 rather than the WSL side. Pretty awesome. Yeah, so there's your 85 tips of the week uh sorry we we fell short on a couple there and uh if you haven't already subscribed to us uh we would greatly appreciate it you can find some helpful links links plural now at uh www.codingblocks.net slash review um you know if you find a place to you know you like to listen to podcasts and we're not there www.codingblocks.net slash review. If you find a place you like to listen to podcasts and we're not there, let us know. We will
Starting point is 02:24:31 fix that and make sure that we are listed there. Obviously, if you're listening to us because a friend might have shared a link with you or you're listening on their device, you can obviously find us on all the big platforms, iTunes, Spotify, Stitcher. Audible. Boop, bo, iTunes, Spotify, Stitcher. Audible. Boop, boop.
Starting point is 02:24:46 Oh, yeah. Boop, boop. Audible. And while you're up there, definitely check out the show notes. We spend a lot of time putting those together to help you out when you want to go back and just remember something without having to re-listen to an entire short episode. And you can send your feedback, questions, and rants to our Slack channel. And Twitter. If you're on our Slack channel. And Twitter.
Starting point is 02:25:06 If you're on Twitter, we're on Twitter. We can hang out together on Twitter at CodingBlocks, or if you go to CodingBlocks.net, you can find all our social links there at the top of the page. And don't forget about our LinkedIn Ponzi scheme. I know, at least for me, if you want to go ahead and send me a LinkedIn invite, as long as you don't look like a recruiter, I will accept it.
Starting point is 02:25:22 We can spread the Ponzi scheme on out and uh rake in all the whatever linkedin internet points so uh yeah do that at conebucks

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.