Skip to content
Permalink
97d6bf2479
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

Agile Planning

Each week you will be expected to complete a series of lab activities. You will be required to reflect on these in your assignment so make sure you keep records of what you have done. You should refer to this week's presentation.

By this stage you should have decided on your team project brief. Some of these have a named customer so you need to contact them to help you with some of activities in this worksheet. For the other project briefs, one or two of the team will need to represent the customer.

Update Team List

Make sure you have emailed the module leader with the name of your development team together with the names and email addresses of all the team members. Remember to include details of the lab sessions you will be attending so that the online registration system can be updated to allow you to sign in each week.

Introduction to Agile

During your lecture you were introduced to the principles behind agile development.

  1. Discuss how the Agile Manifesto could impact how your team develop the product for your customer. Compare this to traditional Waterfall development processes.
  2. With reference to the Iron Triangle of Planning, discuss how agile approaches can help project planning.
  3. If the scope is not fixed how can you manage customer expectations?
  4. How would you explain agile methodologies to the customer?

Domain Modelling

Now its time to meet with your customer and start planning the product. The first step is to draw a domain model. This will be quite large and complex so you should use either a whiteboard or flipchart paper.

  1. Discuss the problem in your team and start mapping out the:
    1. Entities
    2. Relationships
    3. Responsibilities
  2. As you do this you will identify questions that need clarification by the customer. Write down these questions as you think of them.
  3. Your lab tutor(s) will be taking on the client role. Invite them over and get clear answers to your questions.
  4. Repeat this process until you have a complete domain model, invite the client over and walk through this to make sure it is correct (matches the customer's expectations).

Requirements Gathering

Meet with your client (see note at the top of this worksheet) and work with them to identify the features they want the product to provide. Record these because you will be referring back to them during the planning and development process. Make sure these are clear, unambigous and consistent.

The team should support the client to record these requirements as user stories on filecards or post-it notes.

  1. Make sure you have applied INVEST principles.
  2. Prioritise these based on value to the user, rejecting those which are no longer relevent.
  3. Have you considered the alternative user stories?

Now work with your client to apply MoSCoW rules so that these requirements are prioritised correctly.

Agile Roadmap

This activity should be carried out with the client. At the end of each step take a photograph of your roadmap, this will be useful when writing up your reflective report.

  1. Create a 2D grid using masking tape and arrange your stories in usage sequence along the X-axis.
  2. Now move these along the Y-axis to show criticality (how essential they are to the core product) with the most used features towards the top.
  3. Use tape to slice the X-axis into key business processes, sliding the stories hoizontally to align them with this.
  4. You should now be able to create a horizontal slice at the top to isolate the minimum viable product (MVP).
  5. Finally transfer this information to a digital board such as Trello or even a spreadsheet.

You now have a product roadmap. Because your client has been actively involved in the process they will be happy with your plans and because the development team were also involved, they will also fully understand not only what needs to be done but also why. This roadmap is a live document and will be updated on a regular basis. In a permanent lab this would be left on view at all times (radiator vs icebox).

Documentation

As a group decide on the tools you will be using to capture project documentation.

  1. What type of documentation do you anticipate recording?
  2. What tools will you use?
  3. Who will act as final arbiter?

Technical Planning

Your development team now know what needs to be developed. Now is the time for a frank discussion:

  1. Are there any skills required to complete the project that need working on?
  2. Are there any potential issues with building any parts of the product?
  3. Identify the development platform
  4. What will be your primary development language?
  5. What frameworks will your team be using?
  6. Make sure you are comfortable with the mechanics of writing automated tests for your chosen language including testing async code and creating mocks: 1. UnitTest for Python 2. JUnit for Java 3. Jasmine for JavaScript 4. Microsoft Unit Test Framework for .NET 5. XCUnit for Swift

Before next week you need to make sure the team have all the required skills and have hacked together some code to prove that everything is solveable.