Skip to content
Permalink
Browse files
initial commit
  • Loading branch information
aa7401 committed Sep 9, 2019
0 parents commit 638681b1f7d8026046baf60d0f8cb9c68b459d22
Show file tree
Hide file tree
Showing 20 changed files with 943 additions and 0 deletions.
@@ -0,0 +1,72 @@

# Professional Development

Each week you will be expected to complete a series of lab activities in your two lab sessions. You will be required to reflect on these in your assignment so make sure you keep records of what you have done.

Resources:

1. [Lecture slides](https://docs.google.com/presentation/d/1qqetvLVMWvNGsmyGr9-Cuooxpz0Vl2OnD0oionqPOdI/edit)
2. Microsoft Teams installation files:
1. [Official app](https://teams.microsoft.com/downloads) for MacOS and Windows 10.
2. [Unofficial app](https://github.com/IsmaelMartinez/teams-for-linux) for Linux.

## 1 Teams

The agile teams have been set up to contain students with the range of skills needed to complete the module. Each team is named after an animal. Check the team list which you will find at the front of the lab to find out which team you have been assigned to and which lab slots you will need to attend (these should also be shown on your University timetable).

1. Each team needs a catch phrase! Discuss and agree one for your team.
2. Early on in the _first lab session_ email any members of your team who have not turned up to remind them to attend. It it very important that you meet up _every scheduled lab_ to avoid falling behind! You will find their email addresses in the University Email address book.

## 2 Project

Make sure you understand the group project topic. Ask your _lab supervisors_ if you have any questions. The product is only worth **10%** of your final grade however the skills and knowledge you acquire by completing the weekly lab worksheets will be needed to complete the reflective report (40%) and revise for the phase test (50%).

Carry out a brainstorm to make a list of all the interesting outcomes you could produce. You can find a list of the items in the IoT kit in the `exercises/` directory in the teaching materials on GitHub.

The implementation will consist of three key parts:

1. A "home hub" that contains the core business logic and handles the communications between the sensors/actuators and the UI. This could be a small computer running Linux (such as a Raspberry Pi) or a powerful microcontroller.
2. Some sensors and actuators that communicate with the hub. Each will need its own microcontroller and you will need to decide how it will wirelessly communicate with the hub.
3. Some form of UI that the homeowners can interact with. Will this be a web page, app or both?

Discuss the technical strengths and weaknesses of your team members and, before the end of the first lab session make some tentative choices as to which part each person is best placed to work on. We will come back to this in the second lab.

## 3 Skills Audit

Perform a detailed analysis of the problem you are going to solve and perform a Skills Audit on your team. There are a list of generic skills listed in the presentation which you will need to supplement with skills related to your choice of project. use this [skills list](exercises/01_prof_dev/README.md) as a starting point.

Create a **Team Competency Matrix** using a simple **Red-Amber-Green** (RAG) scale as shown in the lecture. This should include skills taken from the [skills list](exercises/01_prof_dev/README.md) provided plus any others you feel might be useful.

Refine the matrix using a 5 point scale.

## 4 Professional Development Plan

This should be carried out in the second lab session in small groups of 2 or 3. In these smaller groups, develop a **Professional Development Plan** for each person who should identify three things they feel they need to learn before the start of the development process in week 3 (so don't be too ambitious).

Create a top level heading for each of your chosen three topics and, for each, work together to answer the following questions, writing down the answers:

1. What do I want to learn?
2. What will I do to achieve this?
3. What resources and support will I need?
4. What will my success criteria be?

We will be reviewing this document in week 4 so keep it safe and refer to it as you carry out your learning.

As you carry out your learning to support this, answer the following, writing the answers down as you do each piece of learning:

1. What did you do?
2. Why?
3. What did you learn from this?
4. How will you be able to use this in the team project?

## 5 Team Psychology

Since we did not cover this in the lecture you should not attempt this task. We will come back to it in week 4.

You have been introduced to a number of important (and potentially interesting?) areas of psychology that relate to group behaviour. As a group:

1. Discuss the 'symptoms' of each (what should you be looking out for)?
2. What is the short-term impact on the team?
3. If not addressed what might be the longer-term impact? Is it recoverable at this stage?
4. What can be done to _prevent_ this from ocurring?
5. What can be done to recover it it occurs?
@@ -0,0 +1,53 @@

# Team Psychology

This week is for you and your team to take a deep breath after an intense week where you attempted to build a simple smarthome system. Despite the task seeming to be relatively simple on paper you will have struggled to get it completed. This lab you will be reflecting on why this was the case.

Resources:

1. [Lecture slides](https://docs.google.com/presentation/d/1_mMYilNPr1QCobs1wGp_Z6e8JyNJsOazRKAQkWbghwQ/edit?usp=sharing)

## 1 Reflection

Once you are all logged into the MS Teams portal you should reflect on the technical work your team carried out last week. Discuss the following points and make notes:

1. What went well?
2. What challenges did you face?
3. What will you change next time your team works on the project?
4. Were there any skills missing from the team and how did this impact the project?

## 2 CPD Peer Review

During the first week you put together a document that describes three skills you have agreed to learn. Locate this document and put yourself in a small group of 2 or three away from the rest of the team. Make sure the other members of your team _don't_ have the same skill set! Print off enough copies of your CPD plan to give to the all the members of our small group (including one for yourself).

1. Put all smartphones on silent and place them in your pockets.
2. Put all laptops in their bags and make sure any computer monitors are off.
3. Each person in the small group should go through their plan, discuss these points and make notes on the printout:
1. Was the skill relevent to the project?
2. Did they learn the skill?
3. What three skills do they want to learn over the next three weeks?
4. Next, each member should create a fresh CPD plan using the headings from the week 1 lab exercise. Once complete, this document should be shared via the OneDrive folder on MS teams, you will be returning to this in 3 weeks time.

## 3 DiSC Personality Test

Your next task is to complete the online [DiSK personality test](https://www.123test.com/disc-personality-test/). Consider your DiSC profile, does this reflect you as a person and how you interact with the rest of the team? As a team compare your profiles and discuss how this information helps you reflect on the team interactions.

## 4 Team Psychology

As a group, review the materials on team psychology from the lecture:

1. Did your group exhibit any known psychologicsl traits?
2. Why did these occur?
3. What team roles (Belbin) did members demonstrate?
4. Where on the Team Development Model (Tuckman) are you as a team?
5. By labelling these traits you should be able to search for strategies your team can employ to prevent them happening again.

## 5 Demonstration

The first task is to set up your system and show the lab tutor what you got working. You will be doing this even if your system is not 'complete'. If the lab supervisor is busy with another team, get the system set up and start working on task 2 while you are waiting.

## 6 Microsoft Teams

Next, all the group members should install MS Teams on their smartphones (and laptops if possible) and log in using their university email and password. Once logged in, everyone will find they have been placed in a team. If you are not in a team or in the wrong team, let the lab supervisor know immediately.

Next week you will be learning about the **Scum** methodology and applying it to your development team.
@@ -0,0 +1,98 @@

# 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](https://docs.google.com/presentation/d/1prJugx0CP3dDd5j5BqpD40mTwtzh3Ki91N2jCWagc_s/edit?usp=sharing)

## 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.

0 comments on commit 638681b

Please sign in to comment.