Software project management plan

For PotatoChatProtocol, version 1.0 approved

Prepared by @JacopoWolf

Server Group:


Overview

purpose and scope

We are interested in implementing the server side of the PCP Minimal protocol specification.

The server application has the purpose of allowing the clients to chat between each other using the protocol.

The ideal target machine for this implementation should be servers, but due to the simple nature of the protocol target machines are going to be average PCs, with at least a multi core processor to handle parallelism.

Being a server, instead of an UI it uses a logging system, expandable to allow persistent logs.

goals and objectives

  • develop easy-to-use APIs for the PCP protocol
  • create a server with the following characteristics
  • functioning
  • easy-to-use
  • performant
  • light
  • working public chat
  • instruct the group about:
  • Git
  • GitHub
  • scrum
  • normal development workflow

project deliverables

Deliverable Date
Iteration plan 20/10/2019
packets - Min.a.1 14/11/2019
interpretation layer - Min.a.2 18/11/2019
core logic - Min.b.0 03/12/2019
final version - Min.1.0 12/12/2019
complete documentation 06/01/2019

constraints

  • project manager will be Maven

Schedule

budget

on paper, based on the average cost of the respective work position:

name role frequency hrs €/h cost [€]
@JacopoWolf project manager / junior developer 6 to 10 h/week * 8 weeks 64 60 3.840
@gfurri20 junior developer 5 to 9 h/week * 8 weeks 56 40 2.240
@Alessio789 junior developer 5 to 9 h/week * 8 weeks 56 40 2.240
8.320

success criteria

A working server.

definitions

term definition
Server the APIs used to instantiate a PCP server
"the protocol" the Potato Chat Protocol specification

Startup plan

team organization

Role Actors Responsability
Project manager Comparin Jacopo Call team meetings, coordinate communications within group, coordinate communications outside group, break out tasks, assign them to teammates
Developer Comparin Jacopo, Geremia Furri, Trentin Alessio Develop software based on requirement and architect specifications
Debugger " Fix reported errors in the code
Tester " Write test cases, perform unit testing of test cases against incremental release of code, perform integrated testing of test cases against incremental release of code, report issues

project comunications

Event Information Audience Format Frequency
Team meating Task status: completed since last meeting & planned for next; obstacles encountered; change requests in process All team members Informational meeting upon starting to work on the project in the same location As needed
Notifications A Telegram notificaion on the group specifically created All team members A telegram message as needed
End users doubts Informal meeting whith beta users to discuss bugs and code enhacements End users and team members Infomational meeting As needed

technical process

An iterative and incremental development process is planned. Feedback will be used from each iteration to improve the next. The first iteration will focus on basic functionality of the application. Subsequent iterations will build upon that and incorporate more features as time allows.

tools

  • Programming languages:
  • Markup
  • Java
  • JDK 1.8 (platform)
  • GitHub (VCS)
  • NetBeans (IDE)

Work plan

release plan

The release plan is in a specific document

Iteration plans

The iteration plan is in a specific document