GithubHelp home page GithubHelp logo

dwyl / process-handbook Goto Github PK

View Code? Open in Web Editor NEW
76.0 15.0 10.0 229 KB

:green_book: Contains our processes, questions and journey to creating a team

License: GNU General Public License v2.0

HTML 100.00%
meta how-to howto

process-handbook's Introduction

dwyl Process Handbook

Contains our processes, questions and journey to creating ateam.

This is very much a work in progress. Please add an issue for anything you would like to see discussed here!

All of this is predicated on the assumption that you care about your clients and you care about delivering quality code. Go into this with a positive attitude!

Contents

Introduction

This README covers the responsibilities and ceremonies of a scrum master.

Time needed to Scrum Master a project

Depending on the size of the team, scrum master work is likely to occupy 2-3 days per 10 day sprint.

This may consist of:

  • 30mins - 1 hour a day (stand-up, backlog grooming, lifting blockers, scheduling next meetings etc.)
  • 30 mins - 1 hour per sprint doing sprint demo and sprint planning prep
  • 1/2 day per sprint in sprint demo/ retrospectives/ sprint planning

Responsibilities

So what is a scrum master responsible for?

  • Total understanding of the problem (that the product is trying to solve)
  • Lifting blockers aka making sure the team has everything they need to progress with their work. For example, ensuring there are:
    • no outstanding external dependencies
    • all the designs, copy, login/card details needed
    • decisions made on issues that are in discussion

Why? Developers may not know the status/details of all issues at all times. You must ensure that issues are ready to be worked on, whenever they come to them. This prevents time being wasted chasing or clarifying things when the team come to work on them.

  • Enabling the team to focus on coding rather than project management
    • Ie. the SM should be responsible for stopping scope creep or liaising with the client over wider project issues so that the team can focus on executing issues that they know are ready to go.
  • Enforcing good gitflow across both teams
    • Ie. making sure the client is using github as dwyl sets out and that the team are too (correct labelling, good commit messages etc.)
  • Full knowledge of the product backlog to enable them to efficiently do backlog grooming, sprint planning and time estimating.
  • Backlog grooming
    • Ie. making sure the backlog doesn't have duplicates, issues are correctly labelled (prioritised, time estimated etc) and have clear and full descriptions with wireframes, designs or assets where appropriate, that new issues are created rather than tagged on to old issues, asking any outstanding questions.
  • Setting up project meetings
    • Ie. when/ where sprint demos/planning or other client meetings, stand-ups take place.
  • Agrees sprint scope during sprint planning
  • Client communication, on hand to answer questions that may arise

A SM does not have 'authority' over the team, they work collaboratively with them. When the team needs direction to keep on track with the sprint milestone or with good gitflow practices they should be guided not forced! 😊

Ceremonies

Ceremonies are the events that the team take part in every sprint. Note: whilst valuable, ceremonies are just a portion of what it takes to run an agile project. Following the ceremonies in isolation does not mean you work in an agile way.

Stand ups

What is the aim of a stand up?

Stand ups are simple beasts, though often misunderstood. The aim of a stand up is a quick update for the whole team to ensure everyone is aware of what the team is working on, can understand where support is needed and ensure priorities are aligned.

Remember that 15 minutes of 4 people's time is actually an hour of time the client has to pay for.

A swift and focussed stand up is the key to a team's effective collaboration.

They should quickly cover what each team member has worked on since the last stand up, what they plan to be working on until the next one and crucially, whether there are any blockers.

A stand up is not:

  • For the scrum master (or product owner) - a scrum master already knows what the team is working on because it's their role to stay ontop of the backlog; this is an update for the whole team to ensure everyone is on the same page
  • A planning meeting - if new priority 1 requirements have surfaced or a feature absolutely must be discussed in detail, a short call or conversation should be organised for after the stand up with the relevant developer(s) rather than being discussed on this call
  • An opportunity for micromanagement - a scrum master is not a 'project manager' and our teams do not need to be 'told what to do'. A scrum master clarifies priorities, helps the team think through potential risks and solutions and ensures they are making progress towards removing blockers that keep the team from working
  • The time or place to ask lots of questions about a feature - questions should be captured in the relevant issue and discussed with the relevant developer rather than when the whole team is on the call; if there is a particularly complex issue that requires more conversation, a separate call should be set up with the relevant parties after the stand up

Running stand ups

  • Scheduling stand ups is the SM's responsibility
  • To be held daily at the beginning or end of the day
  • Should last approximately 2 - 4 minutes per team member
  • Can be done remotely via a remote conferencing tool, such as google hangouts, for which screensharing is recommended so people can see what everyone's been working on
  • Should be done with the scrum backlog open and referring to issue numbers

Each team member briefly summarises:

  • The issues they've been working on that day
  • What issues they intend to work on the following day
  • Whether they experienced any blockers, know of any risks with the issue they are working on or have any questions for the team

The scrum master should:

  • Update the team on their progress lifting any blockers e.g. progress getting an outstanding external dependency from the client.
  • Ask questions as the team show the work they've done that day where relevant (ie. Does that change therefore impact the timelines/effort for this other feature in the sprint? What is the result if the user chooses not to fill in all the fields of that form? This seems like a big change that would be useful to future developers on the project, should we add that to the documentation for the project?) - notice this is not about 'managing people and tasks' but about helping the team to work together
  • Ensure the team is on track and tackling the priorities set out in the sprint milestone on github and redirect them if they're going off track. E.g. there are 2 days of the sprint left, have we made sure that all the priority-2 issues have been covered before we move to the priority-3 ones?
  • Check whether the team has any new blockers or questions
  • Ensure the team stay calm and be pragmatic in times of stress or changes.

Sprint Demo

At the end of every sprint there is a sprint demo with the client. During the demo the client is shown the completed user stories for the milestone.

Sprint Demo Prep

  • Time Boxing πŸ•’ Before the demo, set the expectation of how long you think the demo will be through a calendar invite. A typical demo might last 30 minutes. The demo duration includes the demo itself + any questions following it. Time boxing shows that you’re organised and prevents any inadvertent time wasting. It gives you a reference point that you can point to if you notice that you’re running over time (a passionate client can talk for hours if you let them!)

  • Location 🏠 Ensure that you're holding your sprint demo somewhere where you and everyone involved has good access to a screen displaying your milestone / issues on GitHub. Unless you are constantly referring to the project board (in our case the GitHub issues list) it's very easy for people to get side-tracked. We/You need to constantly re-enforce the team looking at the project management system to ensure it gets used appropriately, otherwise chaos ensues rapidly.

  • Decide who will be driving the demo πŸš™ The demo will usually be introduced by the scrum master or the product owner (the person with the most demo experience on the team). The demo will then be handed over to the developers who have been working on it as they begin to go through the user flow. At any given time, the person with the most experience on a certain aspect of the application should be talking about it.

    We recommend that the person who is talking is a different person to the one driving (performing the actions in the application). When using the application it can be easy to stop interacting with the people you are demo-ing to and speed up the pace of the demo as you click through an application you personally know well. This will need to be prepared and practiced in advance.

  • Do a run-through of the demo ➿ Once you've decided who is driving/ speaking you should do a run-through. This is where you'll pick up all of your problems around flow and most importantly, unexpected bugs that you don't want showing up in the actual demo. Make sure you think about including mobile/responsive views into your walkthrough.

  • Recap on lessons learnt from previous demos βͺ It's always good to reflect on what worked well in the past and also what didn't. This can help you avoid mistakes you may have made before and also leverage the things that went particularly smoothly. Make sure you have someone taking notes for you during the demo so that you can focus on delivering it at the time, and then you can review your performance afterwards.

  • Remind yourself of the project status Review your backlog and take note of all the work you have done in the sprint.

  • Have all changes merged into master at least half a day before the demo The rushed changes you make in the last half a day are usually the changes that break everything and cause stress during the demo. Your last day/half a day should be for polish and bug fixing from the merges, not for functionality.

  • Know your audience! πŸ‘₯ Be sympathetic to who you're delivering your demo to. If they aren't technical then they won't appreciate any of the technical detail that you could go into. Your job is to be prepared for any technical questions that may be asked but it shouldn't be the focus of the demo. Don't describe what it is, describe how what you've done adds value to their application.

  • Have prepared notes/script πŸ“„ Prepare notes/ a script which details what you're going to cover during the demo to help you feel prepared and calm during the demo and to ensure that nothing is left out.

  • Determine who'll take notes πŸ“‹ Determine who, how and where your team will be taking notes throughout the demo so there is no confusion at the time as to where feedback you receive should be captured (we recommend GitHub issues).

Guidelines during the Demo:

  • Link your scope
    In your walkthrough try and tie all of the work you've done to the proposed scope (milestone). If you haven't completed all of the deliverables that you've agreed upon make sure that you have a think beforehand about what needs doing, and how you're going to solve this moving forward.
  • Breathe, be calm and deliberate
    This can be nerve wracking and taking some deep breaths will help slow you down! You're likely to have lots of nervous energy and excitement (particularly when a project has incurred a problem). If you're calm, you will calm down your client and portray confidence that you can handle the issues. A great way to help you remain calm is to ensure you're well prepared (see the guidelines above) for the demo.

The Demo

  1. Begin screen & audio recording
  2. Context of the sprint/demo
  3. Walkthrough of the product
  4. Review the stories completed in the sprint (let the person who did the work do the talking)
  5. Close the sprint milestone on GitHub (once all of the stories on the milestone are marked as complete)
  6. Wrap up the demo
  7. Invoice the client (ASAP)

Step 1 - Screen & Audio Recording

Before you start the demo start a screen & audio recording. It's useful in case you don't get the chance to write notes or if you need to share the session with an absent team member. Recordings can also help you review and improve your sprint demos for future instances.

Step 2 - Context

Start the demo by providing some introductory context such as what the aim of the sprint was and what you'll be demonstrating. The purpose here is two-fold; it sets up the demo but more importantly it allows attendees time to gently switch their attention away from their previous tasks (or meeting they have just come from), slow down and focus on the task at hand. If the demo isn't going to look like what the client was expecting (minimal styling for example), ensure that you explain this before you start so that they have a bit of time to digest why this is the case (reduce the shock factor) and what you're going to do about it.

Step 3 - Walkthrough

Walk through the proposed demo, paying close attention to:

  • Picking up on any small niggles the client may notice, can you pre-empt the client bringing it up by proposing a solution as you're doing the demo?
  • Are there things you're actually still not 100% sure are working the way the client intends? Ask the questions during the demo so they know you're looking out for their needs
  • Mention all of the work that has been done (especially if additional work has been done that wasn't originally expected)

Step 4 - Review the Stories

This part of the process will be repeated for each of the stories listed under the sprint milestone. Start with one story. For each story you have a couple of possible actions to take:

  • If the issue is already closed: quickly talk through how the delivering the story has gone and confirm whether the original time estimates were met (or why the task took more time than originally predicted).

Estimating and tracking time is the single most important factor to manage in a software project, it's how we show the Product Owner / client that we are providing value-for-money and helps us to plan future sprints with any degree of accuracy. This is where other teams fall down.

Don't spend too long on each issue, whilst it's important to let the client know what progress has been made, make sure there's enough time left to cover the things that need their input and discussion.

  • If the issue is still open: discuss why it is still open, how long it's been taking to complete and what still needs to be done (and how long that will take). If the issue is still relevant and in need of imminent completion remove it from the current sprint milestone and label it for the next sprint milestone. When you move the issue make sure you leave a comment within it which explains the current progress on the issue and why it's being moved to the next sprint. If the issue is now no longer a priority or something is blocking it and will be for a considerable period consider placing it in the backlog milestone.

In both instances ensure you mention what was learnt along the way.

Step 5 - Close the Sprint Milestone on GitHub

Once the previous sprint's stories have been reviewed and moved to the relevant places your milestone should now be 100% complete. At this point you should close the milestone on GitHub: please-close-completed-sprints

Step 6 - Wrap Up the Demo

Once you've completed your run-through of the demo, recap on what you've talked about and then ask if there are any questions (from either side). Discuss your plans for the next sprint in terms of deciding on a date to confirm a new scope of work. When you're finished don't forget to stop your screen & audio recording session.

Step 7 - Invoice the Client

As soon as the Product Owner (client) is satisfied that the agreed stories for the sprint have been delivered, prepare and send the invoice before anything else. NB. This may not fall as the responsibility of the SM.

Retrospective

  • A retrospective is held after the sprint demo
  • Can be held either all-in-one with the client or in two parts, one with the client, one without depending on the client/team's preferences.
  • They should last between 10 - 30 mins. The duration varies according to the size of the team and often may be longer earlier on in a project when the team is settling in.
  • During the retrospective each team member should have the opportunity to share things that they felt went well, not very well or things that could be improved based on the last sprint.

Sprint Planning

Spring planning is when you review the backlog and client's priorities to outline what will be put into the next sprint milestone. This may be done immediately after a sprint demo and retrospective or otherwise on a time/date agreed at the end of the sprint demo.

Sprint Planning Prep

  • Prior to sprint planning you should ask your Product Owner to prepare and prioritise the backlog with user stories and acceptance criteria for each issue
    • This is crucial to increase the efficiency of the sprint planning session - it allows a team to come into that session fully prepared with questions and having already put some thought into the most complex issues
    • Remember that these priorities may change during sprint planning itself as you discuss the issues with the PO and incorporate technical expertise into prioritisation - sprint priorities should never be decided unilaterally, they need to be discussed as a team
  • To aid the time estimating process, we recommend spending 30 mins the day before the sprint planning to familiarise yourself with the issues that will need time estimates so that you can discuss more complex with the team in advance.

During Sprint Planning

  • Time block 1 - 1.5 hours for the sprint planning session.
  • Discuss upcoming deadlines and agree on the next sprint duration. Generally we work in 2 week sprints however from time to time if a deadline dictates that this is no possible, we may work in a shorter sprint ie. a week. Be cautious when considering running longer sprints, sprints are called sprints for a reason and are not designed to be extremely long periods!
  • The aim of sprint planning is to recognise the highest priority issues and how long it would take to complete them.
  • Review how many / any issues you may already have added to the milestone that were unfinished from the previous sprint.
  • Review your repo's issues paying attention to the priority labels. Alter the priority labels so that last sprint's priority-3 are now this sprint's priority-2 (and so on). Only assign a realistic number of issues to the sprint (according to your team size/ sprint length). If there are too many of the same priority to assign to the next sprint, discuss what can be delivered and ask the client to clarify in order to dictate what goes ahead.
  • Assign time estimate labels to the issues. Estimates should be given by both developers in a team to account for potential differences in experience and for the fact that either of them may be tackling that issue. Timings are calculated as pairing hours.
  • Once your highest priority issues have time estimates assigned, 8 days worth of highest priority issues (to forecast for a 10 day sprint) will be added to the new sprint milestone on github.
  • 2 days in every sprint are reserved for refactoring, bug fixing and the sprint demo/ next sprint planning.
  • On larger issues where estimating may prove difficult, help the developers estimate better by asking them to think about breaking the issue down into smaller chunks. Then estimate for each of those chunks and combine them.
  • Remind your team that estimates should always account for testing, documentation and fulfilling project specific accessibility / browser or device requirements.
  • Ensure that sprint planning is kept on track and runs to the allocated time.
  • Use the opportunity to ask the client any questions that the team would need to know in order to implement the various issues.
  • Ensure that issues are clearly defined so that time estimates reflect the implementation of the issue clearly. Ie. add a checkbox to user sign up so people can subscribe to the newsletter. Does this mean just add the checkbox or does this mean implement an admin dashboard to manage newsletter signs up and enable users to sign up by adding a checkbox on sign up?
  • Try to bring back product conversations that may not be relevant or may not require everyone present at the meeting to help keep to time.
  • Make note of the issues and time estimates for your reference (the Product Owner should create/update the issues on github but you may need the notes before they've had a chance to do this).
  • Record any bugs/ enhancements that were discussed during the sprint demo to suggest as new issues during sprint planning. If it takes your Product Owner time to update github after your sprint planning the team can start working on these small issues that should be relatively straightforward to complete.

process-handbook's People

Contributors

arhell avatar cleop avatar iteles avatar jackcarlisle avatar nelsonic avatar robstallion avatar rub1e avatar seaneady avatar simonlab avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

process-handbook's Issues

Additional detail on sprint demos and planning

Having partaken in a recent sprint demo and sprint planning I have some notes to add to the repo, they cover:

  • Explanation of a sprint demo including demonstration of the product in its current form
  • Extra detail surrounding closing off milestones e.g. what to do with issues that are still open.
  • Flexibility surrounding sprint lengths during sprint planning
  • Assigning priority and time estimate labels during sprint planning

Forming a plan for sales deadlines

As a person in charge of creating a proposal or responding to an RfP
I want to be sure that I am equipped to handle this and that the people I need are available
So that I can perform tasks on time and by the deadline.

i.e. When the deadline comes in, make a plan to hit it if it's important to the organisation. If you can't, ask for help.

dwyl/hq#310 (comment)

Prompting Product Owners to groom the backlog

As a dwyl team member
I would like the scrum master to prompt the PO to groom the backlog prior to a sprint planning session
So that during our sprint demo prep, we can review the requirements for the upcoming sprint and come prepared with questions and potential time estimates, making this process more efficient for everyone.

This is something we are particularly bad at at the moment and should look to fix!
Needs to be added to the documentation.

If you want to run a project, you have to be willing to pull people up on things

When you're working with a company like dwyl with a very specific ethos (see manifesto) and where everyone is so genuinely amazing ❀️ it can be really easy to just want to be everyone's friend.

But in my experience, when running a project/group of projects, like people are at dwyl, you have to be willing to be the 'bad guy' and hand out some tough love if it's warranted.

When someone makes a mistake or shirks processes, you should absolutely put on your "docendo discimus" hat and coach them through it. But when they do that same thing 3 times, you have to be willing to take them aside and tell them that's not ok for the good of your team.

Even if you feel like you're saying the same thing 20 times and "you know how that must sound". Even if you think it makes you sound like the biggest pain on Earth.
Even if you think you might not get invited to the next after-work drinks.
You do it with respect, but you do it.

To be clear, this is not about imposing an opinion. What you are saying must come from personal experience and that your goal is to stop them from having to step in front of those same bullets. It is a conversation that needs to be had with your team, just don't shy away from having it.

Demo Prep Notes

Detail could be added to the demo prep notes in the README.md

Scrum master ceremonies: retrospectives

  • Retrospectives are held after the sprint demo
  • Can be held either all-in-one with the client or in two parts, one with the client, one without depending on the client/team's preferences.
  • They should last between 7 - 30 mins
    The duration varies according to the size of the team and often may be longer earlier on in a project when the team is settling in.
  • During the retrospective each team member should have the opportunity to share things that they felt went well, not very well or things that could be improved based on the last sprint.

Tips | Meeting a potential client

  • Buy a watch/pedometer with a vibrating alarm, set it for 5 minutes before the meeting is set to finish - looking at your watch will come across as being disinterested
  • Be generous - offer advice if you think it will add value whether or not you end up working together (I don't mean do half a day of work for free, but good tips that people who might not have managed an app build before might benefit from for example); at best you transmit that you genuinely care about things going well for your client (which you genuinely should) and at worst you've just made both your client and their future developers' lives easier
  • Don't forget this person probably knows very little about you and what makes you special even though you know everything there is to know about you already πŸ˜‰
  • Time-Budget-Scope triangle
  • More to come.

Why it is important for POs and not scrum masters to create issues in backlog

I spend a lot of time preaching that Product Owners should create issues rather than dwylers.

We need to make this clear in this repo and our processes.

Why is this important?

  • Fosters a clearer sense of ownership of the backlog
  • Allows us to pick up on nuances and possible communication issues early (e.g. expectations that weren't clearly communicated verbally, incorrect understandings of conversations had over other channels)
  • Engages POs with Github early in the process and ensures they know to go there for updates rather than emailing members of the team (for example)
  • They learn from being asked the same questions a few times by developers and improve their creation of issues over time
  • We have clear criteria for what an issue is which surprisingly, we sometime forget to follow ourselves - POs are often better at following these if the correct expectation is set up front
  • Scrum masters' time is much much better allocated to asking questions and unblocking the team than to writing up user stories which then still need clarification and validation from the PO

Some thoughts on being a new-commer to Dwyl processes

As a newcomer coming into the project it would be helpful to have a set of clear basic guidelines to follow. What we should aim for, and what are 100% requirements.

I think it is also reasonable to expect there to be serious teething problems taking on a new project, a new partner and new processes to follow. I personally would have found it helpful to have a couple of things to focus on in a given sprint, then I know that I have to be doing those processes and will not feel hard done by if/when it gets brought up in a PR. That way good habits can be gradually built into our work flow. It might also help you identify the specific processes that people really struggle with and understand why.

Opening an issue in order to have a discussion on every question/idea that we have still seems a bit ambitious especially given the QAs time constraints.

It has been suggested that we should try a new feature/idea out in a separate spike, which sounds like a great idea, but is there time made for that? If there is it would be helpful to have some input from the QA at the beginning of the sprint to identify a good feature that we could separate into a ’spike’.

Before starting a dwyl project for the first time, if you expect people to use modules like hapi login, make sure they know in advance, and that they know and really understand how they work.

What to do when team members go on holiday?

As a dwyler
I would like to know what the processes are (both ops and for the projects) when I or a team member goes on holiday
So that I can ensure everything is done and I can plan accordingly.

Add list of scrum master responsibilities

Add list of scrum master responsibilities including:

  • lifting blockers
    Ie. making sure the team has everything they need to progress with their work, no outstanding external dependencies, all the designs, copy, login details, card details they need and decisions made on issues that are in discussion
  • enabling the team to focus on coding rather than project management
    Ie. the SM should be responsible for stopping scope creep or liaising with the client over wider project issues so that the team can focus on executing issues that they know are ready to go.
  • enforcing good gitflow across both teams
    Ie. making sure the client is using github as dwyl sets out and that the team are too (correct labelling, good commit messages etc.)
  • backlog grooming
    Ie. making sure the backlog doesn't have duplicates, issues are correctly labelled (prioritised, time estimated etc) and have clear and full descriptions with wireframes, designs or assets where appropriate, that new issues are created rather than tagged on to old issues, asking any outstanding questions.
  • setting up project meetings
    Ie. when/ where for sprint demos/planning or other client meetings, stand ups.

A SM does not have 'authority' over the team, they work collaboratively with them. When the team needs direction to keep on track with the sprint milestone or with good gitflow practices they should be guided not forced! 😊

Internal feedback!

We need to be giving continuous feedback, sure, but also we need a way to gather and give the more overarching 'not every day' feedback from everyone in the team

Add list of scrum master ceremonies with anchors

  • Sprint planning prep

  • Sprint planning (notes already in readme), add duration 1hr- 1hr 30mins

  • Stand ups #26

  • Sprint demo prep (notes already in readme)

  • Sprint demo (notes already in readme), add duration - 30mins and to show responsive/mobile view

  • Retrospective #29

  • Add contents list

  • Add anchors

  • Order text sections in order of contents

Create sample 'ideal' issue

As a new ateam member, I would like to have a checklist of the things I need to do when I create an issue (phrase it as a user story, which labels to assign, etc) and also see what an example issue might look like so that I can quickly get up to speed on how dwyl keeps projects organised.


Time estimate: 1hour

Note: requested by @SimonLab originally during a sprint retrospective.
link to: dwyl/contributing#8

Operations processes

As a dwyler,
I want to ensure that all operations processes are captured in a clear and replicable way, with checklists of the things that need to be done in a step-by-step fashion where possible
So that if the operations people are unavailable, the processes can still be carried out and in future we can automate these in order to free up time for other productive tasks!

  1. Create a list of the various tasks that are performed
  2. Open issues for each of these tasks in this repo
  3. Link each as a checklist in this main comment
  4. Follow our contributing process (including time estimations and time tracking) to complete these (I'm happy to be the reviewer)

Admin checklist / responsbilities

You either have a founder who looks after the admin, a scrum master who does it, or a dev in the team who does it.

Either way, you need someone to make sure they have:

  • Total understanding of the product
  • Full knowledge of the product backlog
  • Knows how to speak to the client and can be on hand to answer questions throughout the sprint (enter examples of typical questions)
  • Is available to give of their product knowledge for sprint planning and estimating sessions
  • Agrees sprint scope
  • Books sprint reviews and client demos
  • Invoices clients & chases those invoices

This doesn't include the more general project work like sales and contracting and making sure contracts are in place, etc.

What are stand ups for?

We have a couple of clients who have taken to prolonging stand ups for all sorts of reasons, mostly for asking all the questions about a project.

We need to add a section to our documentation on what the aim of standups is and how to deal with these situations.

Human Resources Section

Onboarding
Offboarding
Policy
Resourcing
Hiring
Employee proofs
Culture
Feedback
Visas
OKRs
Complaints

Keeping a sprint demo under control

So far in our experience, this seems to be portion of interacting with the client that is more prone to issues.

Need to delineate some thoughts on this and keeping the situation under control.

Finances Section

Bookkeeping
Expenses
Payroll / PAYE
Contractor Invoicing
Grants & Tax Credits
Corporation Tax Return
Budgeting
Forecasting
VAT Return

Add notes to Sprint Planning section

  • Prior to sprint planning you should ask your Product Owner to prepare and prioritise the backlog with user stories and acceptance criteria for each issue.
  • The aim of sprint planning is to recognise the highest priority issues and how long it would take to complete them.
  • Once your highest priority issues have time estimates assigned, 8 days worth of highest priority issues (to forecast for a 10 day sprint) will be added to the new sprint milestone on github.
  • Timings are calculated as pairing hours and 2 days are reserved for refactoring, bug fixing and the sprint demo/ next sprint planning.
  • Estimates should be given by both developers in a team to account for potential differences in experience and for the fact that either of them may be tackling that issue.
  • On larger issues where estimating may prove difficult, help the developers estimate better by asking them to think about breaking the issue down into smaller chunks. Then estimate for each of those chunks and combine them.
  • Remind your team that estimates should always account for testing, documentation and fulfilling project specific accessibility / browser or device requirements.
  • To aid this process, we recommend spending 30 mins the day before the sprint planning to familiarise yourself with the issues that will need time estimates so that you can discuss more complex with the team in advance.
  • Ensure that sprint planning is kept on track and runs to the allocated time
  • Use the opportunity to ask the client any questions that the team would need to know in order to implement the issue
  • Ensure that issues are clearly defined so that time estimates reflect the implementation of the issue clearly. Ie. add a checkbox to user sign up so people can subscribe to the newsletter. Does this mean just add the checkbox or does this mean implement an admin dashboard to manage newsletter signs up and enable users to sign up by adding a checkbox on sign up?
  • Try to bring back product conversations that may not be relevant or may not require everyone present at the meeting to help keep to time
  • Make note of the issues and time estimates for your reference (the Product Owner should create/update the issues on github but you may need the notes before they've had a chance to do this).
  • Record any bugs/ enhancements that were discussed during the sprint demo to suggest as new issues during sprint planning. If it takes your Product Owner time to update github after your sprint planning you can set the team to work on these small issues that should be relatively straightforward to complete.

Staging area - what is it and how to use it

The word 'staging' seems to do nothing but elicit looks of "That sounds like a lot of work" and "Why do we need that?"

We need a section in the readme on what we use a staging area for, why it is needed and why it's so simple to set up with heroku.

Working remotely - how to do this efficiently

@naazy As you're our remote working 'experiment' πŸ˜‰, it would be awesome if whenever you feel something is working well for you, you could drop a note on it here and whenever you feel something is not, do the same. What do you think?

@Conorc1000 and @roryc89, as the other half of the team, it would be great to get your thoughts too?

cc/ @Jbarget, you might be interested in this 😊

Sales Section

As a dwyler
I would like to know how projects and 'sold' and agreed
So that if there is a new project on the horizon or those who usually deal with these questions are away, I can ensure that I am following dwyl's ethos for this.


Edited from original issue description:
Requirements gathering
Providing quotes
Closing

Scrum Master Ceremonies: add notes on stand ups

Add these notes to the stand-ups section:

  • Scheduling stand ups is the SM's responsibility

  • To be held daily

  • Either at the beginning or the end of the day

  • Should not last longer than 15mins

  • Can be done remotely via google hangouts, screensharing is recommended so people can see what everyone's been working on

  • Each team member briefly summarises:

    • The issues they've been working on that day
    • What issues they intend to work on the following day
    • Whether they experienced any blockers or have any questions
  • The SM should:

    • Update the team on their progress lifting any blockers e.g. progress getting an outstanding external dependency from the client.
    • Ask questions as the team show the work they've done that day where relevant (ie. have you written documentation for that issue? did you update the readme to reflect those changes?)
    • Ensure the team is on track and tackling the priorities set out in the sprint milestone on github and redirect them if they're going off track. E.g. there are 2 days of the sprint left, please can you focus on the priority 2 issues tomorrow rather than that priority 3 that you mentioned?
    • Check whether the team has any new blockers or questions?
    • Ensure the team stay calm and be pragmatic in times of stress or changes.

A scrum master is *not a 'Project Manager'*

There is a misconception in a lot of teams, particularly teams where the scrum master is not a developer on the team (but also in general) that the scrum master is akin to a 'project manager'.
Aside from the fact that after 5 years of working at a global consultancy the phrase 'project manager' makes me want to spit, I found that this creates some serious issues with team dynamics.

How does this manifest?
This is easy to spot from the outside looking in: a 'scrum master' starts to dictate who will be working on what and when and stand ups become less about team collaboration and more of an update for the scrum master.

A scrum master is not a 'manager' in any sense. Their main focus is to protect the team, uphold dwyl's values and ensure the priorities are clear and sensical.

A lot of this is communication.

It's the difference between:
"I don't think you should be doing X, please do Y instead, the client was very clear about their priorities".

and

"You're planning to test X today? I respect that. I remember in our sprint planning meeting our client spoke 3 times about how Y was their highest priority and we haven't tackled that yet so that one is also worth considering. Do we need a plan to make sure Y gets done this week or are there blockers for Y that I can follow up on?"

Ensure priorities are clear. Eliminate blockers. Encourage the team to be accountable to the client, not just the scrum master.

This is not an easy balance to strike when the scrum master has for example been with the organisation a long time and is well respected (there is a natural 'deference' of sorts) or when a team is particularly junior and the scrum master must play a dual role of scrum master and gently steering things based on their experience.

'Bodyshopping'

Putting developers into an existing team, particularly one with an existing 'lead developer' isn't always a great idea. Need to explain our experiences of this - what works and what doesn't.

@mantagen @Jbarget You may want to contribute here! ;)

Holding issue for questions and activities asked of scrum masters

As a scrum master
I would like to see examples of the kind of things that crop up for which I need to be vigilant outside of the standard ceremonies and duties
So that I can keep an eye out for these.

Personally, I find it difficult to think of all the tasks I perform as a scrum master when I'm not performing them, so I've opened this issue to capture them as they happen. For now, I propose it sits as a running commentary - 1 comment per thing - and is broken out as we codify these.

None of this is criticism of teams, but gratefully exposed as reminders of the things we need to make sure we're doing to deliver the best work we can. We bring each other up, that's what being a team is. <3

Linked loosely to dwyl/hq#350

@Cleop @sohilpandya @markwilliamfirth @yvonne-liu Please add to this as part of your experience.

Add How long does scrum mastering take?

Depending on the size of the team scrum master work is likely to take 2-3 days per 10 day sprint.

This may consist of:

  • 30mins - 1 hour a day (stand up, backlog grooming, lifting blockers, scheduling next meetings etc)
  • 30 mins - 1 hour per sprint doing sprint demo and sprint planning prep
  • 1/2 day per sprint in sprint demo/ retrospectives/ sprint planning

GitHub Process Videos for POs

We've talked a lot about the process that a PO has to follow on GitHub and usually someone (mainly @iteles) has to walk the client through GitHub and the processes we have in place.

Have we thought about breaking it up into a few bite sized videos that we can just hand over to everyone? I have some spare time coming up soon and if we can come up with a few videos and some structure around what is important for a PO to be aware of before getting involved then maybe we can create something more visual?

Thoughts?

Review existing processes and determine what needs to be written up next

As a dwyler,
I want to ensure that all processes are captured in a clear and replicable way, with checklists of the things that need to be done in a step-by-step fashion where possible
So that if those who have carried them out before are unavailable, the processes can still be carried out and in future we can automate these in order to free up time for other productive tasks!

  1. Review what is in this repo
  2. Review and update issues in this repo
  3. Create a list of the various tasks that are performed yet to be captured here
  4. Open issues for each of these tasks in this repo
  5. Link each as a checklist in this main comment
  6. Follow our contributing process (including time estimations and time tracking) to complete these (I'm happy to be the reviewer)

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.