About Manage 2000:
Manage 2000 is a software development firm at the
forefront of the extension and expansion of Microsoft Project capabilities.
Manage 2000 is operated in Norfolk Virginia and is a
small business comprised of a dedicated workforce.
For more information about Manage 2000 and its
ongoing projects, please see the contact information provided within the
document.
Contact information 1
Historical Perspective 3
Technical Overview and Scheduling Information 9
Additional Budget Information 37
Costs Justification 39
Additional Schedule information 40
Contact Information:
Manage 2000 CPI
Project
Education Building
Room 248
Old Dominion
University
Hampton Boulevard
Norfolk, Virginia
23529
Thomas J. Thompson
Project Manager
Old Dominion
University
Education Building
Room 248
Hampton Boulevard
Norfolk,
Virginia 23529
Phone: (757)
683-3915
Email: tjt@cs.odu.edu
Stephen D Watkins
Project Planner
Old Dominion
University
Education Building
Room 248
Hampton Boulevard
Norfolk, Virginia
23529
Phone: (757)
683-3915
Email: watkins@cs.odu.edu
Beverly Moore Black
Financial Analyst
Old Dominion
University
Education Building
Room 248
Hampton Boulevard
Norfolk, Virginia
23529
Phone: (757)
683-3915
Email: black@cs.odu.edu
S. Angelika
Heidelberger
Historical Analyst
Old Dominion
University
Education Building Room
248
Hampton Boulevard
Norfolk, Virginia
23529
Phone: (757)
683-3915
Email: heidelbe@cs.odu.edu
Ann Jennifer-Ang
Pintar
Risk Management
Analyst
Old Dominion
University
Education Building
Room 248
Hampton Boulevard
Norfolk, Virginia
23529
Phone: (757) 683-3915
Email: pintar@cs.odu.edu
This proposal has been submitted under the authority
of the Manage 2000 group by: Thomas J Thompson on the Date of November
15, 1999. This document obligates
the Mange 2000 group to the offer contain herein.* Additional terms may be agreed upon during the time of the
acceptance of the proposal. The terms
of this proposal are void after ninety (90) days of the submission date.
* This is a mock
proposal and is not a legal contract of any kind.
Historical Perspective
In today’s world of increasing technology, an overwhelming majority of organizations recognize the benefits of software solutions for managing resources. Therefore, various categories of management software have become common place in the workforce. These applications organize projects and provide functional information to project leaders and management. To make available these details, software of this nature uses a resource-based approach to perform its actions. For this reason, these applications treat staff members strictly as a resource. In other words, staff assigned to a project are considered in the same manner one may regard a workstation.
Upon
completion of a vigorous study of available applications, results show that
existing management software lacks sophisticated staff assignment and
administration. For example, no
obtainable applications offer any ability to locate one or more employees who
may possess particular qualifications required by an individual role in a
specific project. Although businesses
which maintain a relatively small number of employees may not necessitate such
sophisticated software, organizations which sustain a sizeable employee base
stand to benefit significantly. Project
managers spend valuable time, as well as a generous amount of effort,
struggling to identify the most qualified individual for a given task. One must consider several focal points, such
as availability, educational background, and experience within the company
while selecting project staff. Moreover,
in cases where organizations have increasing staff and project volume, project
managers must dedicate exuberant amounts of time probing through individual’s
records to recognize appropriate team members.
In
order for organizations to capitalize on project manager performance, an
effective solution, which administers staff in the aforementioned manner must
be utilized. Automating the process of
staff selection, or simply producing a software package that possess ability to
recommend staff placement, has the potential to allocate project leaders
additional time to concentrate on other assignment related issues. Furthermore, appropriate staff appointments
increase overall efficiency within an organization by exploiting employee
assets.
Manage 2000 Product Overview
Manage 2000 extends the capabilities of Microsoft Project, the world’s leading project management software.
In this way, Manage 2000 will automatically update employee records so that the most accurate information about the employee can be stored and retrieved for later use.
The information Manage 2000 will track is stored within an external database (MS SQL server) that provides proven security measures and stability assurance as well.
Manage
2000 is designed to provide project managers with an effective, efficient way
to address problems regarding staff placement.
In order to achieve this solution, Manage 2000 intelligently surveys
individual employee traits, provides staff recommendations based on project
position requirements, and dynamically updates database information as
personnel complete tasks. Additionally,
Manage 2000 opens a more effective channel of communication with upper-level
management. For instance, project
leaders are obligated to routinely report project progress and or complications
to upper-level management. While it is
necessary for a project leader to have a good understanding of the various
details regarding project staff, upper-level management usually maintain a less
significant role with respect to specific project information. To help bridge this information gap between
project level staff and higher management, Manage 2000’s structure permits
information about a specific project to quickly be retrieved and relayed to
upper management. Manage 2000 executes this
by storing information about positions available within a project with regard
to skills considered necessary to complete tasks delegated to each position.
As
a result of the staff tracking abilities, Manage 2000 yields yet another
benefit without the system having to perform any additional work.
While submitting bids or contract proposals, many companies feel compelled to validate that they retain the necessary skills within their employee base to accomplish the project. As opposed to gathering resume material from each employee, Manage 2000 already contains the essential information about potential project workers. Consequently, Manage 2000 provides instant knowledge about employees and the skills that each holds. Due to dynamic refresh module, information stored within Manage 2000 will be the most up to date information available about each employee. As well as assisting larger corporate organizations, the dynamic refresh module appeals to associations which maintain less staff. For this reason, Manage 2000 inherently increases its own marketability. Because of its unique abilities, Manage 2000 provides the following services:
· Automated Staff Selection: Select the best personnel for each staff slot based on configurable parameters.
· Quick Reference Knowledge Database: Find out exactly what level of expertise the company staff has.
· Automated Employee Updates: Automatic employee updates performed during the course of project(s) completion.
· Automated Staff Replacement: Should the need arise to remove an employee from a certain project (if he or she is needed elsewhere for example), Manage 2000 provides flexible personnel management to support the demands of the business world.
·
Preparing resume affiliated employee information and
statistics.
Manage 2000 is essentially an addition to MS Project. As opposed to forcing the user to run two separate programs, when Manage 2000 is started up, it starts up MS Project as well and can then access the internal mechanisms and data stored with Project. This is accomplished through the use of Project’s D-COM construction (D-COM is a set of tools which provide many of Microsoft’s programs with external “hooks” which allow them to be used from within other programs). The diagram below shows the D-COM structure:
By utilizing this structure, Manage 2000 allows current project information to be used as opposed to forcing users to completely switch systems. In addition to this, Manage 2000 will continue to operate within the MS Project environment with the added functionality of staff management. This minimizes the time and effort required needed to learn how to operate Manage 2000. The end result of Manage 2000 is a way to better organize projects within a large organization, without the high learning curve associated with switching project management software.
Manage 2000 Work to be Completed
The work to be completed by the Manage 2000 group is the continued development of the Manage 2000 software, its testing, and the completed production version of the software ready for implementation in a management environment already incorporating Project 98. The details regarding what is to be implemented are described below.
A complete Technical breakdown of the Manage 2000 organization, components, and testing methods is given below to illustrate exactly what the Manage 2000 team will accomplish.
MANAGE 2000 TECHNICAL OVERVIEW / TIME TO
COMPLETE INFORMATION
Internal Data Management Module
The
internal data which must be stored during runtime is both large and complex. Information regarding the current project
must be managed: current positions, skills required for these positions, and
current personnel assigned to these slots must also be maintained.
Milestone:
Functional Internal Data Management Module
Subtasks
and schedule:
·
Identify data types based on functional specs
documentation. Time: 1 week.
·
Create structure / class storage type.
·
-Create / Delete new persons. Time: 3 days.
·
-Edit loaded personnel. Time 3 days.
·
-Create / Delete skills. Time 3 days.
·
-Edit loaded skills. Time 3 days.
·
Data type interface (information exchange
modules). Time 4 days.
Total
estimated time for code completion: 23
days given non-concurrent work.
Testing: Tested via black box and sample testing.
Time
to test module functionality: one week.
Completed
module: One month (30 days) given
non-concurrent work.
Input
/ Output specifications:
Access
to data members of Manage 2000 for use by other modules will be performed
through get / save function calls to the appropriate class data type. Any information loaded or saved will pass
through this module. Interactions are
diagrammed below:
User Interface Module (GUI)
Manage 2000 is designed to provide users a windowed system (GUI) that is split into three main areas. These areas are staff characteristics, project management, and skills tracking.
The first, staff
characteristics, is the section of the interface devoted to information
regarding staff information. Within
this section, mangers will be able to view, print, update, add, and delete both
information about the staff members and the actual database entry for the
employee. The employees will be able to
view, in report format, their current information, submit changes to a
supervisor to be written to the database, and generate a resume.
The second area, project
manager interface, serves as a control area for projects. Here, projects can be viewed, printed,
updated, modified (based on changes made to the host program), added, and
deleted. Project mangers may also
replace individuals or reallocate individuals from on project to another within
this area, as well as add new staff members to projects.
The third area,
skill-tracking interface, allows a project manager the ability to view, add,
remove, or modify any or all skills pertaining to the database. The information viewed about a skill is
primarily a summary of the skill as well as its applications. These skills pertain to each qualification
class preferences, such as education, technical schooling, current employment
experience, previous employment experience, etc.
I)
Functional Requirements
A.
What it will do
i.)
provide users with an efficient graphical user
interface (GUI)
B.
What it will not do
i.)
access information from Project 98’s pull down
menuing system
ii.)
allow employee’s to permanently modify their own (or
any) database records
iii.) will
not automatically assign recommended team members to projects
II)
Staff Interface
A.
Managers
i.)
update, view, and send information to print a hard
copy of staff characteristics
ii.)
add, delete, or modify employee records
B.
Employees
i.)
view and send information to print a hard copy of
their own characteristics
ii.)
submit a modified record to supervisors for final
posting to the database
III.) Project
Management Interface
A.
Project information
i.) view
and submit print jobs
ii.) modify,
add, or delete project records
B.
Availability of individuals
i.) color-code
individuals by level of availability
ii.) view
the availability of all staff members
IV.) Skills Tracking
Interface
A.
View skill characteristics
B.
Add, delete, or modify skill characteristics
V.) Input
A.
Manager input
i.)
employee information (name, social security number,
salary history, etc.)
ii.)
skill traits (c++, java, solaris, perl, etc.)
B.
Employee input
i.)
request changes of personal information
ii.)
request changes of personal traits
VI.) Processing
4.
Dependent on machine level hardware and number of
requests within the database
VII.) Output
A.
Console output and print requests for managers or
employees
B.
Color text for each employees availability
C.
Change of information to the database records
Task Number |
Description |
Predecessors |
Schedule |
1 |
Come up with code design |
|
1 week |
2 |
Come up with GUI |
|
1.5 weeks |
3 |
Integrate the code
design and GUI |
1, 2 |
2 weeks |
4 |
Test module |
3 |
1 week |
MILESTONE |
User Interface Module |
|
5.5 weeks |
Manager Interface
User Interface
Staff Selection Module Milestone
Subtasks:
-
Come up with the algorithm, including flow chart
-
Program functions for calculations and data
retrieval
-
Test correctness of functions
-
Create GUI in Visual C++
-
Program buttons with appropriate function calls
Milestone:
-
Deliver finished module
Schedule:
-
Algorithm: no more than one day
-
Function programming and testing: 2 weeks
-
GUI creation and programming: 2 days
-
Total (with padding for sick days and such): 3 weeks
Report Generator Module Milestone
Subtasks:
-
Determine algorithm
-
Program function
-
Test function
-
Add function call to the menu of employee view of
his record (“Print” in File menu)
Milestone:
-
Deliver finished program
Schedule:
-
Algorithm: 1 day
-
Programming and testing: 1 week
-
GUI programming: 1 day
-
Total (including padding): 2 weeks
Modification Request Module Subtask:
1. Describe
abstract model detailing processes involved
2. Identify
all classes & procedures to be reused
3. Identify
procedures to be created w/in request module
4. Devise
diagram depicting flow of data among procedures & modules
5. Develop
and implement source code for request module
6. Develop
and implement test cases for request module
7. Develop
and implement user interface procedures for request module
8. Verify/Validate
correctness of module implementation
Milestone: Request module tested code.
Schedule
of subtasks:
Steps
1-4: 1 day
Step 5: 4 days
Step 6: 3 days
Step 7: 3 days
Step
8: 3 days
Schedule
Allotment of days: 14 days (not including unexpected events)
Modification Verification Module Subtask:
1. Describe
abstract model detailing processes involved
2. Identify
all classes & procedures to be reused
3. Identify
procedures to be created w/in verification module
4. Devise
diagram depicting flow of data among procedures & modules
5. Develop
and implement source code for verification module
6. Develop
and implement test cases for verification module
7. Develop
and implement user interface procedures for verification module
8. Validate
correctness of module implementation
Milestone: Verification module tested code.
Schedule
of subtasks:
Steps
1-4: 1 day
Step 5: 4 days
Step 6: 4 days
Step 7: 3 days
Step
8: 3 days
Schedule
Allotment of days: 15 days (not including unexpected events)
Testing
One important way of testing code modules
is ‘black-box’ testing in which the code is executed w/ sample test cases of
input and output. After reading through
the specifications, test cases will be drawn up to check whether the code obeys
the specification document.
The
test plans (revealed in future assignment) will specify:
·
what testing is to be performed
·
when it is to be performed
·
and how it is to be performed.
Dynamic Refresh Module
Introduction
The Dynamic Refresh Module
(DRM) is designed to automatically update employee’s records while they are
assigned to any particular project.
When tasks are completed or milestones are met, the DRM notices these
changes and updates the employee records accordingly. This module minimizes the work that employees and supervisors
must do to ensure updated records. As
the name implies, this is a dynamic function.
Hence, there is no human interaction.
The module periodically inspects the Project98 files and notes any newly
completed tasks.
Goals
Recognize project task
completion
Accurately update employee
records
Save employees and
supervisors maintenance time
Operational Scenarios
As employees are assigned
to projects they will gain added experience or newly gained experience. When a project manager confirms that tasks
have been completed, the DRM senses these changes upon its next
inspection. This chain of events then
call for changes to be made to the employee records. The records are updated and the DRM has successfully maintained
up-to-date records.
Requirements
I)
Functional Requirements
a) What
it will do
i) Dynamically
receive updated information about project status
ii)
Update personnel records regarding skills and traits
gained as projects progress
b) What
it will not do
i) Modify
Project 98 data files
ii)
Delete current entries within employee records
iii) Prompt
employees or managers for current information
II)
Input
a) Project
progression from Project 98 files or Manage 2000 database information
III) Processing
a) Internally
updates the employee records
IV)
Output
a) Output
is not immediate, but user records are displayed when requested by the client
Design
The
DRM will interact directly with Project98 files. As the project files are modified, the DRM inspects the
changes. It then calls the information storage
module to store the modified data to the proper employee records. Since the project positions have previously
been defined, there is no need for the DRM to add new tasks or skills to the
database. Simply put, the DRM notes
changes in the project file and writes updated information to the Manage 2000
database.
Milestones
Project98
file Query
Retrieve project98 file format Project98 Contractor 1 week
Implement queries Junior Programmer 2
weeks
Database
update function
Open file call Junior Programmer 1 day
Write data to records Junior Programmer 3 days
Close file call Junior Programmer 1
day
Testing
Functionality
can be confirmed by making changes to a project file where the database
modifications are a known value. If the
proper modifications are made, the module succeeds. On the other hand, if the expected results do not match, the
module is not completed.
Information Storage / Retrieval Module
Introduction
The
Information Storage / Retrieval Module (ISRM) is the interface between all
other modules and the Data Management Module (DMM). When other modules need to read or write to the database, they
call the ISRM to help complete the task.
Goals
Retrieve
requested data
Store
data requests
Assist
modules with database interfacing
Operational
Scenarios
When
a user makes a request to update his/her records, the data is written to a temp
file. Then the supervisor either
approves or denies the change. If the
change is approved, the request is made to the ISRM which receives the data
from the other module and writes it to the database. Also, if users wish to view their information, then the call is
made to the ISRM and it retrieves the data and outputs it to the desired
medium.
Requirements
I)
Functional Requirements
i.
Retrieve data from within Microsoft Project 98 files
ii.
Process information from various self inclusive
files
B. What
it will not do
i.
Create, revise, update or delete Microsoft Project
98 data files
I)
Input
A. Files
/fields from Microsoft Project 98
B. Files
related to internal procedures within Manage2000
C. Files
containing stored information processed by Manage 2000
II)
Processing
A. Files from Microsoft Project will be retrieved and various data fields among these files will be processed and potentially stored within a Manage 2000 database file.
III) Output
4. Display
stored data to the device console
4. Generate
printed reports (resume)
IV)
Performance Requirements
a)
Speed of storage and retrieval processing relies on
database file size, number of files to process, host hardware, and other active
database operations.
Design
This basically inherent to the database software that we have chosen. Custom functions must be written for this module to interface with the other modules.
Milestones
Read
function
Read data from the database Junior Programmer 3 days
Write
function
Write data to the database Junior Programmer 1 week
Testing
This
module must be tested with each module as well as by itself. Known results testing is easiest with this
module. As you know what the result change
should be, you can determine if the read or write request to the database is
correct.
DoD Benefits and Relevance
The DoD is responsible for managing vast amounts of employees and overseeing numerous research related projects. As a result of this, internal paperwork and employee tracking systems (in terms of skills and experience acquired) becomes a large bottleneck in terms of overall performance. Because of the DoD’s massive size and internal structure, Manage 2000 is the best solution to personnel management within the DoD. The main reasons for Manage 2000 being ideal for the DoD are as follows:
· Manage 2000 works with in conjunction with Microsoft Project. A large portion of the DoD’s projects are managed through the use of MS Project.
· Manage 2000 was designed with large corporations in mind. Its scalability to fit large corporations ensures adequate performance within the DoD’s domain.
· The employee management aspects of Manage 2000 ensures faster task assignment times which becomes and issue when dealing with large projects.
Tools that provide automated methods of addressing these issues will have several positive impacts on the DoD’s research and development projects in addition to other aspects as well:
· Higher Production Rates from Staff: When provided a task to accomplish in which a person has high amounts of training, or he / she is well prepared for a task, that person’s productivity rises. Less time for planning and error correction is necessary when tackling a problem in which the person is well versed.
· Lower Paperwork Costs: Less internal transference of data through conventional channels saves not only on the cost of paperwork, but also personnel hours which otherwise could be spent performing more constructive tasks.
Manage 2000 fits into the DoD’s mission by providing a way to increase the productivity of the system and maximize the use of human resources.
Manage
2000 Personnel, Hardware and Software Requirements, and Budget information.
Project Manager:
The Project Manager oversees the work being
done by the other staff members. As the
general coordinator of the group, the project manager is responsible for adherence
to the projected schedule and budget.
Technical Writer:
The technical writer produces the documents which are to be distributed with Manage 2000, such as the user guide and installation instructions. This person is also responsible for generating any additional documentation required during the course of the project.
Office Manager:
The office manager is the coordinator of office activities and paperwork. Essentially the secretary of Manage 2000 the person is responsible for maintaining smooth internal communications (along with the Project Manager), and communications with outside entities, such as the DoD.
1.
Workstations HP Brio BAX:
P3-500MHz,
512 MB RAM,
4/12/24x CDRW,
10/100Base-T Lan card,
Windows 98 OS
10 @ $1,400 each $ 14,000
2.
HP Laser Jet 4050TN Multi Tray network printer
1 @ $1,530 $ 1,530
3.
HP NetServer E60 Tower
P3-550MHz,
1.0
GB RAM
2 @ $1,870 $ 3,740
4.
Cisco Catalyst 2912XL switch
1 @ $1,090 $ 1,090
5.
Cables $ 300
6.
APC UPS
1 @ $1,000 $ 1,000
Total $
21,660
1.
MS BackOffice/Small Business Server 4.5
5 clients
Includes SQL Server,
Exchange Server and others
1 @ $1,360 $ 2,720
2.
MS BackOffice 5 user license upgrade
1 @ $420 $ 420
3.
MS Visual Studio6 Professional Full Version
1 @ $1,600 $ 1,600
4.
McAfee Office 2000
1 @ @60 $ 60
5.
Firewall software $ 2,500
6.
512K circuit
12 months @ $4,500/month $ 54,000
Total $
61,300
Estimated
Additional Costs
(For
Quarters 1-3, Jan. 2000 to Sept. 2000)
Personnel
Costs:
1. Project
Manager $ 71,250
($95,000/yr
- $7,917/mo)
2. Legal
Consultant 30,000
$300/hr x
100 hrs
3. Office
Manager 26,250
($35,000/yr
- $2,916/mo)
4. Technical
Writer 33,750
($45,000/yr
- $3,750/mo)
5.
Senior Level Programmers (2) 120,000
(each at $80,000/yr -
$6,667/mo)
6.
Junior Level Programmers (2) 60,000
(each at $40,000/yr -
$3,333/mo)
7. Database
Administrator 48,750
($65,000/yr
- $5,417/mo)
8. CS250
Consultants 0
9. CS300
Consultants 0
Total
Personnel $ 390,000
Employee
Benefits:
1.
Benefits (excl. legal consult.):
Medical/Dental Insurance
Social Security
401K Investment
Bonuses
Total Benefits(est. at 30%
salaries) $ 108,000
Office
Costs:
1.
Office Lease Components:
Ten single offices, conference room,
kitchen area, high density storage area,
network server room,
electricity & utilities
Area Estimate:
lease space for 12 people – plan for expansion
1,440 sq foot required (120 sq.ft. per employee)
Office Lease Estimate:
class A office space $20/sq.ft.
includes furniture, utilities, etc.
Total
Office Lease:
(1,440*20 = $28,800/yr
=> $2,400/mo) $ 21,600
2.
Telephone service
$45/phone/mo * 13 phones * 9 mos. $ 5,265
Long Distanc service 10,000
3.
Miscellaneous office expenses
$2,000/mo * 9 mos. 18,000
Total Office Costs $
54,865
1. Marketing
& Advertising fees $
20,000
2. Shipping
expenses 14,000
3. Travel
expenditures 20,000
4. Training
expenses 10,000
Total
selling & OH expenses $ 64,000
Costs Justification
Workstations HP Brio BAX:
Our
project consists mostly of software development, therefore powerful processors
are crucial to speed up the compile time during development and testing.
HP Laser Jet 4050TN Multi Tray network printer
In
any office, a printer is necessary, and this one is designed for fast networked
printing satisfying the needs of our ten clients.
HP NetServer E60 Tower
Same
as with the client machines, the disk space and processors of the servers has
to accommodate the software development.
Cisco Catalyst 2912XL switch
This
class switch offers enough bandwidth at a good price.
APC UPS
In
order to avoid setbacks due to lost data during power outages, the UPS is
necessary.
MS BackOffice/Small Business Server 4.5 and additional client
licenses
MS Visual Studio6 Professional Full Version
Since
we are building on existing MS software, using other MS software will cause the
least compatibility problems.
McAfee Office 2000, Firewall software
To protect our data both from intrusion and
theft and from Virus attacks, firewall and virus scan software is necessary.
Additional Costs are incurred from personnel,
office space and leasing requirements.
All information regarding these aspects of the proposed budget can be
provided if requested. All costs are
assuming an 9 month development period for the remainder of the Manage 2000
software.
Additional Schedule Information
What follows is a timeline based on a nine
month schedule. Schedule information
regarding modules and testing phases can be found within the technical overview
documentation
provided previously within this document.