Introduction:
In the present Information Technology (IT) industry, a number of both In-house and Offshore Software Projects have a tendency to get scrapped before its completion. Failure Analysis refers to various Management Indicators. A brief description of developing a Model and performing quantitative analysis for successful completions of software projects are discussed here. When the estimated budget for the project is known, this model calculates the number of skilled Software Professionals required, so that all constraints are satisfied.
Software Project Phase :
The Model uses the below tasks as its basic assumption.
1. Identify the Prevailing Market rate for Skilled IT Professionals
2. Budget amount sanctioned
3. Implementation & Support during Warranty Period
Model Assumptions:
This Mathematical model assumes that data is available for these controllable variables.
Controllable Variables:
a) Wage rates per hour for:
TEAM LEADER = $ Wtl
SYSTEM ANALYST = $ Wsa
DEVELOPER = $ Wdl
TESTER = $ Wts
b) Budget sanctioned for the Project = $ Pb
c) Sanctioned Budget is $ Pb = ( Pi + Pa + Pr)
where Pi is the Initial amount used primarily for System Development = Ki * Pb ,
Pa is the budget amount used for redesign/redevelop the System = Ka * Pb ,
Pr is the budget amount used for System Implementation = Kr * Pb ,
where Ki , Ka , Kr are the percentage allocated from the sanctioned amount
At the end, this Model solves for the total number of skilled professionals that the IT Department can recruit to get the project completed within the specified duration and without exceeding the sanctioned budget.
Number of skilled professionals :
TEAM LEADER = Ntl
SYSTEM ANALYST = Nsa
DEVELOPER = Ndl
TESTER = Nts
Total number of Skilled Professionals : TSP = (Ntl + Nsa + Ndl + Nts)
Data Calculated:
Uncontrollable Variables:
A Project Manager with diverse experience in Software Programming and System Analysis can assign suitable values to these variables.
Ratio between Redesign and Initial phases:
SYSTEM DESIGN = Ksd
DOCUMENTATION = Kdp
SYSTEM DEVELOPMENT = Kdv
SYSTEM TESTING = Kst
Estimated time to perform the Job in Hours: (initial expectations)
SYSTEM DESIGN = Tsd
DOCUMENTATION = Tdp
SYSTEM DEVELOPMENT = Tdv
SYSTEM TESTING = Tst
Restart time (repeated process a maximum of THREE times ):
SYSTEM DESIGN = Rsd = Ksd * Tsd
DOCUMENTATION = Rdp = Kdp * Tdp
SYSTEM DEVELOPMENT = Rdv = Kdv * Tdv
SYSTEM TESTING = Rst = Kst * Tst
Estimated time to Implement = Tit
Estimated time to Implement = Twp
Project Costs:
Initial Stage:
Initial cost of SYSTEM DESIGN (Isd) = Tsd * (Ntl * Wtl + Nsa * Wsa)
Initial cost of DOCUMENTATION (Idp) = Tdp * (Ntl * Wtl + Nsa * Wsa)
Initial cost of SYSTEM DEVELOPMENT (Idv) = Tdv * (Ndl * Wdl + Nsa * Wsa)
Initial cost of SYSTEM TESTING (Ist) = Tst * (Ndl * Wdl + Nts * Wts + Nsa + Wsa)
Testing/Redesign Stage:
The probability to find a “Bug” in source code or even in the system design by the testers exists. Once it’s identified, depending on the type of the Bug, the systems analyst will either redesign the system or let the developers rectify the problem.The System Testers perform the testing again. Though it’s an endless process, it’s assumed that this process doesn’t repeat more than THREE times.
Cost of SYSTEM DESIGN (Csd) = 3 * Rsd * (Ntl * Wtl + Nsa * Wsa)
Cost of DOCUMENTATION (Cdp) = 3 * Rdp * (Ntl * Wtl + Nsa * Wsa)
Cost of SYSTEM DEVELOPMENT (Cdv) = 3 * Rdv * (Ndl * Wdl + Nsa * Wsa)
Cost of SYSTEM TESTING (Cst) = 3 * Rst * (Ndl * Wdl + Nts * Wts + Nsa * Wsa)
After the development is completed , let the application is ready for implementation. During the Warranty period, Redesign, Rewrite, Retest ,and implementations are to be considered. This additional expenditure also need to be considered while the estimating the budget.
During the Implementation process and Warranty period, the cost anticipated will be:
Cost for Implementation & Warranty period coverage Cr = (Tit + Twp) * (Ndl * Wdl + Ntl * Wtl + Nsa * Wsa)
Linear Equation :
The linear equation used for this Model is:
Pi = ( Isd + Idp + Idv + Ist )
Pa = ( Csd + Cdp + Cdv + Cst )
Pr = ( Cr )
Model Constraints:
Constraint assumed is that More time is required to test thoroughly before implementing ;
Tst >= (Tsd + Tdp + Tdv ) and Rst > Tst andand Nsa > Ntl and Ndl > Nsa and Ndl > Nts and and Ka > ( K i + Kr )
(Ndl + Nts ) > (Ntl + Nsa )
and Rst >= (Rsd + Rdp + Rdv )
Conclusion:
Although it is a basic approach to design the model, every effort is made to consider all the possible phases in a Software Development Life Cycle, that were gained from real-time experience. Using Advanced Regression Analysis, Sampling Techniques, and Chaos Dynamics, this model can be made more reliable.
References:
1. Linear Programming- 1. Introduction - George B Dantzig, Mukund N Thapa - 1997 Edition.