A. Project Objective
This project will develop new business process and supporting an online web-based system to support the considered version for the company’s products and customer services. It is anticipated that the resulting system will provide for highly integrated processes and services that cross many internal business functions and reach out directly to customers. It is anticipated that this project will result in one of the following
- Develop an ecommerce website that results in significant competitive advantages for the company in a highly competitive market
- Establish a partnership with an It vendor that involves developing a solution, installing that solution and customizing that solution to create competitive advantages. It is recognized that this solution may require business processes to be redesigned to fit the solution. This alternative supposes that modifications to the package will be done in cooperation with the vendor and in such a way as to permit the vendor to fold these enhancements into their product; however, sale of that product to any competitor would have to be contractually restricted for a reasonable period of time
B. Initial scope of the Project
This cross-functional project will support or impact the following business functions and external parties:
- Marketing
- Sales & Order Entry
- Inventory Control and Procurement
- Shipping and Receiving
- Accounts Receivable and Payable
- External parties
- Customers
- Suppliers
- Merchandisers
It is recognized that project scope may need to be redefined over the course of the project. Project scope should be defined as explicitly as possible in the first phase of the project. Any significant deviation of functionality, cost or timetable must be reported promptly to the appropriate director.
C. Technology Constraints
The new system must conform to the following information technology architectural standards:
- The current LAN architecture is client/server based on Windows client running on the Ethernet and TCP/IP network using Windows 2003 and Windows 2003 Terminal Server Services.
- The current messaging architecture is based on Outlook clients (for e-calendar and e-mail) running on a Microsoft windows 2003-based exchange server.
- This project will require the development of an enterprise database. The corporate database server standard is MySQL Server running on a Windows 2003 server.
- The corporate application development environment chosen from PHP or Java
- Internet and internet web servers will be implemented using Microsoft Internet Information Server (IIS) running on a windows 2003 server.
- Internally, all client workstations will run the any version of Microsoft Windows desktop operating system including the Internet Explorer web browser.
- Externally, for customers, any solution developed must run equally well on either Microsoft Internet Explorer or AOL Navigator or any other web browser running on windows, Macintosh or Linux clients
D. Project Estimation
Software project estimation is a form of problem solving, and in most cases, the problem to be solved (i.e., developing a cost and effort estimate for a software project) is too complex to be considered in one piece. For this reason, we decompose the problem, re-characterizing it as a set of smaller (and hopefully, more manageable) problems. By decomposing a project into major functions and related software engineering activities, cost and effort estimation can be performed in a stepwise fashion.
The accuracy of a software project estimate is being predicated on following things:
- The size of the product to be built
- Translating the size estimate into human effort, calendar time, and money (a function of the availability of reliable software metrics from past projects)
- The project plan reflecting the abilities of the software team
- The stability of product requirements and the environment that supports the software engineering effort
To correctly estimate the effort, size, or cost of completing a project, it is important to be aware of the multiple tasks that comprise a project. Thus, dividing the project into logical units or tasks by using the WBS (Work Breakdown Structure) technique at its very basic level
0.0 Retail Web Site
1.0 Project Management
2.0 Requirements Gathering
3.0 Analysis & Design
4.0 Site Software Development
4.1 HTML Design and Creation
4.2 Backend Software
4.2.1 Database Implementation
4.2.2 Middleware Development
4.2.3 Security Subsystems
4.2.4 Catalog Engine
4.2.5 Transaction Processing
4.3 Graphics and Interface
4.4 Content Creation
5.0 Testing and Production
Using a WBS provides a number of benefits to the management and to the development teams.
- First, it gives the management an idea about the size and complexity of the project.
- Second, it helps in planning, scheduling, and monitoring a project realistically. This is possible because all the tasks in the project can be preformed measurable targets for each task.
The following figure shows the initial WBS as:
C.i. Calculating Cost/Effort, Time & Duration: Using COCOMO Model
Using this model, we will compute the software development effort as function of program size and a set of "cost drivers" that include subjective assessment of product, hardware, personnel and project attributes. Program size is expressed in estimated thousands of lines of code.
Project Size is estimated as follows:
|
HTML tags |
1.0 KDSI |
|
Logical Units |
1.5 KDSI |
|
Calculations |
1.5 KDSI |
|
Data entry |
0.6 KDSI |
|
Data update |
0.6 KDSI |
|
Query |
0.8 KDSI |
|
Report gen |
1.0 KDSI |
|
System SIZE (S) |
7.0 KDSI |
Project Details are rated as:
|
Characteristics |
Level |
EAF |
|
Storage |
High |
1.08 |
|
Complexity |
Nominal |
1.00 |
|
Experience |
High |
0.91 |
|
Programmer |
High |
0.95 |
|
Capabilities |
Low |
1.24 |
Effort (Cost) Estimation:
|
||||||||
Time (Schedule) Estimation: Time formulas
|
||||||||
People Required:
|
||||||||
D. Project Organization & Resource Cost Rates
The following table shows the persons involved in the project along with the roles assigned to them basing on the WBS mentioned above:
|
# |
Professional (Count) |
Tasks |
Roles |
|
1 |
Project Manager (1) |
1.0 Project Management 2.0 Requirement Gathering |
Project Management Requirement Engineering |
|
2 |
System Analyst (1) |
3.0 Design & Analysis 5.0 Testing & Production |
System Designing System Testing |
|
3 |
Web / Graphics Designer (1) |
4.1 HTML Design & Creation 4.3 Graphics & Interfaces 4.4 Content Creation |
Web / Graphic Designing |
|
4 |
Programmer (1) |
4.2.1 Database Implementation 4.2.2 Security Subsystems 4.2.3 Catalog Engine 4.2.4 Transaction Processing |
Database Designing Application Programming |
Table 1: Organizing Human Resources
As shown in the table, it is observed that we require one System Analyst, one Web/Graphic Designer and one programmer in order to implement the project. The following table shows the information regarding the costs associated with these recruitments:
|
Recruit |
$/Week |
Duration (Weeks) |
$/Project Life |
|
Project Manager |
$250 |
60 |
$15000 |
|
System Analyst |
$150 |
20 |
$3000 |
|
Web/Graphic Designer |
$100 |
12 |
$1200 |
|
Programmer |
$100 |
36 |
$3600 |
|
Initial Est. Cost |
$22800 |
Table 2: Estimating Cost for Professionals
E. Project Tasks
Now, we are going to define all the tasks involved in the development of the project. Initial WBS gives us some idea of what are the basic tasks which should be involved. And now basing on that, we are now going to define more comprehensive tasks. These tasks will be our guidelines and will also become part of our project plan.
1.0 Project Management
1.1 Planning
1.2 Cost & Schedule Estimation
1.3 Task & HR Management
1.4 Risk Management
1.5 Quality Management
1.6 Prepare Project Plan
1.7 Update Project Plan
2.0 Requirements Gathering
2.1 Business Requirement Definition
2.2 System Requirement Definition
2.3Create FS document
3.0 Analysis & Design
3.1 Develop Enterprise Architecture
3.2 Prepare Data Flow Model
3.3 Prepare Logical Data Model
3.4 Prepare Physical Data Model
3.5 Prepare Design Specification
4.0 Site Software Development
4.1 HTML Design and Creation
4.2 Backend Software
4.2.1 Database Implementation
4.2.2 Security Subsystems
4.2.3 Catalog Engine
4.2.4 Transaction Processing
4.3 Graphics and Interface
4.4 Content Creation
5.0 Hardware Development
5.1 Hardware Requirement Planning
5.2 Hardware System Definition
5.3 Hardware Component Selection
5.4 Hardware Testing
6.0 System Testing
6.1 Module & Subsystem Testing
6.2 System Integration Testing
7.0 Installation & Support Services
7.1 Installation Planning
7.2 User Support Documentation
7.3 User Training
7.4 Configuration Management
7.5 DB Management
7.6 DB Backup Plan
7.7 Source Management
7.8 Source Backup Plan
The tasks defined above now should enable us to draw high quality WBS. As will the picture depicts that the chart includes logical flow and is hierarchical in nature. It is Clear and concise & provides ability to roll-up information to higher levels. It is deliverable oriented and captures all deliverables (Internal, External, Interim) in terms of work to be completed. We have also included some more contracted tasks like Hardware development & support services thus fulfilling not only software development tasks but also hardware definition, management and requirement tasks too. Working on Divide & Conquer technique we are now able to recognize all the important tasks involved in Development, Management, Support and Administrative areas.
E.i. Defining Deliverables/Milestones
We are now going to define a hierarchy where the project is decomposed into product-oriented components when defining project scope. It will help us in defining and describing project deliverable products and product constituent components in more concise and efficient manner. Following fig. shows the PBS in pictorial form as:
Defining PBS will help us in understanding on what the project tasks are going to deliver to us. It will also helps in managing the deliverable status/matrix report. Such matrix or report will help in keeping check on the project activities to be running smoothly or not. Are we going on track or there are delays happening in the project.
The process-oriented tasks and the deliverables resulted from them are as shown in the table:
|
# |
Process |
Deliverable |
|
1 |
Cost & Schedule Estimation |
Project Estimation Document |
|
2 |
Prepare project plan |
Project Plan |
|
3 |
Create FSD |
Function Specification Document (FSD) |
|
4 |
Prepare design specification |
Design Specification Document |
|
5 |
HTML design & creation |
WebPages |
|
6 |
Graphics & Interfaces |
Rich Graphics WebPages |
|
7 |
Content Creation |
Textual WebPages |
|
8 |
Database implementation |
Database |
|
9 |
Security Subsystems |
Application Module I (SourceCode) |
|
10 |
Catalogue Engine |
Application Module II (SourceCode) |
|
11 |
Transaction Processing |
Application Module III (SourceCode) |
|
12 |
Hardware component selection |
Web/DB Servers |
|
13 |
Hardware testing |
Hardware Test Report |
|
14 |
System integration testing |
Testing Document |
|
15 |
User support documentation |
User Support Documentation |
|
16 |
User training |
Training Manual Documentation |
|
17 |
DB backup plan |
DB Backup Guidelines |
|
18 |
Source backup plan |
Software Backup Guidelines |
Table 3: Defining Deliverables from WBS
F. Project Scheduling
At this point of time, now we need to assign / understand durations to all activities and monitor their progress. We also need to plan the order in which the activities will be performed as well as the start and end dates for each activity. The plan should include not only the scheduling of development activities, but also the scheduling of project resources, particularly people.
It is the project manager’s responsibility to withstand pressure and to assure that the project is developed in an orderly fashion, according to the schedule. Whenever circumstances change, the project schedule should then be updated to reflect the new situation.
The following table shows the project activities defined in early part of the document and the time allocation for each task to be planned for completion using the Gantt chart format:
The scheduling of project team is shown in the following table:
|
# |
Team Members |
Time Allocation (weeks) |
Schedule |
|
1 |
Project Manager |
61 |
4/1 – 11/29 |
|
3 |
System Analyst |
17 |
5/10 – 5/31 & 10/14 – 11/29 |
|
4 |
Web/Graphic Designer |
10 |
6/21 – 7/30 |
|
5 |
Programmer |
34 |
6/1 – 10/13 |
Table 4: HR Scheduling
The milestones/deliverables status report is as follows:
|
# |
Deliverable |
ETD |
|
1 |
Project Plan |
4/15/2010 |
|
2 |
Function Specification Document (FSD) |
5/7/2010 |
|
3 |
Design Specification Document |
5/31/2010 |
|
4 |
WebPages |
7/30/2010 |
|
5 |
Rich Graphics WebPages |
6/22/2010 |
|
6 |
Textual WebPages |
7/7/2010 |
|
7 |
Database |
7/30/2010 |
|
8 |
Application Module I (SourceCode) |
9/14/2010 |
|
9 |
Application Module II (SourceCode) |
8/23/2010 |
|
10 |
Application Module III (SourceCode) |
10/13/2010 |
|
11 |
Web/DB Servers |
10/21/2010 |
|
12 |
Hardware Test Report |
10/21/2010 |
|
13 |
Testing Document |
11/8/2010 |
|
14 |
User Support Documentation |
11/15/2010 |
|
15 |
Training Manual Documentation |
11/29/2010 |
|
16 |
DB Backup Guidelines |
11/25/2010 |
|
17 |
Software Backup Guidelines |
11/25/2010 |
Table 5: Defining Milestones
F.i. Network Scheduling
In a software project, there are various activities that happen either simultaneously or overlap. Using a Gantt chart, we cannot distinguish between the activities that occur simultaneously from those that share some dependency. To able to analyze the dependencies that exist between the activities, the network scheduling techniques are used. By using these techniques, we will determine the latest time by when an activity should start to be completed on time.
A network is the graphic representation of the activities in a project. It depicts all the activities in the project in the form of nodes. The arrows terminating at a node need to be completed before the following activity can begin. Sometimes, we need to introduce a dummy activity to enable the network to display parallel activities.
The table showing the activities involve in the project sorted in ascending order according to start date:
|
Node# |
Task |
Time Allocation |
Start Date |
End Date |
|
1 |
Project Management |
11 days |
04/01/10 |
04/15/10 |
|
2 |
Requirements Gathering |
16 days |
04/16/10 |
05/07/10 |
|
3 |
Analysis & Design |
16 days |
05/10/10 |
05/31/10 |
|
4 |
Database Implementation |
44 days |
06/01/10 |
07/30/10 |
|
5 |
Graphics and Interface |
16 days |
06/01/10 |
06/22/10 |
|
6 |
HTML Design and Creation |
28 days |
06/23/10 |
07/30/10 |
|
7 |
Content Creation |
11 days |
06/23/10 |
07/07/10 |
|
8 |
Catalog Engine |
16 days |
08/02/10 |
08/23/10 |
|
9 |
Security Subsystems |
16 days |
08/24/10 |
09/14/10 |
|
10 |
Transaction Processing |
21 days |
09/15/10 |
10/13/10 |
|
11 |
Hardware Development |
6 days |
10/14/10 |
10/21/10 |
|
12 |
Installation Planning |
2 days |
10/21/10 |
10/22/10 |
|
13 |
System Testing |
11 days |
10/25/10 |
11/08/10 |
|
14 |
User Support Program |
16 days |
11/08/10 |
11/29/10 |
Table 6: Tasks Sorted for Network Scheduling
The drawn Network Schedule is as shown below:
Determining Criminal Path
The critical path is the longest path through a network. It consists of those activities that cannot be completed concurrent1y. In other words, the critical path represents the maximum duration for a project.
From above fig, due to dummy activities, we have only one longest path left.
The longest path is S-1-2-3-4-8-9-10-11-12-13-14-E = 175
The double line in the network schedule represents the critical path for that project.
Thus, all these activities on the critical path are critical for the project. If any activity on the critical path is delayed, the entire project is delayed by the same amount of time. Hence, we need to monitor the activities on the critical path because the project depends on the successful completion of these activities. If required, additional resources can be applied to these activities to shorten the project duration.
G. Risk Analysis & Management
Risk analysis and management are a series of steps that help a software team to understand and manage uncertainty. Many problems can plague a software project. A risk is a potential problem – it might happen, it might not. But regardless of the outcome, it’s a really good idea to identify it, assess its probability of occurrence, estimate its impact, and establish a contingency plan.We need to prepare Risk Mitigation and Risk Management plan to overcome any future problems that may occur during the course of the project life. Following tables identifies some of the potentials risks for the project & the management policy:
|
# |
Risk Identified |
Probability |
RMMM |
|
1 |
Inexperienced staff |
0.2 |
Management has decided to recruit experienced staff still training sessions will be held before the project initiation. |
|
2 |
Performance risk due to high volume of data to be processed |
0.5 |
It may happen that historical data needs to be updated in the software system be huge, so we need to develop a plan to manage it properly. |
|
3 |
Cross-browser compatibility |
0.2 |
It is a big requirement in the software solution & we will try to test the software on the popular and most frequently used browsers available on the internet. Still, we need to keep a track on latest technology and try to make the software as much compatible as possible. |
|
4 |
Involvement of new technology |
0.1 |
We are going for free open source technologies like Java & PHP, so this risk may be not so much a threat. |
|
5 |
Design changes during development |
0.6 |
This is very important to make our understanding about the software very clear during first 2 months of the software life, as it may happen that some changes may happen. We need to define the specifications properly during initial stages and make our understanding very clear on them. |