What is Helperbot?
Helperbot is a Slack-based application that facilitates agile estimation for Scrum teams. Whether your team is co-located or fully remote, Helperbot is the ideal solution to help run Sprint Planning, Backlog Refinement, asynchronous Planning Poker, even Code Review management.
What is agile estimation?
Agile estimation, also known as Planning Poker, is a way for Scrum teams to estimate the effort and complexity needed to deliver user stories, or product backlog items, using story points. Helperbot allows Scrum teams to vote on user stories directly within Slack.What is a user story?
User stories populate a product backlog. A user story may describe a feature, a bug fix, a design element, or any task that a Scrum team will deliver during a sprint. Helperbot helps teams estimate and assign story point values to user stories within Slack, during Sprint Planning, Backlog Refinement, either in real-time or asynchronously.
How do I trigger an estimation in Slack?
/estimate is a Slack prompt that allows teams to estimate the effort of a user story by kicking off a planning poker game within the Slack application. For example, typing /estimate MyCoolFeature-123 in Slack will prompt Helperbot to open up the user story, MyCoolFeature-123, for the team to point in Slack!What is the Fibonacci Sequence and why do some Scrum teams use it for assigning story points?
The Fibonacci Sequence begins with 0,1,1, 2, 3, 5, 8, 13, 21 and continues with each following number being the sum of the preceding two numbers (e.g. 8+13=21). Story pointing is all about relative estimation and the Fibonacci Sequence helps to reinforce this concept. By avoiding sequential numbers, teams can better represent the risk involved with an increase of task complexity.Why do dog images come up when teams point user stories?
The size of the dog, in conjunction with the numeric value, simply helps remind teams that estimation is relative. The higher the number, or the bigger the dog, the more effort a task will take relative to the smaller dog. We think in terms of relativity because hours are not the only factor to consider when assigning effort to a story. Uncertainty, complexity, and risk, in addition to time, should be considered when estimating the effort required to complete a backlog item. The dogs are a metaphor to remind us about the relativity between user stories.Please tell me more about estimation criteria and relative effort...
Sure! When pointing a user story it can be helpful to follow the CUTER mnemonic: Complexity, Uncertainty, Time, Effort, and Risk, which minimizes time as the sole driver of point value. It should be noted that story point values will not be equal between separete teams -- and that’s ok!. Ultimately, the level of effort for a story is agreed upon by the team by way of their reference stories. A reference story is a common denominator, agreed upon by the team, that serves as a benchmark for relative estimation. Teams may ask themselves, is this user story, ahem, CUTER than our reference story?My team has completed voting on a user story. Now what?
Once all votes are in, teams can choose whether to use the average or the median value of all votes to assign points to the story. However, if the votes are out of range, defined as a spread of two or more Fibonnaci values (e.g. a 1 and a 5) then Scrum Masters should facilitate further discussion between the team, asking the voters of the highest and lowest values to each explain the reasoning behind their vote (a process called Delphi estimation). This conversation often surfaces additional information, whether it be overlooked dependencies that make a story more risky or useful prior art making a story easier than anticipated. Once this information is surfaced, the team may revote with the additional context in mind!What is /rate?
/rate is a Slack prompt that enables teams to anonymously rate literally anything on a scale of one to five. (aka Fist-of-Five). This can be helpful when deciding whether or not to cancel that 8 am meeting, what stories are the most important right now to bring in on buffer, or picking where to order lunch!How do I install Helperbot?
Helperbot can be installed directly from the Slack App Directory.Does Helperbot work with Jira?
Yes! You can configure Helperbot with your Jira instance. This allows Helperbot to automatically assign story points to a Jira ticket after voting is complete.
To integrate with Jira, just run /estimate auth and authorize your Jira instance. Remember that whoever authorizes the Jira app (the user account) is who the app takes action on behalf of (it cannot take action as the app itself, it takes action on behalf of the user). This means you can create a user with specific constraints (to projects or issues) that you only want to have Helperbot have access to and authorize as that user only.
Is it secure?
Yes! Helperbot's current integration with Jira would be considered an External App, utilizing OAuth 2.0 (3LO) for authentication.
How can Helperbot help me manage code reviews?
Any team member can submit a pull request for review using /cr [GitHub Pull Request URL]. Helperbot will keep track of these items and allow claiming and approval/rejection options. If you run /cr auth, you can authorize Helperbot to retrieve details about the Pull Request (including file type information and CODEOWNERS) and automatically notify pull request submitters when their pull requests have been approved (or request changes) out on GitHub.
How does Helperbot assist Product Owners?
A Product Owner generates user stories, prioritizes the product backlog, and communicates the needs of stakeholders to the team. Because Helperbot provides a frictionless way for remote team members to estimate user stories, Product Owners can spend their energy during Sprint Planning and Backlog Refinement clarifying the product vision to the team or explaining acceptance criteria, rather than waiting for their teams to manually point and calculate the story points when estimating user stories.How does a Scrum Master use Helperbot?
Helperbot is the not-so-secret weapon of Scrum Masters everywhere - allowing teams to easily point stories and calculations to be automatically performed based on the team’s votes. SMs can facilitate all /estimates and /rates within Slack while the Product Owner clarifies acceptance criteria or overall priority.
Scrum Masters may also use Helperbot voting results to facilitate further discussion between the team, for instance when the votes are out of range. As planning and refinement with Helperbot progresses, the Scrum Master can be on the lookout for potential impediments, and a view toward whether the team may be over or under committing, rather than calculating the points on the last pointed story!
How does a Team Member use Helperbot?
For a Scrum Team member, estimating user stories remotely, synchronously, or asynchronously has never been easier. Open up Slack, view all user stories open for estimation, and vote using numbers from the Fibonacci Sequence. Easy peasy! No planning poker cards, no show of hands, no fuss. Best of all, anyone on the team can open up an /estimate - empowering the entire team to feel shared ownership over the estimation of the backlog.What is a Product Backlog? What is a Sprint Backlog?
The product backlog represents the entire product vision, or a prioritized list of all items that may need to be completed to finish a project. It is organized according to priority and in the order in which the work should be completed. The ideal product backlog will be compiled of well-defined, high-priority stories up top with less-detailed, lower priority stories yet to be refined further down the backlog. The sprint backlog, on the other hand, is a list of user stories that the team has committed to completing within the duration of a single sprint. Helperbot can be used to point user stories for an upcoming sprint (i.e. a sprint backlog), refine and estimate stories in the product backlog, or to estimate larger epics - large bodies of work in a general product backlog that can be broken down into smaller user stories.How does Helperbot help with Sprint Planning?
Sprint Planning allows a team to create and finalize the sprint backlog for the next sprint. The Product Owner identifies what needs to get done, aka, what the product increment should be, and the team then decides how to accomplish that goal. The team will pull stories into the sprint, creating the sprint backlog and committing to complete the agreed upon work. By using Helperbot to estimate and assign story points to each story in the Sprint, the team gains an accurate understanding of how much work they are committed to completing within the next sprint.How does Helperbot help with Backlog Refinement?
Backlog refinement enables the team to get the backlog ready for upcoming sprints. The Product Owner sets upcoming sprint priorities and asks for the team’s input in refining tickets. The PO will define "must do" refinement items, but the entire team has a hand in deciding what needs attention most. Refinement includes: prioritizing work in the backlog, fleshing out a ticket’s Acceptance Criteria, creating new tickets, and story pointing. Therefore agile estimation generally occurs in Backlog Refinement more so than other team meetings. It is in this Sprint ritual that Helperbot typically gets the most mileage!
How can I add a new user’s name to the voting poll in Helperbot?
You don’t need to! As long as the new user is in Slack and interacting with Helperbot, the name will appear automatically after a while. Keep in mind, however, that Helperbot will need a week or two to learn that the new username should be involved in future estimations.
How can I change an existing name on the voting poll in Helperbot?
Due to reduced permissions, Helperbot doesn't know your user's actual names, it can only know your user's Slack username. To change a Slack username, have the user navigate to their account settings (eg. https://slack.com/account/settings) and expand the 'Username' section at the bottom of the page. Keep in mind that Helperbot will need a week or two to learn the new username.