Purpose
This document describes a new web application for users to play a game of checkers. This document was created by a consultant for the WebCheckers startup and is non-negotiable.
Executive Summary
The application must allow players to play checkers with other players who are currently signed-in. The game user interface (UI) will support a game experience using drag-and-drop browser capabilities for making moves.
Beyond this minimal set of features, we have grand vision for how we could further enhance the player experience with some additional features beyond the basic checkers game.
Product Features
MVP Features
The Product Owner desires a minimal viable product (MVP) which includes these features:
- Every player must sign-in before playing a game, and be able to sign-out when finished playing.
- Two players must be able to play a game of checkers based upon the American rules.
- Either player of a game may choose to resign, at any point, which ends the game.
NOTE: The Product Owner reserves full control over the details of operation for MVP. This Vision Document includes no details of basic MVP game play. It is the responsibility of the team to collaborate with the Product Owner to obtain an understanding of those details. The team does not have the prerogative to define the details of operation or user interface experience.
Any time that the team asks itself the question, "How should X operate?" where X is some aspect of game play, the team itself can not answer that question and must ask the Product Owner. The best place to do that is in the Questions for the Product Owner discussion forum under Projects in the myCourses Discussion area.
Possible Enhancements
The Product Owner is also very interested in enhancing the basic WebCheckers product by including up to two of the following enhancement features. The Product Owner only has interests in the enhancements listed below, but is willing to entertain the possibility of other enhancements suggested by the team. The team must select up to two enhancements, either standard or new suggestions, that it will consider adding to the MVP and have the Product Owner accept them during requirements elicitation, i.e. the Inception Phase - Sprint 0. This will then constitute the project agreement between the team and the Product Owner.
The enhancements of interest to the Product Owner in no order of preference are:
- Spectator Mode: Other players may view an on-going game that they are not playing.
- Replay Mode: Games can be stored and then reviewed at a later date.
- AI Player: Players may play a game against the server.
- Multiple Games: A player may play more than one game at a time.
- Asynchronous Play: Players can play asynchronously.
- Player Help: Extend the Game View to support the ability to request help.
- Tournament Play: Players can enter into checkers tournaments including player statistics.
NOTE: The Product Owner reserves full control over the details of operation for any enhancements that the team will implement. This Vision Document includes no details of how these seven enhancements should work. It is the responsibility of the team to collaborate with the Product Owner to obtain an understanding of those details. The team does not have the prerogative to define the details of how an enhancement work whether it be a standard enhancement or one suggested by the team.
The team must elicit these operational details from the Product Owner. The Product Owner's vision for some enhancements may be easier than the team thinks, while for others there are numerous details that the team needs to learn to correctly implement an enhancement.
Architecture
The WebCheckers webapp will use a Java-based web server. The team will use the Spark web micro framework and the FreeMarker template engine to handle HTTP requests and generate HTML responses. The team has access to the standard Java v8 libraries and language features. The team may also include additional, third party libraries with approval from the Product Owner.
Note about Data Persistence
To limit the scope of project work, there is no requirement or need to persist data across web application shutdown and start-up. When the web application shuts down, it is acceptable for all data to be lost. If a team decides to persist data to aid with testing, demonstration, etc., there will not be any extra credit for that work, so it is strongly recommended that you use the simplest method possible to implement that data persistence.
Process
The team will use the OpenUP methodology for strategic planning activities across the life span of the project. The team will use the Scrum process for tactical day-to-day operations.