Welcome to Cadence the Servant Leadership simulator for Scrum.
"There is great joy in leading with authority, which is serving others by meeting their legitimate needs."
- James C. Hunter
Please enter your name
<<textbox "$name" "">>
And let's get [["Started"|Introduction]]
Welcome $name!
Scrum is a curious animal. The data is clear that, if done right, it brings much higher odds of success [[(?)|Scrum Benefits]]. However, most attempts to move teams or enterprises to scrum or any of the other agile methodogolies are met with defeat or worse, degredation into "scrumfall" that perilious place that is just agile enough for the enterprise to call itself agile while remaining waterfall enough never really realize any of the benefits of agility.
There are just a few scrum rituals and they are easy to establish. It's changing the way we think about teams, their leadership, and (shudder) management that's tricky.
In this game, you will take on the role of Scrum Master for a software development team. Don't worry about the rituals. They're baked right into the game and happen on their own. Instead, let's focus on the way leadership affects the team. See if you can find the secrets that allow some teams to break out of bonds of project management and into the exciting, empowering world of agility.
There aren't really winning or losing conditions in this game (though you can get fired). The primary measurement of success will be your team's Cadence [[(?)|Cadence]] and ability to innovate. But what we're really looking for is leadership style that finds and maintains a healthy level of performance, that delivers great value, but does so without burning out the most important asset, the people. Can you master the skills within yourself that will unlock your team?
Let's meet [[your team|Meet the Team]].
<<set $sprint to parseInt(0,10)>>
<<set $control to parseInt(50,10)>>
<<set $vision to parseInt(20,10)>>
<<set $trust to parseInt(20,10)>>
<<set $skill to parseInt(20,10)>>
<<set $harmony to parseInt(20,10)>>
<<set $sanity to parseInt(80,10)>>
<<set $customerSatisfaction to parseInt(60,10)>>
<<set $doomClock to parseInt(0,10)>>
<<set $cadenceArray = []>>
<<set $accuracyArray = []>>
<<silently>>
//Convert teamCount to an int.
<<set $teamCount to parseInt($teamCount, 10)>>
<</silently>>
It's sprint 1 and you and the Product Owner (PO) [[(?)|Product Owner]] are just sitting down to sort through the requirements. They've got a pretty good idea what they'd like to build.
A Story Point [[(?)|Story Points]] is an abstraction that allows teams a way to discuss the relative sizes of tasks. Although Story Points are and should be abstract, we're assuming about one day's work per point. That's a common conciet and will help you measure your success in this game.
Please decide in story points the size of the project you'd like to resolve. The bigger the project, the more time to practice your skills but the longer the game will take (You reallly need at least 100 points per team member to see the influence you are having.):
<<textbox "$points" "">>
Great! You've met the team. You've had a look at the project. Let's get going with sprint 1 [[Sprint Planning]].
<<silently>>
//Sets values for issue detection during sprint retro.
<<set $visionIssue to 0>>
<<set $skillIssue to 0>>
<<set $harmonyIssue to 0>>
//convert the total points to an Int, increment sprint counter and calcuate points for this sprint
<<set $points to parseInt($points,10)>>
<<set $sprint += 1>>
<<set $sprintPoints = 9*$teamCount + ($vision/10)+ ($skill/10) + ($harmony/10)>>
<<set $sprintPoints = parseInt($sprintPoints)>>
//Records the values at the start of the sprint for compare during scoring.
<<set $pControl to $control>>
<<set $pVision to $vision>>
<<set $pTrust to $trust>>
<<set $pSkill to $skill>>
<<set $pHarmony to $harmony>>
<<set $pSanity to $sanity>>
<<set $pCustomerSatisfaction to $customerSatisfaction>>
<<set $pdoomClock to $doomClock>>
<</silently>>
<<if $sprintPoints >= $points>>
<<set $sprintPoints = $points>>
The team feel like they can finish the project this sprint and have committed to all the remaining stories! There are $sprintPoints left in this project.
<<set $unmodifiedSprintPoints to $sprintPoints>>
[[Next|Your Time]]
<<else>>
Time to plan for sprint $sprint!
Your team are estimating stories using the Fibonnaci sequence (1,2,3,5,8,13,21,...)
There are $points story points, left in the project and you will have $teamCount members available to work.
This sprint they are committing to $sprintPoints story points.
Would you like to:
Agree with the committment? <<radiobutton "$SprintCommittment" "agree">>
Discuss the committment? <<radiobutton "$SprintCommittment" "discuss">>
Change the committment? <<radiobutton "$SprintCommittment" "change">>
[[Next|Sprint Planning Response]].
<</if>>Ideal scrum teams are between 3 and 9 people with the optimium being 5 - 7. A smaller team produces less work per sprint but a larger team is much harder to stay close to. A functioning Agile team has all the skills it needs present. It is able to design, build, and test potentially shippable code entirely on its own. [[(?)|Scrum Teams]] In the real world getting this mix right can be a challenge. Since "Cadence" is focused on leadership, we're going to assume that the team is pretty balanced for skill and it's just a matter of how many you want to lead.
It's going to be a new team so they won't know each other very well.
How many people would you like on your team?:
<<textbox "$teamCount" "">>
Let's start with sprint 1's [[Backlog Grooming]].<<if $sprint == 1>>
Here you get to decide how to spend your time during this sprint. We work in 2 week sprints so you have 68 hours available (34 hour week *2). You can work more or less thank 68 hours but beware. It's tough to keep a team on track if you're not there and hard to keep your cool if you're exhausted.
Please note, the "standard" value for a two week sprint are (Standups 15 min * 8 days) + (Sprint planning 4 hrs.) + (review 2 hrs) + (retrospective 2 hrs) = 10 hrs. [[(?)|Rituals]] You may chose more or less but 10 is needed to maintain the rituals. Vary at your own risk.
Please allocate your hours to:
Rituals: <<textbox "$rituals" "">>
Informal Time with Team: <<textbox "$contact" "">>
Time spent dealing with obstacles: <<textbox "$obstacles" "">>
Time with Leadership: <<textbox "$leadership" "">>
Backlog Grooming for next sprint: <<textbox "$backlog" "">>
Personal Time (a small amount it typical for housekeeping tasks, a larger amount means time off): <<textbox "$leave" "">>
Time Mentoring: <<textbox "$mentoring" "">>
[[Sprint Events]]
<<else>>
Here's how your are currently allocating your time. If you like to change these, feel free. Otherwise, let's get that sprint running.
Rituals: <<textbox "$rituals" $rituals>>
Informal Time with Team: <<textbox "$contact" $contact>>
Time spent dealing with obstacles: <<textbox "$obstacles" $obstacles>>
Time with Leadership: <<textbox "$leadership" $leadership autofocus>>
Backlog Grooming for next sprint: <<textbox "$backlog" $backlog>>
Personal Time (a small amount it typical for housekeeping tasks, a larger amount means time off): <<textbox "$leave" $leave>>
Time Mentoring: <<textbox "$mentoring" $mentoring>>
[[Sprint Events]]
<</if>><<silently>>
//These are the unseen effects of stats levels. They directly impact the points per sprint and set up comments in the retrospective.
<<if $vision < 30 >>
<<set $sprintPoints = $sprintPoints - random(10, 20)>>
<<set $visionIssue = 1>>
<<elseif $skill < 50>>
<<set $sprintPoints = $sprintPoints - random(1, 10)>>
<<set $visionIssue = 1>>
<</if>>
<<if $skill < 30 >>
<<set $sprintPoints = $sprintPoints - random(10, 20)>>
<<set $skillIssue = 1>>
<<elseif $skill < 50>>
<<set $sprintPoints = $sprintPoints - random(1, 10)>>
<<set $skillIssue = 1>>
<</if>>
<<if $harmony < 30 >>
<<set $sprintPoints = $sprintPoints - random(10, 20)>>
<<set $harmonyIssue = 1>>
<<elseif $skill < 50>>
<<set $sprintPoints = $sprintPoints - random(1, 10)>>
<<set $harmonyIssue = 1>>
<</if>>
//The plus minus here decides if the random over or under is going to be up or down. Focus is the amount over or under the team will be. If they have high control, trust, and skill, they will not vary much.
<<set $plusminus = random(1,2)>>
<<set $focus = random(1,100-($control/2) -($trust/2)-($skill/2))>>
<<if $focus < 0 >>
<<set $focus = 0 >>
<</if>>
<<if $plusminus == 1>>
<<set $sprintResults = $sprintPoints + $focus>>
<<else>>
<<set $sprintResults = $sprintPoints - $focus>>
<</if>>
<<if $sprintResults < 0>>
<<set $sprintResults to random(1,10)>>
<</if>>
<<set $currentAccuracy = (($sprintResults/$unmodifiedSprintPoints).toFixed(2))>>
<<set $expectation = (($teamCount * 10) + $sprint)>>
<<set $variance = $sprintResults - $expectation>>
<<set $points = $points-$sprintResults>>
<</silently>>
<<if $points < 1>>
Congratulations! You have completed this project!
That is so awesome! You rock! Go dancing. Go take a cruise. Enjoy your victory.
When you get back from your celebration, would you consider supporting Noggin Means Brains Games on Patreon so we can put out more content like this?
[[Visit Noggin Brain|https://www.patreon.com/NogginBrain]]
You're also welcome to [["play again"|home screen]]?
<<else>>
At the end of the two weeks, your team get together with the PO and a representative of the customer to see what the team has accomplished. Of $unmodifiedSprintPoints story points committed to, the team accomplished $sprintResults points worth of potentially shippable features. That's $currentAccuracy of what the team committed to.
<<if $variance > 10 >>
Your team really overperformed the customer's expectations this sprint. Great work!
<<set $customerSatisfaction += 5>>
<<set $sanity += 5>>
<<set $harmony +=5>>
<<elseif $variance > -10>>
Your team produced about what the customer was expecting this sprint. Keep it up!
<<elseif $variance > -35>>
The customer is questioning the results of this sprint. They don't feel like they got a good value.
<<set $customerSatisfaction -=5>>
<<else>>
The customer considers this to be a failed sprint. Not good.
<<set $customerSatisfaction -=10>>
<</if>>
Now let's have our [[Retrospective]] and see how the team feels about the sprint.
<<silently>>
<<set $accuracyArray.unshift($currentAccuracy)>>
<<set $cadenceArray.unshift($sprintResults)>>
<</silently>>
<</if>><<silently>>
<<set $somethingHappened to 0>>
<</silently>>
The team get together for the retrospective to talk through their experiences and lessons learned during the sprint and...
<<if $skillIssue == 1>>
<<set $localRandom to random(1,100)>>
<<set $localTotal to $trust + $localRandom>>
<</if>>
$localRandom
<<if $localTotal > 99>>
You're team spend a lot of the retrospective asking questions about how Scrum works.
<<set $somethingHappened to 1>>
<</if>>
<<set $localRandom to 0>>
<<set $localTotal to 0>>
<<if $visionIssue == 1>>
<<set $localRandom to random(1,100)>>
<<set $localTotal to $trust + $localRandom>>
<</if>>
$localRandom
<<if $localTotal > 99>>
You're team a seem to have a lot of questions about the product.
<<set $somethingHappened to 1>>
<</if>>
<<set $localRandom to 0>>
<<set $localTotal to 0>>
<<if $harmonyIssue == 1>>
<<set $localRandom to random(1,100)>>
<<set $localTotal to $trust + $localRandom>>
<</if>>
$localRandom
<<if $localTotal > 99>>
Wow, this team can argue about anything.
<<set $somethingHappened to 1>>
<</if>>
<<if $somethingHappened ==0 >>
Well, you talked and then talked but your team didn't tell you much about what's happening in their world. Hmmmmm...
<</if>>
Now that the sprint has ended, you can jump straight into the [["next sprint"|Sprint Planning]].
Talk to leadership about changes you like to make to the [["team"|Talk to The Boss]]
You can also check out how the game thinks you did this [["sprint"|Score]] before you jump back in.
Finally, if you're just feeling frustrated, we keep a hints page hidden away right [["here"|Retrospective Hints]].
Work in Progress. Currently non-functional
Because Cadence is looking at the difference between management and servant leadership, you're never really going to be able to succeed unless you can put the team in a position to succeed on it's own rather than managing it. Here are the primary values Cadence tracks and how you did last sprint
Control: Control is direct management of the team. While some control is needed to keep your crew from watching videos or slacking off all day, too much stifles creativity and encourages your team members to seek other work. Last sprint you
sprint $sprint
control $control
vision $vision
trust $trust
skill $skill
harmony $harmony
sanity $sanity
custsat $customerSatisfaction
doom $doomClock
team count = $teamCount
You can [["talk to the boss"|Talk to The Boss]]
Let's get on to that [["next sprint"|Sprint Planning]]
<</if>>
<<silently>>
//Set sprint values to Ints.
<<set $rituals to parseInt($rituals,10)>>
<<set $contact to parseInt($contact,10)>>
<<set $obstacles to parseInt($obstacles,10)>>
<<set $leadership to parseInt($leadership,10)>>
<<set $backlog to parseInt($backlog,10)>>
<<set $leave to parseInt($leave,10)>>
<<set $mentoring to parseInt($mentoring,10)>>
//Value to detect if an event occurred.
<<set $somethingHappened to 0>>
//find total work hours in sprint
<<set $sprintBurden to parseInt($rituals+$contact+$obstacles+$leadership+$backlog+$mentoring,10)>>
//determine impact of team size
<<if ($teamCount > 9)>>
<<set $control -=$teamCount - 9>>
<</if>>
//detemine impact of sprint on Sanity
<<if ($sprintBurden <41)>>
<<set $sanity +=10>>
<<elseif ($sprintBurden < 61)>>
<<set $sanity +=3>>
<<elseif ($sprintBurden < 81)>>
<<set $sanity -=2 >>
<<else>>
<<set $sanity -=5 >>
<</if>>
//determine impact of leave on sanity
<<if ($leave >40)>>
<<set $sanity +=10>>
<</if>>
//determine impact of rituals on team
<<if $rituals < 10>>
<<set $control = $control -3>>
<<elseif $rituals > 15>>
<<set $trust = $trust -3>>
<</if>>
//determine impact of contact on team
<<if ($contact <10)>>
<<set $control -=5>>
<<set $vision -=3>>
<<set $harmony -=3>>
<<elseif ($contact <15)>>
<<set $control +=2>>
<<set $vision +=2>>
<<set $harmony +=2>>
<<set $skill +=2>>
<<else>>
<<set $control +=2>>
<<set $vision +=3>>
<<set $harmony +=3>>
<<set $skill +=3>>
<<set $trust -=2 >>
<</if>>
//determine impact of obstacles on team
<<if ($obstacles <10)>>
<<set $sprintPoints -= 10 >>
<<elseif ($contact >15)>>
<<set $sprintPoints += 5 >>
<</if>>
//determine impact of leadership on team
<<if ($leadership <5)>>
<<set $control -= 3 >>
<<elseif ($leadership >10)>>
<<set $control += 3 >>
<<set $trust -= 3 >>
<</if>>
//determine impact of backlog on team
<<if ($backlog <5)>>
<<set $vision -= 3 >>
<<elseif ($backlog <10)>>
<<set $control += 3 >>
<<set $trust += 3 >>
<<set $vision += 5 >>
<<elseif ($backlog <15)>>
<<set $control += 3 >>
<<set $trust += 3 >>
<<set $vision += 10 >>
<</if>>
//determine impact of mentoring on team
<<if ($mentoring <1)>>
//no mentoring impact
<<elseif ($mentoring <6)>>
<<set $skill +=1>>
<<elseif ($mentoring <11)>>
<<set $skill += 3>>
<<set $trust +=2>>
<<set $harmony +=1>>
<<elseif ($mentoring < 20)>>
<<set $skill += 5>>
<<set $trust +=3>>
<<set $harmony +=2>>
<<else>>
<<set $skill += 8>>
<<set $trust +=3>>
<<set $harmony +=2>>
<</if>>
<</silently>>
Two weeks roll by. You spend $sprintBurden plus some personal time at work. You run some burndown charts. It's all pretty groovy. Here's what happened.
<<silently>>
//generate random events.
//Totally random events.
<</silently>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 98>>
<<set $timeLoss = random(1,20)>>
<<set $sprintPoints = $sprintPoints - $timeLoss>>
<<set $somethingHappened to 1>>
A cut cable took out internet service for a while.
<<elseif $localRandom > 96>>
<<set $timeLoss = random(1,20)>>
<<set $sprintPoints = $sprintPoints - $timeLoss>>
<<set $somethingHappened to 1>>
There was an issue in the server farm and you lost time out of the sprint.
<<elseif $localRandom > 94>>
<<set $somethingHappened to 1>>
There was a major shakeup in leadership. This doesn't affect your team in any way nor any other part of day to day operations but leadership sure like to have shakeups don't they? I guess it gives them someting to do since they can't run Scrum.
<<elseif $localRandom > 92>>
<<set $timeLoss = random(1,25)>>
<<set $sprintPoints = $sprintPoints - $timeLoss>>
<<set $somethingHappened to 1>>
Stomach flu tore through the team this sprint. Less said about that the better.
<<elseif $localRandom > 90>>
<<set $timeLoss = random(10,15)>>
<<set $sprintPoints = $sprintPoints - $timeLoss>>
<<set $somethingHappened to 1>>
The client called mid-Sprint with a change in requirements. The Product Owner will be able to adapt by next sprint but a couple stories were lost out of this sprint because the story is no longer in scope.
<<elseif $localRandom > 88>>
<<set $timeGain = random(1,10)>>
<<set $sprintPoints = $sprintPoints + $timeGain>>
<<set $sanity -=2>>
<<set $somethingHappened to 1>>
One of the devs realized they could use an existing interface rather than building a new one letting them complete more points than they estimated.
<<elseif $localRandom > 86>>
<<set $somethingHappened to 1>>
I like your name. $name, that's a nice name.
<<elseif $localRandom > 84>>
<<set $timeLoss = random(5,20)>>
<<set $sprintPoints = $sprintPoints - $timeLoss>>
<<set $sanity -=2>>
<<set $somethingHappened to 1>>
Cube reshuffle! In order to accomplish something very very important, facilities came in a moved all the cubes. It took 3 days and you lost a lot of time out of the sprint. Also, you're going slightly mad.
<<elseif $localRandom > 82>>
<<set $somethingHappened to 1>>
You've died of Dysentery! Not really but, you can't do a text based game without an "Oregon Trail" easter egg.
<<elseif $localRandom > 80>>
<<set $somethingHappened to 1>>
<<set $sprintPoints -=10>>
One of your team members had a family emergency. The rest of the team covered for them but you lost velocity.
<</if>>
<<set $localRandom to 0>>
<<silently>>
//test to see if control caused events
<</silently>>
<<if $control < 30>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
Thursday night doesn't really seem like the right night to head out drinking but your team seem to favor it for some reason. Funny how little is getting done on Fridays.
<<set $sprintPoints -= random(5,10)>>
<<set $somethingHappened to 1>>
<<elseif $localRandom > 30>>
It seems like every time you walk past your team's desks, they are mostly just watching YouTube videos. If they were videos related to the work, that would be one thing but funny cats?
<<set $sprintPoints -= 15>>
<<set $somethingHappened to 1>>
<<else>>
"Desk Napping" seems to be a kind of a sport with your team.
<<set $sprintPoints -= 20>>
<<set $somethingHappened to 1>>
<</if>>
<<elseif $control < 50>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
A certain amount of absenteeism is normal but it seems like your crew get sick a lot when the weather is nice. Hmmmm.
<<set $sprintPoints -= random(5,10)>>
<<set $somethingHappened to 1>>
<</if>>
<<elseif $control < 80>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
Your team really seem to respect you. That's nice.
<<set $somethingHappened to 1>>
<</if>>
<<else>>
<<set $localRandom = random(1,100)>>
<<if $localRandom >30>>
Does it bother you that your team seem to actively avoid you like in the halls and stuff? It seems like they don't want to be around you.
<<set $sprintPoints -= 5>>
<<set $somethingHappened to 1>>
<<else>>
One of your team members has gotten fed up and left. Ouch!
<<set $sprintPoints -=10>>
<<set $teamCount -= 1>>
<<set $skill -=10>>
<<set $trust -=5>>
<<set $somethingHappened to 1>>
<</if>>
<</if>>
<<silently>>
//test to see if harmony caused events
<</silently>>
<<if $harmony < 30>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
Two of your team members have gotten into an argument about who is responsible for a task. (Insert conversation logic)
<<set $sprintPoints -= random(5,10)>>
<<set $somethingHappened to 1>>
<<elseif $localRandom > 30>>
Everyone on your team is insisting that they are not the one who committed to a story. That story doesn't get picked up.
<<set $sprintPoints -= 5>>
<<set $somethingHappened to 1>>
<<else>>
You discover that two of your team members aren't speaking to each other. This is creating a lot of drag.
<<set $sprintPoints -= 5>>
<<set $somethingHappened to 1>>
<</if>>
<<elseif $harmony < 50>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
Two of your team members have gotten into an argument about who is responsible for a task. (Insert conversation logic)
<<set $sprintPoints -= random(5,10)>>
<<set $somethingHappened to 1>>
<<elseif $localRandom> 5>>
Everyone on your team is insisting that they are not the one who committed to a story. That story doesn't get picked up.
<<set $sprintPoints -= 5>>
<<set $somethingHappened to 1>>
<<set $somethingHappened to 1>>
<<else>>
One of your team members has gotten fed up and left. Ouch!
<<set $sprintPoints -=10>>
<<set $teamCount -= 1>>
<<set $skill -=10>>
<<set $trust -=5>>
<<set $somethingHappened to 1>>
<</if>>
<<elseif $harmony < 70>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
<<silently>>
//No Harmony Issues
<</silently>>
<<else>>
Two of your team members have gotten into an argument about who is responsible for a task. (Insert conversation logic)
<<set $sprintPoints -= random(5,10)>>
<<set $somethingHappened to 1>>
<</if>>
<</if>>
<<silently>>
//test to see if vision caused events
<</silently>>
<<if $vision < 30>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
There are a lot of conversations during the sprint about the specifics of the product. It produces a lot of drag on the team and several stories are delayed to take longer than estimated.
<<set $sprintPoints -= random(1,10)>>
<<set $somethingHappened to 1>>
<<elseif $localRandom > 30>>
Mis-communication around the build lead to the completion of several stories that can't be used in the actual project. Those story points are lost.
<<set $sprintPoints -= random(10,20)>>
<<set $somethingHappened to 1>>
<<else>>
The whole sprint has devovled into a discussion about what is to be built. It's as if the PO asked for a bicycle and the team are building a dump truck. You'll be lucky to get much out of this sprint.
<<set $sprintPoints -= random(20,60)>>
<<set $somethingHappened to 1>>
<</if>>
<<elseif $vision < 50>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
Confusion about a featue results in a story that can't actually be executed. The team decided to ask the PO to rewrite the story.
<<set $sprintPoints -= random(5,10)>>
<<set $somethingHappened to 1>>
<<elseif $localRandom > 30>>
One of the stories completed this sprint turns out to be for a descoped feature and has to be discarded.
<<set $sprintPoints -= 5>>
<<set $somethingHappened to 1>>
<<else>>
One of your team members seems to be really struggling to understand some featues of the product. It's not a big deal but is causing some delays.
<<set $sprintPoints -=5>>
<<set $somethingHappened to 1>>
<</if>>
<<elseif $vision < 70>>
<<silently>>
//No vision Issues
<</silently>>
<<else>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
<<silently>>
//No vision Issues
<</silently>>
<<elseif $localRandom > 30>>
A couple of your team members got together in the cafe and figured out how to resolve a feature in about half the time expected. Nice.
<<set $sprintPoints += random(5,10)>>
<<set $somethingHappened to 1>>
<<elseif $localRandom > 10>>
<<set $localPointsReduction to random(10,40)>>
You're team build swipe a bunch of code from a previous project that allows them to meet this clients needs much more quickly. This helps you some in this sprint and elminates $localPointsReduction out of the project as a whole.
<<set $sprintPoints += random(10,20)>>
<<set $points -= $localPointsReduction>>
<<set $somethingHappened to 1>>
<<else>>
<<set $localPointsReduction to random(20,60)>>
You're team build come to you and the PO with to suggest a different technology be used to build a major component of the project. It's kind of revolutionary and will be a real market differentator for your customer. You lose a little time out of this sprint but building the way your team wants to build will save points out of the project and put a new technology in the marketplace
<<set $sprintPoints -= random(10,20)>>
<<set $points -= $localPointsReduction>>
<<set $somethingHappened to 1>>
<</if>>
<</if>>
<<silently>>
//test to see if trust caused any events.
<</silently>>
<<if $trust < 30>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
It seems like, if you suggest a change or behavior to the team, they'll agree with it during standup but, then not really do it.
<<set $somethingHappened to 1>>
<<elseif $localRandom > 30>>
A lot of the team don't seem intersted in Scrum. They're not showing up to standups or really participating at all.
<<set $somethingHappened to 1>>
<<else>>
Your team seem dead set on not becoming Agile. There's a lot of surly folks. They're avoiding talking to you and not giving you any insight into their world.
<<set $somethingHappened to 1>>
<</if>>
<<elseif $trust < 50>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
<<silently>>
//No trust Issues
<</silently>>
<<elseif $localRandom > 30>>
Your team are occasionally coming to you with questions about agaility and the scrum process. That's nice.
<<set $skill +=1>>
<<set $somethingHappened to 1>>
<<else>>
A conversation with a couple of team members leads them to an aha moment about self-organization. You feel like their ability to self-regulate and work together has a team has improved.
<<set $skill +=2>>
<<set $harmony +=5>>
<<set $somethingHappened to 1>>
<</if>>
<<elseif $trust < 70>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
<<silently>>
//No vision Issues
<</silently>>
<<elseif $localRandom > 25>>
Your team frequently come to you with questions about how to improve and really seem to benefit from the conversations.
<<set $trust +=2>>
<<set $skill +=5 >>
<<set $harmony +=5>>
<<set $vision +=2>>
<<set $somethingHappened to 1>>
<<else>>
This team is so responsive. They really embrace anything you say and adapt quickly to changes you suggest. Great job!
<<set $skill +=5>>
<<set $harmony +=5>>
<<set $vision +=2>>
<<set $sanity -=3>>
<<set $somethingHappened to 1>>
<</if>>
<<else>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
Your team frequently come to you with questions about how to improve and really seem to benefit from the conversations.
<<set $trust +=2>>
<<set $skill +=5 >>
<<set $harmony +=5>>
<<set $vision +=2>>
<<set $somethingHappened to 1>>
<<else>>
This team is so responsive. They really embrace anything you say and adapt quickly to changes you suggest. Great job!
<<set $skill +=5>>
<<set $harmony +=5>>
<<set $vision +=2>>
<<set $sanity -=3>>
<<set $somethingHappened to 1>>
<</if>>
<</if>>
<<silently>>
//test to see if sanity caused any events.
<</silently>>
<<if $sanity < 30>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
One of your team members is really not carrying their weight. You didn't mean to give them a piece of your mind but...well. You did.
<<set $trust -=10>>
<<set $control -=5>>
<<set $somethingHappened to 1>>
<<elseif $localRandom > 30>>
The speech you gave your team in the middle of this sprint could best be described as a mad rant. It was shocking and left the whole team with their mouths open. You lost control.
<<set $trust -=15>>
<<set $control -=10>>
<<set $somethingHappened to 1>>
<<else>>
The stress has really gotten to you and you are sick as a dog. Basically, you miss the whole sprint
<<set $trust -=15>>
<<set $control -=10>>
<<set $sanity +=10>>
<<set $somethingHappened to 1>>
<</if>>
<<elseif $sanity < 50>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
<<silently>>
//No Sanity Issues
<</silently>>
<<elseif $localRandom > 30>>
Wow! You got kind of snippy during that meeting don't you think?
<<set $trust -=2>>
<<set $somethingHappened to 1>>
<<else>>
One of your team members is really not carrying their weight. You didn't mean to give them a piece of your mind but...well. You did.
<<set $trust -=10>>
<<set $control -=5>>
<<set $somethingHappened to 1>>
<</if>>
<<elseif $sanity < 70>>
<<set $localRandom = random(1,100)>>
<<if $localRandom > 50>>
<<silently>>
//No Sanity Issues
<</silently>>
<<else>>
Wow! You got kind of snippy during that meeting don't you think?
<<set $trust -=2>>
<<set $somethingHappened to 1>>
<</if>>
<</if>>
Now let's have that [[Review]].
<<if $SprintCommittment == "agree">>
Great! The team commits to $sprintPoints story points this sprint.
<<set $trust += 2>>
<<set $control -= 1>>
<<elseif $SprintCommittment == "discuss">>
<<set $localRandom to random(5, 21)>>
<<set $sprintPoints = $sprintPoints +$localRandom>>
<<set $vision +=2>>
<<set $harmonty +=2>>
<<set $trust +=1>>
After discussion the team changes their committment to $sprintPoints story points this sprints
<<set $localRandom = 0 >>
<<elseif $SprintCommittment == "change">>
<<set $trust -= 1>>
<<set $control +=1>>
<<set $harmony -=2>>
How many story points would you like them to commit to? <<textbox "$sprintPoints" "">>
<</if>>
<<set $unmodifiedSprintPoints to $sprintPoints>>
Now let's think about what you'd like to do this sprint [[Planning|Your Time]].You've decided to take your concerns about your team to leadership.
Here you can do a number of things. You can request training for your team, technical, non-technical or Agile. You can request that team members be added, removed or swapped. If there's been an Iron Triangle change, a special box will appear here to allow you to support, resist or trust the Product Owner's position.
Requested training (if approved) will lower the team's ability to perform work this sprint as they will be in training but will improve their skill from the next sprint on.
Staffing changes (if approved) and Iron Triangles both resolve immediately.
Only check buttons for services you want. The game will ignore either training or staffing if nothing is selected.
Would you like to request training? (Pick one):
Request Technical Training? <<radiobutton "$training" "technical">>
Request Functional Training? <<radiobutton "$training" "functional">>
Request Agile Training? <<radiobutton "$training" "agile">>
Would you like to change staffing? (Pick one):
Request additional staff <<radiobutton "$changeteamCount" "up">>
Request a staff reduction? <<radiobutton "$changeteamCount" "down">>
Request to swap staff with another team? <<radiobutton "$changeteamCount" "swap">>
(Iron Triangle goes here)
Let's see what the boss thought [[boss results|results]]The leadership have thought it over. Here's what they say;
<<if $training == "technical">>
They have approved a technical training this sprint that should improve your team's development skills.
<<elseif $training == "functional">>
They have approved a functional skills training that should improve your teams ability to build executable stories.
<<elseif $training == "agile">>
They have approved training to improve your team's overall agility.
<<else>>
Your request was denied or your did not request training.
(Insert no request logic)
<</if>>
<<if $changeteamCount == "up">>
<<set $teamCount +="1">>
They agree to expand your team by 1.
<<elseif $changeteamCount == "down">>
<<set $teamCount -="1">>
They agree that you are overstaffed and reduce the team by 1.
<<elseif $changeteamCount == "swap">>
They agree to trade 1 of your team members with a member from another team.
<<else>>
Your request was denied or your did not request a team change.
(Insert no request logic)
<</if>>
Now let's get on to [[Sprint Planning]] Description of why scrum teams are cross functional and self-reliant
Link to:
https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-US.pdf#zoom=100
[[Go Back|Meet the Team]]Numbers on the benefits of Scrum.
Link to "Software in 30 Days."
[[Go Back|Introduction]]Description of the Product Owner Role.
Link to "The Professional Product Owner" Maybe???
[[Go Back|Backlog Grooming]]Description of Cadence.
“A regular cadence, or ‘heartbeat,’ establishes the capability of a team to reliably deliver working software at a dependable velocity."
- Mary and Tom Poppendieck
[[Go Back|Introduction]]
Data about rituals
[[Go Back|Your Time]] Double-click this passage to edit it.I haven't built the hints page yet. Maybe next iteration...
Back to the [["Retrospective"|Retrospective]].