Giter Site home page Giter Site logo

high-performance-teams-game's Introduction

Introducing Astro Micro 🔬

Astro Micro is an accessible theme for Astro. It's a fork of Mark Horn's popular theme Astro Nano. Like Nano, Micro comes with zero frameworks installed.

Micro adds features like Pagefind for search, Giscus for comments, and more. For a full list of changes, see this blog post.

Micro still comes with everything great about Nano — full type safety, a sitemap, an RSS feed, and Markdown + MDX support. Styled with TailwindCSS and preconfigured with system, light, and dark themes.


astro-micro-image

high-performance-teams-game's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

high-performance-teams-game's Issues

Move gameActions, gameEffects, gremlins & roundDescriptions closer to each other

Here's an architectural question @mlevison

Currently we have the technical implementation AND the game specific configuration all in src/state.

With tech implementation I mean files like src/state/gameActions/getAvailableGameActions.ts
With configuration I mean lists like src/state/gameActions/gameActions.ts#gameActionList

I wonder if it would make more sense to move all these lists into a config folder next to state

src
┣ state
┃ ┣ gameActions/getAvailableGameActions.ts
┃ ┗ ...
┗ config
  ┣ gameActions.ts
  ┣ gameActions.spec.ts
  ┣ gremlins.ts
  ┣ gremlins.spec.ts
  ┗ ...

What do you think?

Does drag effects always just remove 1 cap?

From reading the rules i'm not sure how technical and communication drag effects are to be handled.

Given I take no actions at all and no special effects and gremlins come into play
And in round 1 I have a capacity of 10
And in round 2 I have a capacity of 9
Would I have a capacity of 9 or 8 in round 3?

Actions display

I would like to change the selection colour from blue to green and make the line thicker to make it clear to the player that they have made a selection. I have no idea where to do that. I should be skilled enough to do this.

A player asked why we use a tooltip/popup to display the action description. He thinks displaying on the page would be better. I'm unsure.

Gremlins

A bunch of notes.

  • It should say 'Gremlin' before when displayed. I would love to make that change myself but can't figure out where to.
  • The gremlins affect on your capacity should be displayed when its text is display
  • Gremlins that are in effect should remain displayed above the "Available Actions" list. This way people are reminded that gremlins are in effect.
  • Gremlin's in the capacity calculation should be displayed with a highlight underneath them - perhaps some light red - to make the point that they're bad.
  • Gremlins should from two die rolls to a percentage, then each gremlin will occupy a smaller or larger chunk of that percentage.

Interruptions like Production Support - Special Effect Round N

Teams that do nothing to protect themselves from interruption due to fires automatically lose half their capacity this round.
o Teams that pre-allocated time to deal with fires roll a die: 1-3 no additional losses; 4-5 lose one additional story; 6 lose two additional stories
o Teams that dedicated one sacrificial team member roll a die: 1-3 no additional stories lost – same outcomes pre-allocating time to deal with the fires
o Teams that pre-allocated capacity and sacrificed a team member, congratulations, you took care of all of the fires that came up.

"pre-allocated time" and "sacrificed a team member" are both special actions that are made available in the same round the interruptions occur.

The goal is to show teams that Production support work comes at a cost. Some of that cost can be mitigated if the team prepares for it

Show Description Button should go away...

From a user: "Show description by default, I clicked the button thinking that it would give me more information but just is a rehash of the page before."

Instead just display the text.

Replay button

At game end there should a replay button. It should reset the game. If easy it should be focused on the on play tab.

User Stories roll should move from a d6 roll...

...to percentage chance giving us a more fine grained tool for calculating the rate of success or lack there of. I will tweak the starting success down to 30% and then things like Backlog Refinement (action doesn't exist yet) etc will improve it.

UserStorySuccess change and Capacity change in one>

The example isn't great, it does show something that would fun to simulate:
`PERSONAL_PRODUCTIVITY_BONUS: {
image: example,
name: 'Personal Productivity Bonus',
description:
'The company will offer anyone who exceeds their performance goals an extra $5,000. A manager says team members working harder will increase the likelihood of completing features on time',
cost: 2,
effect(age) {

    if (age > 1) {
      return {
      capacityChange : -1,
      userStoryChange : 0,
      title: "Productivity Bonus helped in the short term and then the benefit waned. Along the way it harmed collaboration";
      }
    }

    return {
      capacityChange : 0,
      userStoryChange : 50,
      title: "Productivity Bonus helped",
    };
  },
},`

Both kinds of change at the same time. How difficult is this change?

Implement effect on user story rolls

Hey @mlevison

There were some game actions that increased the chance to succeed in user stories (ae8021e)

It shouldn't be too complicated to implement this to enable use like this

WORKING_AGREEMENTS: {
    name: 'Working Agreements',
    available: { round: 1 },
    description: 'Create Team Working Agreements',
    cost: 1,
    effect: () => ({ userStoryRollBonus: 1 }), // <-------
  },

let me know if I should add that. (or close this issue if not :))


Acceptance Criteria

  • implemented as percentage
  • bonus effects are visible in the round outro

Results Page

Follow up of #10


We need a concept for the results page

What should be displayed there?

  • Total user stories attempted+succeeded
  • Log/review what happened in which round
  • final capacity achieved
  • replay button
  • #38

@mlevison could you describe the user story of the result screen?

Extend the game

If we make the game 10-12 rounds long and spread the actions out over rounds then it will be easier to digest each round.

Management is paying lots of overtime

The effect is also active in round 5 + 6

Actions only last X rounds

find a way to drop an action from the list 3 or 4 rounds after it was first introduced - I think I will need to limit the number of actions visible at one time to - 15? this means giving actions a maximum age - i.e. only display for X rounds.

I haven't decided what that limit is yet.

Some rounds themselves have strange effects

Example:

Round III – Sprint 7
“We must go live with an early version of the product this round, for CES. Due to your limited productivity in past rounds, management are prepared to offer some options to help you out. We will pay an extra ‘4’ points for anything that helps. Another team member? Overtime?”

Round IV – Sprint 10
“We’re live, congratulations. In addition, if we’re unlucky some teams will have to deal with a fire.”

Facilitator’s notes

  • Teams that do nothing to protect themselves from interruption due to fires automatically lose half their capacity this round.
    o Teams that pre-allocated time to deal with fires roll a die: 1-3 no additional losses; 4-5 lose one additional story; 6 lose two additional stories
    o Teams that dedicated one sacrificial team member roll a die: 1-3 no additional stories lost – same outcomes pre-allocating time to deal with the fires
    o Teams that pre-allocated capacity and sacrificed a team member, congratulations, you took care of all of the fires that came up.
  • Teams that invested in Unit Testing two rounds ago gain 1 capacity.
  • Check to see if anyone gains benefits from Team Room; Social Time; Moving Desks closer together; Working Agreements;

These suggest that my idea of round description text in an array from the previous issue was a bad idea because it the association between the descriptive text and the effects should be clear.

Unit Testing doesn't say why its blocked

Unit testing and any other action that gets blocked needs to state the reason why it was blocked so the player knows what to change if they want to implement it.

remove cypress

Since we're testing the game logic on a unit level, I'd suggest to remove the end-to-end tests because their coverage would overlap a lot.

I'd rather test the UI also in jest while mocking away the game logic.

Benefits I see:

  • Less coverage overlap
  • Simpler Setup
  • Faster running tests

Do you agree @mlevison ?

User Story Chance feels bad

When clicking though the game I tend to get round results where i have a 40% chance to succeed but from 10 stories none will be completed.

This feels kind of bad. When intended: Please close the issue.

Otherwise i though if we roll the stories starting with a high chance of success and decresing the chance for each story.

So in round 1 :

Maybe start with 90%
roll first story against 90%,

then reduce (100/storiesToAttempt)% (storiesToAttempt = 10)
roll second story against 80%

etc..

In that scenario the 10th story would have 0% chance of success.

Then game actions could increase the starting chance:

Productivity boost = + 100% starting chance

First story roll against 190% etc.


not sure how this feels but wanted to share the thought.

Results Graph to display UserStory Success Chance

Since User Story Success chance is the second variable that a player is manipulating, I would like that displayed on a graph. Possibly the same graph as the Capacity. If that is the case we just use a 2nd Y-Axis to indicate percentage.

Instructions and Descriptive Text per round

Each round will get special text - eg. “Team, welcome to the World’s Smallest Online Bookstore. We hired you because you’re the best individuals in your respective areas. Please remember that we’re Vulture Capital funded and we have only a few months runway, so you must deliver. This first Sprint, the company really needs you to prove that you can deliver a working ….”.

I understand that this is an html

tag - that's the easy part. Do I just jam the text into an array and look it up by round number?

Results Log

We need a results log at game end and preferably each round. It should display the action name, description (?), more info link and the round selected. The same applies for Gremlins.

The goal is to players see how they got the point they did. It will also help for retrying or improving the strategy for future rounds. Finally it will help players take away a list of links (via more info) that will inspire them to greater improvement.


User stories

  • 1. As a game maintainer I want the log to be useful for debugging.
    Given I receive a bug/feature request from a user
    Then I want to be able to ask the user for the log of the game
    And I want to be able to re-create the game/state by following the log
  • 2. As a player I want the log to be useful to reflect on how I got here
    Given I am in round 5
    Then I want to be able to see which actions I've taken in round 1
  • 3. As a player I want the log to be useful to improve my strategy for future
    Given I finished the game
    And I read the log
    Then I want to be able to make sense of all the steps i've done
  • 4. As a player I want to use the log to compare the results
    Given I finished multiple games
    Then I want to have some way of comparing the results of these
  • 5. As a team I want the log to help in discussions about the results
    Given I finished the game
    Then I want some way of referring to its details without needing to keep the game page open
  • 6. As a player I want to be able to save the log
    Given I finished the game
    Then I want some way of persisting its outcome (Any HTML page can be copy+pasted into a doc.)
  • 7. As @mlevison I want readers of a saved log to be referred to APR website
    Given a player finished the game and reads the log
    Then I want "more" links to be placed in the log
    And intrigued players would use them to learn more

Fix preview links

The links in previews (#15) try to load files from / instead of their preview path.

Causes the game to not load.

Instructions/Introduction page

Adding an intro/instructions page. The contents will clearly be HTML. The questions:

  • How to make this the first page they see
  • How to support access from the game without losing their play

Welcome page

When the player first visits the game - they should see a welcome page. To make it easy let's make it the rules tab that has focus to start.

images / emoji / only text

Hey @mlevison in my current idea for the UI I wanted to add images for all game actions that are shown in thumbnail format when small and bigger on the detail view.

I'm pretty sure that this will make the overall UX much better by helping the players recognise the actions and their effects faster.

Thing is: You'd need to provide these pictures. I did a few searches on https://unsplash.com/ but haven't found good fits in short tie.

Another Idea would be to use Emoji

  • 🏗 Build Server
  • 🏢 Team Members On SameFloor
  • ⚠️ Unit Testing
    ...

Or we could just stick with plain text but then I'd need to rethink the UI a bit

--

What's your take on this?

Effect description is not used

In the type, effects can have descriptions. But they're not used currently. The UI is not displaying them either.

The plan was to display them similar to the action description in a popover.
That way the title can be shorter and the list might be easier to scan
image

What should we do?

  • remove description from effects
  • display it in UI

Graph for completed work

How difficult would a simple graph be?

  • On the X-axis Round Number 1 -> Max
  • On the Y-axis Total number of stories complete - scale max 200 (?)
  • On Y-axis 2 - Team capacity on a scale of 0-40?

Simplify Effects

Mark: Other curious thing, as I created roundChange I was left wondering why the need for the fancy return mechanism in action->effect()? Why didn't we just always return a type with capacityChange, userStorySuccess and title?

Hannes: Can’t answer that from the top of my head. Will try to simplify the effect type and report.

How is this game played?

Thinking about the UI + Facilitator notes I noted that I'm unsure if the digital version of the game is meant to moderate itself or is more a help for a facilitator?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.