Software Project Plan
Software Project Plan
Software Project Plan
2.0
Team Name:
A New Hope
Team Members:
Andrew Voszatka
Josh Major
John Battaglia
Kenny Urena
1.0 Introduction
1.1 Project Scope
Description of Software
Console Based Bidding/Selling program
Inputs
Login/Password of sellers/bidders
Item information including: Title, starting bid, description, and ending date
Item to be searched
Feedback comments (additional functionality)
Feedback score (additional functionality)
Outputs
Total amount in sales
number of items
total items unsold
total amount of money spent by a bidder
number of items purchased by bidder
items bidder bids on that are in progress with totals-number in-progress, number winning,
$ amount of winning items
Processing Functionality
Input of login/password by user and/or seller
Authentication/Validity is checked
Once authenticated sellers can post items that they want to sell
Items will be put in alphabetical order so it's easier for bidder to find what they are
looking for
Bidders can bid on available items based on money available and how much they are
willing to spend on an item
At the end of the time period given, the person who would spend the most will win the
item
A collection of operations will take place after each auction. Such as declaring the
winner, updating items sold, dollars spent, and search list
Set Items details upon bidding: title, description, starting price, ending date
Be able to view history: total dollar amount sold, total unsold, items with no bids
Bidder:
View bid history and details: total dollars spent and number of items, and dollar amount
of winning items
View items they bid on that are in progress with totals: number in-progress and number
winning
Aministration:
Searching mechanism for items (based on keywords for words in the title or
description)
Charge winning bidder accurate price and add amount to sellers totals
Our team members are all full-time college students, and thus have limited time to work
on the project.
Knowledge Constraints:
The following table shows what programming languages each team member has
knowledge of. "Highly Skilled" means the team member is very familiar with the
language, "Known" means the team member has some familiarity with the language,
"Pending" means the team member is currently learning the language, and "None" means
the team member has no significant knowledge of how to use the language.
Team Member
Knowledge
Andrew
John
Kenny
Josh
C++
Highly Skilled
Highly Skilled
Highly Skilled
Highly Skilled
Assembly (68K)
Known
Known
None
Known
PHP
None
Known
None
Known
VB.NET
None
Known
None
Known
None
Known
None
Known
HTML/CSS
None
Known
None
Known
Drupal
None
Known
None
None
Known
None
Known
Java
None
None
Known
None
SQL
Pending
None
Pending
None
C#
None
None
Pending
None
Any languages not listed are unknown to any of the team members. Thus, the project
must be conducted entirely using the above languages, unless we wish to invest a large
amount of extra time learning new languages.
If team wishs to use database languages in the project, we will have to wait until Kenny
and Andrew get far enough in their Database class this semester to have learned it.
None of the team members are aware of how to create a single application using multiple
programming languages.
Financial Constraints:
Our team members are all of limited means financially, and as we are already paying
thousands of dollars for the class alone, we are unlikely to be able to afford spending any
money on the project.
Given the above factors, our budget for this project, not including transportation
expenses, is limited to $0.
Technical Constraints:
Team's program must be capable of running on the professor's computer through an easy
step-by-step process.
The program must be able to run quickly enough so that it's user-friendly.
There is no upper bound given for how much activity the auction system will be
handling, so the program must be capable of running properly even for extremely large
numbers of users and transactions.
The program is designed to be used by ordinary people, so its interface must be easily
usable even by someone with no programming background.
Group Member
Responsible
1.1
1.2
1.4
2.1
2.3
3.1
3.2
3.3
4.1
4.2
Josh
John
Andrew
Kenny
Kenny
Andrew
Andrew
John
Josh
John
4.3
4.4
5.1
5.2
6.1
6.2
Time Spent in Meetings Estimate:
Andrew
Andrew
Kenny
Kenny
Josh
John
3
1
2
1
2
1
10
6
1
40
1
3
1
Seller:
Post Item to sell with title/description/ Starting Price/End date
Design
Implementation
Testing
1
15
5
0.5
3
1
1
10
3
2
8
5
Search Function:
Design
Implementation
Testing
1
3
2
1
2
1
0.5
2
2
Bid Payment/Result
-price is second high bid + 10%, charged to winning seller
after time is over
-If no bids, bid ends status changes to completed and no transaction
take place
Design
Implementation
Testing
Keywords in title and description For Search
1
4
2
Design
Implementation
Testing
1
3
2
20
144
ADDITIONAL FUNCTIONALITY
Kennys Additional Functionality
Allow user to change password
Design
Implementation
Testing
0 .5
3
1
If a field has data entered and the user tries to quit then display: are you sure you want to
exit? [name] has data entered into it and will not be saved
Design
Implementation
Testing
0 .5
1
2
1
4
2
16
Design
Implementation
Testing
0.5
2
2
Seller can edit the starting price or end date of an in-progress item they listed for sale, if nobody
has thus far bid on it.
Design
Implementation
Testing
1
3
2
Seller can cancel their listing of an in-progress item if nobody has thus far bid on it.
Design
Implementation
Testing
1
3
2
Bidder notification when the end date of an item they bid on has been reached.
- The notification should tell the bidder the item, if their bid was successful or not, and
the final sale price was.
Design
1
Implementation
4
Testing
3
1
2
1
Design
Implementation
Testing
0.5
1
0.5
1
4
1
Message Boards
Design
Implementation
Testing
Add comments to a user member
Design
Implementation
Testing
1
3
2
0.5
3
2
0.5
2
1
0.5
2
1
Design
Implementation
Testing
1
2
1
0.5
2
1
Calculate the average of the ratings to see an overall rating for each seller
Design
Implementation
Testing
1
3
2
0
1
0.5
Joshs Total: 15
89
Hours
40
Base Functionality
Additional Functionality
Project 2 Completion, Revisions, and Preparations
Group Meetings
151
87
212
35
Total
525
Required Staff
o
Project Manger-John
Business Analyst-John
Software Architect-Kenny
Designer-Andrew
Software Developer-Andrew
Software Tester-Josh
Required Software
o
Microsoft Windows OS
Dropbox
Skype
Google Docs
DirectX 9-capable video card running at 1024 x 768 or higher display resolution
Loss of Team Member: If a team member were to drop the class, or worse, die.
Personal Data Loss: If a team member's computer or other memory storage device
crashed, causing their work done thus far to be lost.
Online Data Loss: Data we have stored online might be lost, perhaps due to unforeseen
technical difficulties on the part of the website.
Online Data Unavailability: Data we have stored online may be made temporarily
unavailable at an important time, perhaps due to scheduled maintenance on the part of the
website.
Irresponsible Team Member: If a team member were to become irresponsible and refuse
to do the work assigned to them.
Procrastinating Team Member: If a team member were to refuse to do work until the
absolute last minute.
Poor Estimates: If we underestimate the amount of time a project task will take, and thus
have less time for later tasks.
Changed Requirements: Our customer, the professor, may clarify the assignment, or give
us other instructions that require us to revise our project's technical requirements.
Language Learning Difficulty: One or more of our team members may have difficulty
adjusting to the programming language of choice and thus be incompetent in their coding,
or outright be unavailable to code until they've learned it.
Unable to Meet: School closings or unexpected schedule conflicts might interfere with
team meetings.
Coding Errors: Even once the code is apparently complete, there might be countless
errors that take hours to debug, some of which may even require us to revise our
documentation.
Personal Conflict: If a personal conflict between two or more team members occurred,
which might prove disruptive to the group and hurt our progress.
Compiler Incompatibilities: If using different compilers caused code written by one team
member on their compiler to not work for the other team member on their differing
compiler.
Time Runs Out: If it looks like we will be unable to meet the project deadline.
Probability
Impact
RM3 Pointer
Critical
Mitigation #1,
Monitoring #3,
Monitoring
#6,Management #2
Indisposed Team
Member
Low
High
Mitigation #1,
Monitoring #1,
Monitoring #5,
Monitoring #6,
Management #2
Medium
High
Mitigation #1,
Monitoring #6
Low
Medium
Mitigation #3,
Monitoring #6
Online Data
Unavailability
Low
Irresponsible Team
Member
Low
Medium
Mitigation #3,
Monitoring #6
Critical
Mitigation #1,
Monitoring #5,
Monitoring #6,
Management #2
Procrastinating Team
Member
High
Medium
Monitoring #5,
Monitoring #6,
Management #8
Conflicting
Responsibilities
High
High
Mitigation #8,
Monitoring #2,
Monitoring #6,
Management #2
Poor Estimates
High
Medium
Mitigation #2,
Monitoring #1,
Monitoring #6,
Management #1
High
Mitigation #4,
Monitoring #1,
Monitoring #6,
Management #4
Changed
Requirements
Low
Language Learning
Difficulty
Low
High
Monitoring #6,
Management #3
High
Mitigation #2,
Mitigation #4,
Mitigation #9,
Monitoring #1,
Monitoring #6,
Management #1
Unable to Meet
Medium
Medium
Monitoring #4,
Monitoring #5,
Monitoring #6,
Management #5,
Management #6
Coding Errors
High
High
Mitigation #9,
Monitoring #6,
Management #3
Debugging Difficulties High
High
Mitigation #9,
Monitoring #1,
Monitoring #5,
Monitoring #6,
Management #1,
Management #3
Additional
Functionality
Problems
Medium
Code Merging
Difficulties
High
Low
Monitoring #1,
Monitoring #5,
Monitoring #6
Medium
Mitigation #6,
Mitigation #9,
Monitoring #5,
Monitoring #6,
Management #1
Personal Conflict
Low
High
Monitoring #6
Electronic Sabotage
Low
Varies depending on
severity; potentially
critical.
Mitigation #1,
Mitigation #3,
Mitigation #5,
Monitoring #6,
Management #2
Compiler
Incompatibilities
Low
Medium
Low
Mitigation #7,
Monitoring #6
Critical
Mitigation #2,
Mitigation #9,
Monitoring #1,
Monitoring #5,
Monitoring #6,
Management #1
Management #2,
Management #7
6. The team should briefly discuss all the project risks, and possible new risks, at least once
per meeting.
Management
1. In the event that a team member is unable to complete a task on their own or takes too
long, team leader should assign another team member to assist them. The two team
members should then meet in person to overcome the hurdle.
2. In the event that a team member is unable or unwilling to do a job, the team leader should
assign another team member to perform the task. If the team member is being
irresponsible, the team leader and the rest of the team should threaten the team member
with negative evaluations.
3. If it becomes necessary to make large revisions of earlier documentation to the point that
it distracts from other project tasks - have one person put in charge of revising all the
earlier documentation as necessary, with the other team members just telling that person
what they changed, so that the rest of the team can focus on the current portion of the
project instead of spending all their time revising the documentation over and over again.
The team leader should OK the final revision for each part of the project. The least adept
coder should preferably be assigned this task.
4. In the event that we have to change programming languages, we should decide at a
meeting whether it would be better to reduce the project scope before we go to the trouble
of starting over with another language, and the team should pick a new language that at
least three people in the group already know, as we are unlikely to have time to learn a
new language.
5. In the event that the group is unable to meet in person, we should hold a group meeting
over Skype.
6. In the event that a member can't make it to a meeting, the team leader should send them
an e-mail summarizing the decisions and results of the meeting.
7. In the event that it looks like we literally cannot meet the deadline for the project, we
should reduce the project scope and just try to have some partially functional program to
turn in.
8. If a team member appears to be procrastinating, the team leader should politely but
incessantly remind them to start their task soon.
Process Model
1. Model: Waterfall Model
Tasks to be accomplished
Items to sell
Details about item: Title, Description, Starting price, ending date, total dollar amount,
total unsold, items with no bids
Number of items
Number in-progress
Number winning
Searching mechanism
During an in-progress auction, the bidder can place a bid on that items that must be
higher than the current price shown which is starting price if no bids, bid price if one bid
or second high bid + 10% if multiple bids (bid price if bid price is less than second high +
10%)
Seller
o
Title
Description
Starting Price
Ending Date
List of items
Sold
In-progress
Or both
$ amount of sales
Number of items
No bids (in-progress)
Bidder
o
List of items
Total $ spent(completed)
List of totals
Bid price if one bid or second high bid + 10% if multiple bids (bid price if
bid price IS LESS than second bid + 10%).
Administration
o
Search by
Category
Additional Functionality:
Seller
o
Which item
Bidder
o
Notify seller when end date of an item listed for sale has been reached
Notify bidder when end date of an item they bid on has been reached
Which item
Administration
o
If a field has data entered and the user tries to quit then display: are you sure you
want to exit? [name] has data entered into it and will not be saved
Calculate average of the ratings to sees an overall rating for each seller
Set a limit of user name size between 6-15 with only letters and numbers, first
character must be a letter.
Task
Duration
Predecessors
Meeting 1
.5 hours
1 hour
3.75 Hours
Meeting 2
1.5 Hours
4 hours
2.5 Hours
Meeting 3
1.5 Hours
3,4
4 Hours
3 Hours
10
3 Hours
11
Meeting 4
1.5 Hours
5,6,7
12
.5 Hours
11
13
Meeting 5
4 Hours
8,9,10,11,12
14
6 Hours
13
15
1 Hour
11
16
15 minutes
14,15
17
36 Hours
18
Other Meetings
20 Hours
16
19
Project Part 2
200 Hours
16
20
Revisions of Project 1
6 Hours
19
21
5 Hours
17,19
22
39.5 Hours
17,19
23
15 Hours
17,19
24
12 Hours
17,19
25
16 Hours
17,19
26
89 Hours
17,19
27
12 Hours
21,22,23,24,25,26,27
28
1 Hour
20
Final Presentation
15 minutes
28
and Manager. His responsibilities include ensuring deadlines are met, issues are resolved swiftly,
and that everyone understands what their assignments are.
The project will be divided into database and forms for design. Kenny and Andrew are in a
database class and are better suited to design and implement the tables and queries that will be
required. John and Josh have a background working with form based applications (VB.NET) and
would be better suited to designing how the forms will look, integrate query result data, and
function
The entire team will serve as software developers and testers when writing their own code. Their
responsibility is to ensure the code segment has sufficient comments and delivers on its required
functionality without enormous mistakes or bugs.
Software Testing
Control of Change
Measurement
Record Keeping
Reporting
It's good if you know how to code, but if the planning is bad and you don't understand
what the correct problem is, you will end up with the wrong results
The analyst plays an important role in this. He/She should know how to:
Partitioning
o
Breaking down the problem to smaller pieces will make the problem easier,
because doing small increments won't be as complex
Reviews might include error detection, inspection, a walk through, and other assessments
Doing this is a good learning tool for those who are not that familiar with planning and
design
Usually during meetings, updates are brought up. Members show their assigned
completed tasks
If a meeting is too long, time will be wasted that could be used to work
When a meeting's about to close, and if decisions are made about a project, attendants of
that meeting sign off to indicate that they agree to it and are responsible
If participants don't accomplish what needs to be accomplished, they are then held
responsible
Software Testing
A product isn't deliverable if it doesn't do what you want it to do 100% of the time
The college way: When you compile a program, put in values that you know
should work to make sure you get the right result
The business way: Break it! Purposely try and come up with solutions that should
fail. Then you can work from there to fix the errors so eventually you can't
purposely break the program
More than just when the software is completed. It should start early in the project
Control of Change
There will certainly be change some time during a project. Things will come up that are
unavoidable.
If a change is to occur, there will probably be a cost whether it's time, money, or both
Measurement
perfect
Characterization:
Evaluation:
Prediction:
Improvement:
Meas
urem
ents
are
never
Record Keeping
Everything from diagrams, to outlines, to code, changes, and other elements need to be
written down to document what has been done, and what needs to be done.
When members of a group are assigned tasks, they are recorded so they know what they
are responsible for and are held accountable for those tasks
Report
A report is generated from the information that is gathered from the meetings
Conclusions?
Introduction
The Change Management Plan was created for the CIS375: On-Line Auction System (OAS)
team, A New Hope, in order to set expectations on how the approach to changes will be
managed, what defines a change, the purpose and role of the change control board, and the
overall change management process. All stakeholders will be expected to submit or request
changes to the OAS Project in accordance with this Change Management Plan and all requests
and submissions will follow the process detailed herein.
The Change Management process has been designed to make sure this approach is followed for
all changes. By using this approach methodology, the OAS project team will prevent
unnecessary change from occurring and focus its resources only on beneficial changes within the
project scope.
Definitions of Change
There are several types of changes which may be requested and considered for the OAS project.
Depending on the extent and type of proposed changes, changes to the project documentation
and the communication of these changes will be required to include any approved changes into
the project plan and ensure all stakeholders are notified. Types of changes include:
Scheduling Changes: changes which will impact the approved project schedule. These
changes may require fast tracking, crashing, or re-baselining the schedule depending on
the significance of the impact.
Scope Changes: changes which are necessary and impact the projects scope which may
be the result of unforeseen requirements which were not initially planned for. These
changes may also impact the schedule. These changes may require revision to project
scope statement, and other project documentation as necessary.
The project manager must ensure that any approved changes are communicated to the project
stakeholders. Additionally, as changes are approved, the project manager must ensure that the
changes are captured in the project documentation where necessary. These document updates
must then be communicated to the project team and stakeholders as well.
Name
Position
CCB Role
J. Battaglia
Project Sponsor
CCB Chair
A. Voszatka
Project Manager
CCB Member
J. Major
CCB Member
K. Urena
CCB Member
As change requests are submitted to the OAS Project Manager by the project team/stakeholders,
the Project Manager will log the requests in the change log and the CCB will convene every
Thursday to review all change requests. For a change request to be approved, all CCB members
must vote in favor. In the event more information is needed for a particular change request, the
request will be deferred and sent back to the requestor for more information or clarification. If a
change is deemed critical, an ad hoc CCB meeting can be called in order to review the change
prior to the next scheduled weekly CCB meeting.
Project Manager:
Conduct preliminary risk, cost, schedule, scope analysis of change prior to CCB
Participate on CCB
Project Team/Stakeholders:
The Change Control Process for the OAS Project will follow the organizational standard change
process for all projects. The project manager has overall responsibility for executing the change
management process for each change request.
1. Identify the need for a change (Stakeholders) Change requester will submit a completed
change request form to the project manager.
2. Log change in the change request register (Project Manager) The project manager will
keep a log of all submitted change requests throughout the projects lifecycle.
3. Evaluate the change (Project Manager, Team, Requester) The project manager will
conduct a preliminary analysis on the impact of the change to risk, cost, schedule, and
scope and seek clarification from team members and the change requester.
4. Submit change request to CCB (Project Manager) The project manager will submit the
change request, as well as the preliminary analysis, to the CCB for review.
5. Obtain Decision on change request (CCB) The CCB will discuss the proposed change
and decide whether or not it will be approved based on all submitted information.
6. Implement change (Project Manager) If a change is approved by the CCB, the project
manager will update and re-baseline project documentation as necessary.
Sponsor Acceptance
Date:
7.0 Appendix
Customer Requirements: