The purpose of this document is to specify the requirements of the Project Management and Planning Tool application. This is the software being developed to aid product development. A project is an iterative process of designing and developing a product. Project includes all different versions of the product in focus.
Project Management and Planning Tool is a network based application and will be used to plan, organize and manage resources and develop resource estimation in a product development environment. The software will be developed on the Macintosh platform as a network based Mac OS X bundled application. The scope of this document is to provide a brief description of the functionalities and specifications of the project and hence the system to ensure delivering the best services for its users.
- Project: A project is an iterative process of designing and developing a product. Project includes all different versions of the product in focus.
- Version (Product Version): A Version is a product or product update releasable to market (e.g.: Apple’s App Store).
- Sprint: A Sprint is a unit of development process that results in a release quality build. Sprint start date and end dates are fixed.
- ToDo (or Task): Sprint requirements are divided into a list of ToDos. Each ToDo could have assigned people, estimated effort, actual effort taken (duration in person-hours, should be editable), comments and status (new, open, done, reopened, closed).ToDo duration should be modifiable (eg: extending, reducing). Some ToDos might be dropped to adhere to the fixed sprint schedule.
- Milestone: Milestone is completion of a sprint or an important achievement with regards to the product.
- Discussion: Discussion is a way to query or communicate with multiple users. It can have a title, description and a set of comments. Discussion could be with respect to a sprint or it could be an open discussion among a set of people i.e., across projects.
- Cocoa: Set of object-oriented frameworks that allow for the most rapid development of application on Mac OS X.
- Objective-C: Default programming language for Cocoa application development. It is based upon C, with a few additions that make it a simple, feature rich object-oriented language.
- Xcode: Apple’s Integrated Development Environment for developing software for Mac OS X and iOS platform.
- Interface Builder: Apple’s graphical editor for designing user interface components for Cocoa applications.
- Software:
- Operating System : Mac OS X Snow Leopard, v10.6.8
- Database Management System : PostgreSQL / PosgreSQL, v9.22
- Others : Cocoa Framework
Project Modules
- LOGIN
This is the first screen to be displayed when the application is launched. The user should enter his/her login credentials which should then be verified by the application. The authenticated users should be redirected to the next interface of the application. The login screen should also provide the user with an option to save his/her login credentials
- PROJECTS
- Adding a Project
Administrator should be able to add new projects and/or versions within a project. An information button should be provided for each project and the versions which can be clicked to view the information of the project and versions respectively. Administrator should be able to archive a project at any time. This control should be available only to Administrator. It should take in details such as project name, description, start date and task creators.
- Archiving a Project
Archiving a project will make the project invisible to all users except for Administrator. Administrator can restore this archived project at a later time. Once restored the project would be visible to the users.
- SPRINT
Every Version of a Project could have multiple sprints. Hence, it should be possible to select a particular sprint in which the user wishes to work with. Administrator should be able to view any of the sprints and should also be able to add new sprints for the current project version.
- Adding a sprint
Adding a sprint should take in details such as title, description, priority, start date, end date and task creator.
- Editing a sprint
This option should be available only to Administrator. Editing a sprint shall allow Administrator to change sprint title, description, priority, status, start date and end dates of the selected sprint.
- Viewing sprint information
The sprint information shall contain the sprint title, description, status, priority, start and end dates. Possible status of a sprint are- Planned, Active, Done, On Hold and Archived.
- ToDos
The ToDos page should display all ToDos specific to the currently selected sprint. Each ToDo in the list shows the current status of ToDo, the users should be allowed to change the status of the ToDo. The other details to be presented are ToDo title, the priority and the assignee name. It should be possible to sort the ToDos based on assignee, priority or date. Filtering should be possible based on assignee name or priority.
Selecting a ToDo should present the user with the detailed description. This description shall show all the information pertaining to the respective todo. Administrator and TaskCreator shall have an edit button which will allow Administrator and TaskCreators to modify all ToDo details (including- assignee, priority, estimated effort, start date). Administrator shall also be provided with buttons to delete the ToDo and to move the ToDo (i.e, remove it from the current sprint, but shall be available in ToDo Pool). All the users should be allowed to view ToDo details, to change the status of ToDos, to alter actual effort field and to post comments on the ToDo.
- Adding a ToDo
Administrator or TaskCreators should be able to add a new ToDo. While adding a new ToDo the fields that should be made available are Description, Priority, Estimated effort, Start Date and Assignee.
- DISCUSSIONS
All discussions specific to the particular sprint should be enlisted. The discussion list should include Description Title, Posted By and Posted Date. Users should be able to post comments in a discussion and view comments posted by other users. It should also be possible to add a discussion. The fields to be made available while adding a discussion are Title and Description.
- MILESTONES
Milestones area shall enlist all the milestones that have been added for the particular project. Milestone title along with the due date and the number of days remaining shall be visible. Users can also view milestone details (includes milestone description) and can view or post comments on the milestone. It should be able to add and edit a milestone.
- TODO POOL
ToDo Pool should enlist all the ToDos of the particular project. This list will be similar to the ToDo list available within a sprint except that the ToDos in the ToDo pool can be moved to a particular sprint within a Project.
- CALENDAR VIEW
Calendar view shall display a basic calendar. On selecting a particular date from the calendar all ToDos (that are started) and Milestones (that are pending) on that day shall be displayed.
- MANAGE USERS
Administrator should be able to add, delete or edit user details. For this purpose a Manage Users interface should be provided to Administrator. In this interface Administrator can also view the details of all users currently present in the database.
- OPEN DISCUSSIONS
Provision for Open Discussion shall be provided by a separate Open Discussion window. This window is similar to the sprint discussion window except that this discussion window will be used for discussions which are not specific to a particular sprint or project, rather it includes those discussions that are across projects.