Software Project Plan - ASKSG -
ASKSG
Name | Date | Reason For Changes | Version |
Christopher Wood | 12/4/12 | Stubbed out the document with the required sections | 0.1 |
Team Watchmen | 12/6/12 | Filled out the overview, deliverables, and risk management sections | 0.2 |
Christopher Wood | 12/8/12 | Filled in technical process, measurement and metrics, and project schedule sections | 0.3 |
Ian Hunt | 12/10/12 | Overview additions and revisions, including the goals and scope, risk table addition and sorting | 0.4 |
Team Watchmen | 12/11/12 | Features and Complexity Estimates | 0.5 |
Ian Hunt Christopher Wood | 12/13/12 | Technical Process, COCOMO estimates, Project Schedule | 1.0 |
Christopher Wood | 3/8/13 | Updated for the second quarter | 2.0 |
ASKSG seeks to give RIT Student Government (SG) a window into the topics affecting RIT students, show SG representatives what the student body is talking about, and help SG respond to student concerns quickly and effectively. To do this, ASKSG will automatically keep track of public conversations on social networks, analyze them for topics and sentiment, create reports and graphics for consumption by users, and allow users to respond to messages without leaving the application. Additionally, the interface will handle questions posed through private channels including email and SMS. The primary customer is the RIT Student Government, and the Director of Student Relations, Anthony Henning. The end-users will be the Director of Student Relations, SG Representatives, and the SG Advisors.
The system will run on a standard web application stack. Data will be stored in a MySQL database. The back-end will be written in Java, using Spring MVC and Hibernate, and will run on an Apache Tomcat server. The front-end will be written in HTML/CSS, and use JavaScript and jQuery. Spring is an enterprise grade application framework that has proven itself in the real world. Numerous features, ease of use, adaptability, and developer familiarity all influenced the decision to use the Spring application stack.
The project will be delivered in three stages. Stage 1, delivered in Week 6 of Winter Quarter (1/14/2013-1/20/2013), will contain a skeleton of the application, a public page for logging in and an introduction to the ASKSG project, basic user login and storage support, and support for direct communication. Stage 2, delivered in Week 4 of Spring Quarter (3/25/2013-3/31/2013), will improve the data model and provide support for: social network authentication, data aggregation from all supported social networks, publishing to social networks, and system administration. Finally, Stage 3, delivered in Week 8 of Spring Quarter (4/22/2013-4/28/2013), will add data exporting, analysis reports, social media analysis, and conversation detection.
Development will be done by Team Watchmen, with faculty advisor Ryan Schneider, and project champion Anthony Hennig.
The goals for ASKSG are defined in terms of what’s in and out of scope. Everything that is in scope will be treated as a long-term goal for the project, and vise versa. We further refine the scope by enumerating all of the high-level features we expect to deliver (and omit) in the following sections.
The deliverables for the project will be partitioned between those for the Software Engineering Department and the RIT Student Government. For the Software Engineering Department, we are required to deliver:
For the RIT Student Government, we are required to deliver:
Several risks to the project have been identified for this project. For brevity, we identify them in the following table.
Name | P [0,1] | I (days) | RE (P * I) | Mitigation |
HootSuite removes or requires payment for API access | 0.5 | 7 | 3.5 | Social networks will be accessed directly instead |
Project members unfamiliar with implementation technologies | 0.75 | 4 | 3 | Team will spend time outside of project time researching and learning tools/technologies |
Twilio costs exceed budget | 0.3 | 5 | 1.5 | Ask SG / Sponsor to commit to a projected budget for API use |
Insufficient production environment | 0.5 | 2 | 1 | Application stack will be deployed on a different dedicated environment |
Deadline crunch due to senior project required deliverables for winter quarter | 0.5 | 2 | 1 | Senior Project deliverables will be included on meeting agendas and in project schedule |
Need signed SSL certificate | 1 | 1 | 1 | Discuss options for acquiring certificate with sponsor and ITS |
Configuration on mac-mini, services that are running need additional configuration to work with the introduction of ASKSG | 0.3 | 3 | 0.9 | Research alternative options hosting ASKSG |
Insufficient time for Accessibility Testing & Support | 0.4 | 2 | 0.8 | Testing with sight accessibility devices (e.g. screen readers) will not be conducted if there is not time to do so |
SG finds user interface difficult to use | 0.2 | 4 | 0.8 | Usability testing |
Winter break interrupts development | 0.2 | 4 | 0.8 | Team will work when possible over break |
Chatterbox free API limit reached | 0.2 | 3 | 0.6 | Ask SG to commit to a minimal project budget |
Schedule slips due to Ian unavailability if team is already behind - planned time away | 0.1 | 4 | 0.4 | Schedule will assume decreased productivity during scheduled absence times |
Team members have configuration issues | 0.2 | 2 | 0.4 | Shared toolset minimizes risk. |
API availability issues | 0.1 | 2 | 0.2 | Fault tolerance, allowing data processing to complete if a data source is temporarily unavailable. |
API for targeted social media services becomes unavailable | 0.1 | 2 | 0.2 | Select the most stable social media service API providers |
API change management issues | 0.1 | 1 | 0.1 | Team will subscribe to any published feeds about API changes. Application will use single API (Hootsuite) to reduce risk of changing Twitter/ Facebook APIs |
Github project hosting is slow or unresponsive | 0.05 | 2 | 0.1 | Git local repos and emailable patches |
Based on the well-defined requirements provided upfront, we will be using the staged delivery process methodology. This will enable us to perform the same waterfall process activities upfront and deliver new versions of ASKSG to the stakeholders in smaller increments. A visual depiction of this process methodology is shown below in Figure 1.
Figure 1. A pictorial representation of the staged delivery process methodology
We will maintain the following internal artifacts throughout the course of the project (note that all artifacts are drawn from the waterfall process, since the staged delivery process is merely a slight variation of this methodology).
The Software Vision and Scope document will be a deliverable of the Software Concept phase. The Requirements Specification and Use Case Specification documents will be a deliverable of the requirements development phase. And finally, the Software Design Specification and Test Plan documents will be a deliverable of the architecture design phase. The Use Case Specification and Test Plan documents are expected to evolve as the final detailed design, construction, and release stages in the process lifecycle are completed.
To track our progress and maintain these artifacts, we will use the following tools:
At a high level, our project lifecycle can be partitioned into four separate stages: (1) concept, requirements, and design, (2) stage 1 construction, (3) stage 2 construction, and (4) stage 3 construction. In the first stage we will elicit the full set of requirements from the primary stakeholder and use them to design a software solution for ASKSG. All of the major internal artifacts will be developed during this stage and continually evolved throughout the course of the project as requirements churn and the development schedule inevitably changes. The goals of the remaining three stages can be itemized as follows:
Stage 2 Construction
Stage 3 Construction
Based on our technical process, we have partitioned the work for this project into six major sections: project vision, requirements gather, architecture specification and design, stage 1, stage 2, and stage 3. From these we have devised a project schedule and set of milestones to drive the project forward, and also designate the resources required to complete each milestone. In order to track our progress towards these milestones, weekly time sheets will be filled in and active tasks will be recorded on the appropriate spreadsheets. In the event that the project schedule needs to change, we will discuss the severity of the change as a group and then vote on the estimated schedule slippage. Then, these results will be relayed to the project sponsor and stakeholder.
Work Breakdown Structure
Estimation techniques
To determine our schedule we needed to have some estimate about the size of the system and effort required to implement it. To do this, we assigned complexity levels to each major feature based on our experience in implementing similar functionality in other software systems. From here we computed an aggregate number of points represented by the project. From this function point total we computed the physical size of the software (in terms of LOC) using the rough estimate that one function point is equal to approximately 300 Lines of Code (LOC). This LOC estimate was again based on our prior implementation experience. Then, using the COCOMO model, we determine the required effort needed by the developers to develop this product. Each step in this estimation process is outlined below.
Feature | Program Characteristic | Complexity |
User Authentication (LDAP/Shibboleth) | Inquiry | High |
User Authorization | Inquiry | Low |
Display non-persisted direct communication | Output | Medium |
SMS data from Twilio is pushed into the UI | Input | Medium |
Connect to supported social media sites and pull messages | Input | High (Oauth impl) |
Permanently delete a message | Inquiry | Low |
Display list of conversations | Output | Low |
Synchronize conversations between local db and internet | Inquiry | Medium |
View correspondence history | Output | Medium |
Publish Email Response | Output | Medium |
Publish message to social network | Output | High |
Website layout/design | Output | High |
Publicly accessible website | Output | Low |
Export Excel formatted data | Output | Medium |
Produce analysis reports | Output | High |
Tag Messages | Input | Medium |
Produce non-technical report of popular issues | Output | High |
Send reports via email | Output | Low |
Generate the word cloud | Output | Low |
Object Relational Mapping to Database | Logical Internal Files | Medium |
Program Characteristic | Low Complexity | Medium Complexity | High Complexity | Total Complexity |
Input | 0 x 3 = 0 | 2 x 4 = 8 | 1 x 6 = 6 | 14 |
Output | 4 x 3 = 12 | 4 x 4 = 16 | 4 x 6 = 24 | 52 |
Inquiry | 2 x 3 = 6 | 1 x 4 = 4 | 1 x 6 = 6 | 16 |
Logical internal files | 0 x 3 = 0 | 1 x 4 = 4 | 0 x 6 = 0 | 4 |
Total | 86 |
With this function point total we use the estimate of 300 LOC for every function point, and calculate the total LOC as follows.
LOC / Function Point | 300 |
Function Points | 86 |
Total LOC Estimate | 25800 |
For an organic software project, the COCOMO model parameters are and
However, given our team’s abilities, we felt it best to adjust these parameters such that
and
and we calculated the total amount of effort as follows.
[man-months]
Given the time frame for this project, this estimate makes the project infeasible. However, COCOMO is an estimation model intended to provide a rough guideline for developer schedules. There are a number of variables that can skew estimate numbers from incorrectly enumerating features and their complexities to the Lines of Code to function point number we chose (300). Additionally, this project involves fewer people with a far shorter schedule than the average project COCOMO is generally applied to. A four person project developed outside of corporate overhead involves less communication channels and formalities normally associated with development. While the model suggests that our scope is ambitious, given our experience with similar applications, delivering a product with requested functionality is feasible.
Project schedule
Milestone | Completion Date | Deliverables Produced | Required Resources |
1 | Friday 12/14/12 Week 3 | Vision and Scope document and Project Plan (this document) | None |
2 | Sunday 12/23/12 Week 4 | Requirements Specification document | None |
3 | Sunday 12/23/12 Week 4 | Use Case Specification document | None |
4 | 1/13/13 Week 5 | Software Design Specification document | None |
5 | 1/13/13 Week 5 | Test Plan document | None |
6 | Sunday 1/29/13 Week 7 | Stage 1 functionality | Production environment and hardware |
7 | Spring Quarter - Week 2 | Stage 2 functionality | Production environment and hardware |
8 | Spring Quarter - Week 8 | Stage 3 functionality | Production environment and hardware |
Throughout the course of this project we will be collecting a variety of process and development measurements in order to quantitatively evaluate the team’s progress on the ASKSG project. For brevity, we list these measurements and the corresponding metrics that will be derived below.