Skip to content
Permalink
f747bf3177
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

Scrum

This week you will be applying the Scrum methodology to improve the effectiveness of your team. Because you have already troubleshooted all the driver and connectivity issues, your team should be able to make some real progress this week.

Resources:

  1. Lecture slides

1 The Task

This week your task is as follows:

As a home owner I want an automated lighting system so that the lights come on if there is not enough natural light.

This can be broken down into a number of features:

  1. The system should include an interior light and an exterior light for people approaching the front door.
  2. Each light should be independently controlled.
  3. The lights should not come on automatically unless the natural lighting levels are too low.
  4. The threshold should be set by the user and this can differ for different lights.
  5. The light should switch off if no movement is detected for 10min by default but this interval should be user definable.
  6. The user should be able to override the indoor light system and switch the lights on and off using a light switch (push button).
  7. The system should keep a record of when the outdoor light is triggered, to include the date/time when it switched on and off.

2 Planning Poker

Your first task for your team is to figure out the different tasks that will be needed to be completed in order to implement this feature. You should be as detailed as possible, breaking the work down into manageable chunks, writing each task on a post-it note.

Next, one member of the team should read out the task and everyone should secretly decide how long the task will take in hours, holding up their fingers behind their backs to make their choice (with 5 fingers indicating 5 hours or more). The team should then simultaneously reveal their choices and, at this stage one of the three options below will happen:

  1. Everyone picks the same number of hours and this is 4 hours or less, write this on the note and move on to the next task.
  2. Everyone picks the same number but it is over 4 hours, the team split the task into two tasks, adding these to the stack and throwing away the bigger task.
  3. Members of the team pick different durations, the person with the lowest estimate explains the rationale behind their choice as does the person with the highest, then the team vote again and repeat this until they agree.

3 Burndown

Next, the total number of hours of work needed are added up and this used to produce a burndown chart. The x axis represents the amount of work (this will depend on the hours calculated) and the y axis is the number of days the team will be working (4 days, Tuesday to Friday) in this case. Calculate the necessary burn rate by dividing the total hours of work by 4. This tells the team how many task hours will need to be completed each day if the team are not to fall behind. This can be represented by a straight line from the end of the x axis to the end of the y axis as shown below.

Here is an example of a burndown chart showing the line of optimal development. In this example the sprint lasts from Mon to Fri and there are an estimated 40 hours of development. It shows that the optimum burn rate would be 10 hours per day.

  40 ║*
     ║   *
  30 ║      *
     ║         *
  20 ║            *
     ║               *
  10 ║                  *
     ║                     *
  00 ║                        *
     ╚══════════════════════════
       M    T     W     T     F

4 Kanban Board

The next step is to draw a kanban board (perhaps either on a whiteboard or flipchart paper). Use the column headings below as a guide. Now add all the tasks to the todo column as shown.

╔══════════════╦══════════════╦══════════════╦══════════════╦══════════════╗
║ To Do        ║ Plan         ║ Implement    ║ Test         ║ Done         ║
╟──────────────╫──────────────╫──────────────╫──────────────╫──────────────╢
║  ┌────────┐  ║              ║              ║              ║              ║
║  │        │  ║              ║              ║              ║              ║
║  └────────┘  ║              ║              ║              ║              ║
║  ┌────────┐  ║              ║              ║              ║              ║
║  │        │  ║              ║              ║              ║              ║
║  └────────┘  ║              ║              ║              ║              ║
║  ┌────────┐  ║              ║              ║              ║              ║
║  │        │  ║              ║              ║              ║              ║
║  └────────┘  ║              ║              ║              ║              ║
║  ┌────────┐  ║              ║              ║              ║              ║
║  │        │  ║              ║              ║              ║              ║
║  └────────┘  ║              ║              ║              ║              ║
╚══════════════╩══════════════╩══════════════╩══════════════╩══════════════╝

5 Assign Roles

You now need to discuss who will be taking on the role of Scrum Master and who will be the Product Owner. Refer to the lecture slides if you need reminding of their respective roles.

6 Daily Stand-Up Meeting

Now all the planning is done you are ready to start development. Stand in a huddle and make sure everyone can see both the updated burndown chart and kanban board. The Scrum Master should go around the group and ask each person in turn to answer the following three questions, taking a maximum of 90 seconds to answer all three:

  1. What task(s) have I done since the last standup meeting (are these clearly shown as complete)?
  2. What am I planning on/agreeing to do before the next meeting (make sure the person writes their name on these and moves them to the Plan column on the board)?
  3. Are there any issues that are stopping me from completing these tasks (the Scum Master should note these down)?

Now thw meeting is over but, whilst the rest of the team are getting back to work, the Scrum Master needs to review the answers to question 3 and figure out how they can be fixed. They might at this stage consult the specialists on the team and, after putting a plan together inform the person who raised the issue explaining how it will be resolved.

7 Conducting the Sprint

You will need to organise a daily standup meeting every morming between now and Friday. Decide on the times and how it will be conducted (face to face or video call). If you choose to use a video call make sure everyone can access it and conduct a quick group call during the lab to avoid technical issues later.

Next week you will be expected to demonstrate working software to the lab tutor.