CSD2221 Block 2 Assignment ‘Planning a Software Development Project’
The scenario below is entirely fictional and only relevant for this planning assignment. You are not actually going to design or develop the game mentioned.
You are the project manager of a development teamworking for thedigital games developments company SoftToys. The company has bid for and won the contract for developing a game called Memory-Quest.The game has been commissioned by the research consortium MEMUK, which consists of the organisations Alzheimer Research UK, the Cognition and Brain Science Unit (CoBra) of Reading University, the Research Centre for Aging (ReCA) at Middlesex University. This Consortium has obtained £ 2,650,567 research funding for researching the decline of cognitive skills over the ages from the Brain Research Trust UK.
Memory Quest is planned as an app-based mobile phone game, to be developed for android. It uses the game as a new way of collecting data for researchers with regard to certain cognitive skills and their decline over all ages, in this case, memory functions. In other words, the application has to be a truly interesting, fully blown game at the same time as it collects data for the researchers. There are two main user groups, the players and the researcher.
The game metaphor suggested by the research team is a quest, a hero wanting to woo a girl. For this purpose, he consults a relationship guru who advises him on his quest.In order to win over the girl the hero has to gain in stature, wealth and personality which requires him to carry out various tasks at various levels of difficulty.
The collection of research data requires two types of data collection: (anonymous) personal background data including an entry level test (first quest) and the ongoing collection of data with regards to the tasks carried out, i.e. the time to completion, the score and the strategies employed.
The data will be stored in a database on a central server, accessible to all researchers of the consortium.The researchers require several standard reports and data exports in the form of excel, SPSS, and comma delimited data files.
Beyond these basic needs, the researchers are not entirely sure what else they would like, since they have only a fleeting idea what a game could deliver for them.
The software development project
The start of the project is currently planned for the 1st of July 2017 with a final deadline for handover on the 4th of January 2019. Furthermore, the following deliverables are required:
- Requirements specification document
- Early user-interfaceprototypes with alternative game designs(screen mock ups)
- First functional prototype with basic functions
- 3 intermediate prototypes (fully tested and evaluated, but not with all functionalities)
- Final fully functional, tested and evaluated application with:-
- Documentation including source code files, testing and evaluation report, set-up and gaming guides for the players, set-up guide and user manual for researchers, configuration and build with version description.
The small but dedicated development team consists of four developers (Andrew, Mike, Sophie and Charles), a research liaison person and yourself. Andrew and Mike are game developers, Sophie is a business IT software developer and Charles is a software developer with expertise relating to statistics. Harry, the research liaison officer, will carry out day-to-day liaison between researchers and software developers and participate in the design process (50%). The other 50% of his work time he will carry out his own research in the area of cognitive decline. You are a senior software developer and a project manager. Therefore, you will be project managing for 50% of your time and the other 50% you will be developing the software.
Your role is to plan this project. These are the steps
- Choose the software development model/project management approach. Do some research and find the most appropriate approach. Justify your choice by referring to the project scenario in not more than 150 words.
- Perform a Stakeholder Analysisby identifying as many stakeholders as you can find and placing them in a power/interest matrix. Briefly explain your key considerations for placing the stakeholder in their positions in the matrix (one or two sentences per stakeholder).
- Put the two texts and the power-interest matrix into a word document (.docx) and save the document for submission.
- Make a project Plan in the form of a Gantt chart with
- Effort estimation
- Task dependencies
- Task duration
- Resource allocation
Project planning is an iterative effort. In order to arrive at the final Gantt chart you will have to go through this process a number of times.
- You are allowed and should indeed use the teaching materials on Unihub, the two recommended (see course reading list) text books and publications provided by the library.
For the WBS you may start with the generic software development WBS below and modify it to suit your project. Without any iteration, the high-level tasks of a software design and development project might look like this:
- Requirements Analysis
- Project management
Identify the high-level tasks of the WBS for your project accordingly and break it down. The WBS should be at least three levels deep.
Effort Estimation - Duration
Only the leaf tasks, i.e. the lowest level tasks, can be estimated. Gantt Project calculated the effort of the higher-level tasks for you. Put in durations by using the right mouse button and clicking on task properties in the pop-up menu. A configuration menu opens in which you find a field called ‘duration’. All task attributes can be reached this way. Using durations instead of fixed start and end dates will be beneficial, once the dependencies have been put in, creating a network that then can be moved forward and backwards in time as a whole.
You put in dependencies by using the right mouse button and click on task properties, then you choose the predecessor tab. You click on add. In the field “task name” you find all the task already defined except of course for the one you are working on. Choose the task on which the current task depends. Then choose the type of dependency. Most of the times it is a start to finish dependency, but you can also put in dependencies like start to start (must start together) and finish to finish (must finish together). The last field is called link hardness. If you click on it you can choose between rubber and strong. The less dependencies the more flexible the scheduling. Once you have established thedependencies you have the basic structure of the project.
Project start date
In the main menu, you click on Project, choose Calendar and at the bottom of the pop up window you choose your start date for the whole project. This will move all tasks in the right order to the start date. If your project starts with a delay, you simply go back to this menu and change the start date and all tasks will move accordingly. This is the most important reason why you are advised not put in start and end dates in the main menu. Now you go back to the milestone that need a fixed date and do that.
Milestones are events (and not tasks) but they are being put in by starting a new task, called for instance ‘requirements specification delivery’. You then go into the task properties and tick the box next to milestone. It now has become an event and is represented in the Gantt chart as a diamond shape. The activity leading up to a milestone should be defined as predecessor. The same menu allows you to fix the date of the milestone, if necessary (i.e. submission dates that will not change).
Resource Allocation, in this case, means allocation of human resources. Schedule tasks and allocate resources so that each resourceis loaded as closely to 100% as possible, but not above. Furthermore, you should aim to load resources evenly and without gaps. This is an iterative process during which almost everything may need adjustment, but mostly the duration of tasks and the loading resources.
Firstly, wedefine resource roles. Go to Project in the main menu. Choose Properties and choose Resource roles. Add the resource role “software developer” or “project manager” by typing first and then adding. Leave the project menu and return to the main page.
Secondly, we make the resource allocation visiblein the Gantt chart by clicking on Edit in the main menu and choosing Settings and then choosing Gantt Chart. In the lower part of the pop up window (task details) you choose in the field “above” the allocated resources and go back to the main menu.
Thirdly, we add our project resources to the application. Click on the icon for New Resource (looks like an ID card) in the main menu. That opens a pop up window for this resource into which you fill the name and choose the role team member. You do this for as many human resources as you have.
Only now are we ready to allocate our resources: We go back into the Gantt chart, right mouse button, task properties and now we choose the tab resources. You add the resources that are going to work on this task by clicking on Add and then choosing the resource. You do this for each team member working on this tasks. Then you click ok. You return to the Gantt chart and you will see the names of the team members above the duration rod of the task.
Once the resources have been allocated to the tasks, they show up in the resource chart.
If you have not already done so,add the PERT diagramas a third tab to charts by clicking on view in the main menu and choosing the item PERT chart. It will show the scheduling of tasks according to your Gantt chart. The PERT chart allows you to schedule project tasks in a specific order and concurrently.
The resource chart shows you your resources and how they are loaded over time. This is the chart where you see which resource has been over-allocated or under-utilised at which point in the project. You should aim at spreading the load so that all resources are utilised evenly and as close to 100% as possible. You do this by changing the percentage with which you commit the resource to the task. If you look at a normal working day, 100% of a resource in this country is 8 hours. If you commit a resource with 50% to a task, the resource will work 4 hours of this day. 50% of a resource per week is 20 hours. You have to go back and forth between resource allocation and duration and scheduling to achieve the most efficient project plan possible.
Validity of the Project Planning
There are a number of different solutions to this planning task some are more appropriate than others and one is inappropriate. The information needed for the choices to be made are embedded in the project scenario.