Project plan

advertisement

T-76.4115

Software Development Project

“GUI for Game on Demand Service with PHP”

Group 11 – Game On! Solutions

Project Plan

Table of Contents

1.

Introduction

2.

Stakeholders and staffing

3.

Goals

3.1

Project goals

3.2

Personal learning goals

4.

Resources and budget

4.1

Personnel

4.2

Materials

4.3

Budget

5.

Work practices and tools

5.1

Practices

5.1.1

Iterative development

5.1.2

Iteration planning

5.1.3

Documenting

5.1.4

Risk management

5.1.5

Time tracking

5.1.6

Communication

5.1.7

Iteration demo

5.1.8

Defect tracking

5.1.9

Version control

5.1.10

Coding convention

5.1.11

Process improvement

5.1.12

Requirements engineering

5.1.13

Design

5.2

Quality assurance plan

5.3

Tools

5.4

Standards

6.

Phasing

6.1 PP Iteration

7.

Risk log

Change log:

19.10.2006 Initial version of this document / IL

20.10.2006

Additions to most parts of the document / JJä

22.10.2006 Refined few sections / IL

5

5

5

6

6

6

6

6

6

7

Page

3

3

4

4

4

7

7

7

7

7

8

8

8

8

9

9

10

10

10

11

2

1. Introduction

Game On! Solutions signed on to a project for G-cluster to develop a GUI for Game on Demand Service with PHP.

The end-users of the system will be able to access the catalogue of games available in the service, to find a game to play, people to play it with and to start the game.

2. Stakeholders and staffing

Members of the developing team:

Project manager

Ismo Lehmus

61064V

050 309 6360 ilehmus##cc.hut.fi

QA manager

Juuso Jääskeläinen

63828J

050 346 6646 jpjaaske##cc.hut.fi

Developer

Joni Leiponen

54251H

0408255981 jleipone##cc.hut.fi

Developer

Tapio Auvinen

62994L

040 756 2742

Developer

Antti Pihamaa

48669M

040 717 5359 apihamaa##cc.hut.fi

Architect

Antti Kaunisto

47950R

050 323 3233 kantti##g-cluster.com

Developer

Jukka Merinen

58048D

040 534 3377 jmerinen##iki.fi tsauvine##cc.hut.fi

Architect Antti Kaunisto and developer Joni Leiponen are currently employed by Gcluster so they have good insight of the company and what they are looking for in this project. All members of the development team want this project to succeed and make sure that the result is of the best quality.

Development team’s mentor

Kari Suhonen

050 351 0241 kari.suhonen##hut.fi

G-cluster contacts:

Technical advisor

Samppa Turunen

040 500 2023 samppa.turunen##g-cluster.com

European sales manager

Stephen Ross

040 733 7789

3

4

3. Goals

3.1 Project goals

Client’s goals

Concept

Presentational tool

Description

Something to show to potential clients / new employees

A reference solution

A ready solution if G-cluster’s client doesn’t want to implement their own system

Documentation of the problem

Documentation of possible problems / limitations of set-top boxes. domain

Testing for external components

Consult the User Requirements Documentation for more precise descriptions of the business goals.

The development team’s goal is to efficiently create a system and documentation that fulfils customer’s needs and expectations. The team also tries to learn how to actively communicate without the need to regularly meet face to face.

3.2 Personal learning goals

Ismo Lehmus

Juuso Jääskeläinen

Project managing in general, maintaining active communication between group members and with customer.

Requirements generation and management, regression testing and in general more experience of doing a more thoroughly documented and tested software project.

Experience in using various tools.

Antti Kaunisto Gain more insight into SW process formalities.

Joni Leiponen

Antti Pihamaa

Gaining experience in working in a medium scale software project. Improvement of architectural opinions regarding consumer level software.

Getting experience in project management tools, php-framework and working in a group.

5

Jukka Merinen

Tapio Auvinen

Working and collaborating in a software project and to learn good software development practices.

Learn SQL, working in a large group and to estimate effort. Trying new tools and see if they are worth using.

4. Resources and budget

4.1 Personnel

Member PP I1 I2 Total

Ismo Lehmus

Juuso Jääskeläinen

Antti Kaunisto

Joni Leiponen

Antti Pihamaa

Jukka Merinen

Tapio Auvinen

Total

50

50

30

30

10

10

10

190

60

60

70

70

80

80

80

500

60

60

70

70

80

80

80

500

170

170

170

170

170

170

170

1190

The table above is only a rough estimation of how every member’s time is allocated between the iterations. It will be updated to correct numbers as soon as the correct numbers are delivered to project management.

4.2 Materials

Since the result of this project will be used on a variety of environments, it is necessary to have access to all of those for testing purposes. Most challenging will be the set-top boxes because their browser is of limited capabilities. These set-top boxes are needed in the testing phase and customer has promised them to be ready at that time.

The project management and SCM tools are located on a server that the customer has provided the development team with. All used tools are open source and there are no restrictions on them.

6

4.3 Budget

1190 hours times 15 to 20 euros per hour equals roughly 17800 to 23800 euros.

The real costs to the customer are only the time spent in meetings / reviewing the documentation and the 3000 euros that goes to SoberIT.

5. Work practices and tools

5.1 Practices

5.1.1 Iterative development

Feedback from the customer comes through weekly meetings.

Every development team member is responsible for their own scheduling within the given deadlines. Internal deadlines are decided by the SE experts when creating iteration plan and the project manager follows up on them.

5.1.2 Iteration planning

Iteration planning is done by the SE experts after consulting the customer. The consulting is carried out at the same weekly meetings as the feedback comes from.

Effort estimation is carried out with the developer who the task is assigned to.

5.1.3 Documenting

Project plan is created maintained mainly by the project manager with assistance from other SE experts who give opinions, provide information and review the document.

The developers provide a part of the information.

PP Iteration plan is created by the SE experts using the information the customer provided. Maintaining the document was done by the project manager.

Architecture documentation is created by the architect. A draft of system architecture is already created for internal use of the development team but will not be delivered at the end of PP iteration.

User requirements document is created and finalized by the QA manager. The requirements were discussed at the weekly meetings between the SE experts and the customer. Maintaining of the document is QA manager’s responsibility.

The customer is responsible for checking all the published documentation that they conform the NDAs.

7

5.1.4 Risk management

The risks are initially identified by the SE experts. After that the risk log is updated whenever a new risk is introduced or a risk’s status or impact changes. The updating is done by project manager.

5.1.5 Time tracking

Time tracking is taken care of with Eventum. This will be clarified as soon as the project management is more familiar with the tool.

5.1.6 Communication

TikiWiki is used to facilitate document sharing with the project team. An IRC channel and Skype conferences provide alternative means to communicate in addition to faceto-face meetings.

Google docs might be utilized in addition to the TikiWiki to allow for collaborative development of some documents.

5.1.7 Iteration demo

The SE experts will create a progress report for the demo presentation.

5.1.8 Defect tracking

Defect tracking is done with Eventum in the same manner as the tracking of general features. All development team members have the rights to create new defect-issues in Eventum when ever a bug is found and an obligation to do so.

5.1.9 Version control

SVN is utilized for version control. The commits are linked to issues managed in

Eventum.

Every developer will check in regularly before starting the development work and everyone will commit the changes when he has finished the development work.

8

5.1.10 Coding convention

A separate document is created and maintained by the architect regarding the coding convention. This document will cover basic syntax; class, variable and method naming; preferred structures; commit convention; documentation guidelines and all other necessary subjects.

A code review will be done after the very first code writings are done to check that all developers have understood the coding convention correctly.

Strict MVC (Model-View-Controller) layering is followed in all code generated.

PHPCodeSniffer may be used to automatically test code syntax compliance, either daily, per commit or at other chosen intervals.

5.1.11 Process improvement

Process improvement ideas and proposals are collected throughout the whole development project by the project manager. Proposals are then reviewed by the SE experts and it will be decided if they are implemented.

In addition to the proposals, a reflection workshop is kept after every iteration to discuss what could be done better.

5.1.12 Requirements engineering

A separate document is created and maintained by the QA manager.

5.1.13 Design

A more thorough separate document is created and maintained by the architect.

Architecture, development tools and constraints are mostly mandated by the customer needs. The customer has required the use of PHP language, MySQL and Apache fore the implementation phase. The customer also provides an initial implementation which will probably not be used in the project for anything but requirements elicitation and as a basis for some minor components.

The lightweight CodeIgniter MVC framework is used as the basis of the system’s architecture. The choice was made after exploratively narrowing down and the more thoroughly evaluating four commonly used PHP frameworks. The MVC layering will provide for the ability to change parts of the business logic with stubs, to provide different views for different clients and so on. Domain model pattern (PoEAA 116) will be mainly used for modelling business logic. Other major architectural patterns utilized are listed below:

- Model View Controller (PoEAA 330)

- Template View (PoEAA 350)

9

The structure of the persistency interface will most likely be either Active Record

(PoEAA 160), Row Data Gateway (PoeAA 152) or Table Data Gateway (PoEAA

144) or a mix of these. Object-relational mapping will not be used.

Concurrency is not a major problem due to the majority of selects among the database accesses in the system. PHP sessions, i.e. Server Session State (PoEAA 458), and user accounts will be utilized to provide for statefulness in a stateless HTTP environment.

5.2 Quality assurance plan

Quality assurance plan will be created and maintained as a separate document by QA manager.

5.3 Tools

PHPEclipse is used as the preferred IDE for development. Developers are free to choose other similar IDEs due to personal preferences.

PHPUnit3 unit testing framework is utilized for unit testing, and coupled with

PHPEclipse through a plug-in. CruiseControl and Phing may be used for continuous building / build process automation, respectively, if deemed helpful.

Zend CodeAnalyzer will be used for static analysis of generated code.

Selenium is utilized for front-end testing with the tests primarily generated with the

Selenium IDE plug-in to Mozilla Firefox.

TortoiseSVN is used as the SVN client for Windows.

Apache is the HTTP-server which the system runs on.

MySQL is the database management system that is used to implement parts of the

GUI. Version?

Eventum is PHP/MySQL based issue tracking system that the development team uses for general project management. It will also be used for time tracking and reporting.

Recent versions of the major browsers (IE, FF, Opera, possibly Safari) will be used for browser compatibility and visual testing. Set-top box setups provided by the customer will be used to ensure compatibility with those client environments.

OpenSTA or similar suites will be utilized in the later stages for stress testing.

10

5.4 Standards

There are no “must follow” standards defined for the development team.

6. Phasing

The iteration plans are created and maintained as separate documents by the project management. Mostly this is done by the project manager and the other SE experts provide him advice and consultation.

In the first iteration we will implement the core features of the system. After the first iteration we should at the least have a replacement for the currently used simplistic front-end system.

In later stages and in the second iteration the work will focus on adding optional functionalities and to perfecting usability and visuals.

6.1 PP Iteration

Deliverable

Project plan

PP Iteration plan

Requirements document

Progress report

Architectural design

Task

Assignee Time used

Ismo Lehmus & Juuso Jääskeläinen

5h / person

Ismo Lehmus 6h

Juuso Jääskeläinen

Ismo Lehmus

Antti Kaunisto & Joni Leiponen

5h

Assignee Allocated time

1h

3h

Implement web pages

Contact graphic designer candidates

Decide on used framework

Decide on coding convention

Design architecture

Review old code

Tapio Auvinen

Ismo Lehmus

Antti Kaunisto & Joni Leiponen

Antti Kaunisto & Joni Leiponen

Antti Kaunisto & Joni Leiponen

Antti Kaunisto & Joni Leiponen

Write architectural design documentation

Decide on what version control software to use

Antti Kaunisto & Joni Leiponen

Ismo Lehmus & Juuso

Jääskeläinen

Juuso Jääskeläinen

Define requirements for the product

Decide on issue tracking software Ismo Lehmus & Juuso

Jääskeläinen

Decide on time tracking software Ismo Lehmus & Juuso

Jääskeläinen

2h

2h

2h

2h

3h

1h

Included in meetings

3h

2h

2h

2h

2h

1h

2h

Used time

1h not done

1h

4h

2h

11

Decide on risk management practices

Ismo Lehmus & Juuso

Jääskeläinen

Install all necessary tools Antti Kaunisto

Decide on communication practices Ismo Lehmus

Decide on documentation practices Ismo Lehmus

Meetings with the client Ismo Lehmus & Juuso

Jääskeläinen & Antti Kaunisto &

Internal meetings

Joni Leiponen

All members

1h 1h

6h

1h

8h

1h

1h 1h

10h / person 10h / person

9h / person 9h / person

7. Risk log

Risk

Hardware problems

Server-client architecture

Description

Server breaking down, tools and code base lost

Shortage of human resources

People getting sick, other activities that take time

Customer unavailable

Customer’s contact person unavailable, for instance a business trip

Multiplayer and other player-toplayer functionalities can not be implemented in the client operating environments due to the strict serverclient architecture and limited support for techniques to circumvent that.

Avoidance

Keeping most important issues somewhere else also, keeping backup of the code base.

Constant development, information sharing

Active communication between the team and customer and planning the schedule of meetings.

The multiplayer functionalities will be simplified. Available techniques for circumventing the problem (auto-refreshing) will be used. Separate versions for environments supporting asynchronous scripting might be created.

Probability Impact

1

3

2

5

References:

PoEAA: Martin Fowler, Patterns of Enterprise Application Architecture 2002. Pattern catalogue available from: www.martinfowler.com

4

2

3

5

Download