Professional Documents
Culture Documents
Project
Project
1. Quality
2. Risks
3. Scope and change control
4. Documentation control
5. Team building
6. Organizational change
7. External communications
8. Procurement and accounting:
9. Subcontractors
10. Time
11. Cost
12. Opportunity
13. Human resources
1. Conformity: software projects are based on logical work, while others are based on
physical work etc. software developers have to conform to the requirement of human
clients.
2. Flexibility: software projects are flexible. Customer/clients only wan the final result, so
the programmer can modify the software at any stage.
3. Invisibility: With Software progress is not immediately visible, however for
physical artefacts like Bridge progress can be seen over the period of time.
4. Complexity: we can’t measure complexity of software project until we actually work on
it.
5. The end state: The end state of a software project is often a lot more speculative than
with other projects. Sometimes we have at best a vague notion of what we want.
Sometimes our notion is clear (often with implicit requirements) but we forget to tell the
other guy. Often, we change our minds along the way. Because software is a relatively
new field, software projects almost always involve new art - applying software to a new
or expanded problem.
6. production chain: The production chain from feature to code to executing stuff varies
wildly in throughput, availability, reliability and even variability itself. Software
production varies from one application technology to another, from one platform to
another, and even between deployments of the same production chain. Software
production varies wildly between individuals and with changes to the environment they
work in.
7. The tools and methods in software projects are tunable. Eg, if rebuilding the software
every five minutes helps code production, adjust your environment to do that.
8. Leadership: software project needs leaders and managers, not just an administrator.
9. Management methodology: managing a software project is more managing interpersonal
communication and less administration.
The difference between PERT and Gantt chart is that Gantt chart provides the exact
duration of time required for the completion of each task or activity using a bar-chart, whereas
PERT with its flow chart can determine the time duration of a complete project but not for each
task. That means to say, the Gantt chart provides accurate task duration and applicable for small
projects. PERT chart predicts complete project level duration and can be used for large and
complex projects.
LONG ANSWER QUESTIONS:
What are different cost estimation techniques? Explain COCOMO-ll model with suitable
example.
Step 4 − The moderator calls the Estimation team for the Estimation meeting. If any of the
Estimation team members respond saying that the estimates are not ready, the moderator gives
more time and resends the Meeting Invite.
Step 5 − The entire Estimation team assembles for the estimation meeting
• At the beginning of the Estimation meeting, the moderator collects the initial estimates
from each of the team members. He then plots a chart on the whiteboard. He plots each
member’s total project estimate as an X on the Round 1 line, without disclosing the
corresponding names. The Estimation team gets an idea of the range of estimates, which
initially may be large.
• Each team member reads aloud the detailed task list that he/she made, identifying any
assumptions made and raising any questions or issues. The task estimates are not
disclosed. The individual detailed task lists contribute to a more complete task list when
combined.
• During the estimation session, the team comes to a consensus on the effort required for
each task in the WBS.
• Each team member fills out an estimation form which contains his/her estimates.
• The rest of the estimation session is divided into rounds during which each estimation
team member revises his/her estimates based on a group discussion. Individual numbers
are not discussed.
• The team members then combine the changes in the task estimates to arrive at the total
project estimate.
• The moderator collects the changed estimates from all the team members and plots them
on the Round 2 line. In this round, the range will be narrower compared to the earlier one,
as it is more consensus based.
• The team then discusses the task modifications they have made and the assumptions.
• Each team member then revisits his/her task list and assumptions, and makes changes if
necessary. The task estimates may also require adjustments based on the discussion.
• The team resolves any issues or disagreements that are brought up.
o Individual estimate times are not discussed. These disagreements are usually
about the tasks themselves. Disagreements are often resolved by adding
assumptions.
• The moderator updates the plot with the new total:
• These steps are repeated till one of the following criteria is met –
o Results are converged to an acceptably narrow range.
o All team members are unwilling to change their latest estimates.
o The allotted Estimation meeting time is over.
4. COCOMO II
In Constructive Cost Model, or COCOMO, projects are summarized using a set of variables that
must be provided as input for a model that is based on the results of a large number of projects
across the industry.
The output of the model is a set of size and effort estimates that can be developed into a project
schedule.
Example:
• Use the COCOMO II model to estimate the effort required to build software for a simple ATM
that produces 12 screens, 10 reports, and will require approximately 80% as new software
components.Assume average complexity and average developer/ environment maturity. Use the
application composition model with object points. Given:
Solution
• It is given that 80% of components have to be newly developed. So, remaining 20% can be
reused
•Now compute new object points as
NOP = (object points) * ((100 - %reuse)/ 100]
NOP = 32 * (100-20)/ 100 = 32*80 / 100
NOP= 25. 6 object points
• Since productivity is given average, we can assume PROD = 13
•Hence, effort = NOP/PROD
effort = 25.6/13
effort = 1.96 person months
Software configuration are the items that comprise all the information produced as part of
software process are collectively called as software configuration.
Software Configuration Management (SCM) is the task of tracking and controlling
changes in the software, part of the larger cross-discipline field of configuration
management. SCM practices include revision control and the establishment of baselines.
If something goes wrong, SCM can determine what was changed and who changed it. If a
configuration is working well, SCM can determine how to replicate it across many hosts.
Suffice to say that in a complex scenario where bug fixing should happen on multiple
production systems and enhancements must be continued on the main code base, SCM
acts as the backbone which can make this happen. The need for an SCM process is
acutely felt when there are many developers and many versions of the software.
SCM helps in identifying individual elements and configurations, tracking changes, and
version selection, control, and base lining. SCM aims to control changes introduced to
large complex software systems through reliable version selection and version control.
software configuration management system creates a central repository to facilitate file
sharing. Each file to be shared must be added to the central repository to create the first
version of the file. After a file is part of the central repository, users can access and
update it, creating new versions.
SCM can be used across the entire software stack. It provides additional structure and
standardization to the software development process, which can help organizations
establish baselines, enhance and organize reporting, manage changes and oversee
resources allocated to a development project. In a project, each involving myriad
components and multiple developers or teams. Without some cohesive way to bring order
to the process, software building and testing would devolve into chaos. When several
developers work on the same source code at the same time, the various changes won't
integrate well and the software will essentially break. To avoid that outcome, SCM
creates multiple lines of development and reconciles each line into a final source for a
build, allowing many developers to work on the same code simultaneously. It also
provides the following benefits:
Manage processes- SCM enables a team to create and enforce processes. This can be
particularly important for highly regulated businesses or sophisticated projects. Process
management can extend to guidelines for developer collaboration.
Manage builds- SCM can guide the software development toolchain used to build and
test software elements. For example, build management might dictate the specific tools to
be used as well as how each tool should be set up and used.
Track tickets- With its formalized ticketing and reporting processes, SCM enables an
organization to fully trace and document every defect or incident.
Configuration auditing– Ensuring that configurations contain all their intended parts and
are sound with respect to their specifying documents, including requirements,
architectural specifications and user manuals.
Audit and account for changes- SCM shows developers and stakeholders all of the
information related to the development process. Auditing helps to ensure that a software
configuration includes all of its intended parts, and it can provide configuration
summaries that reconcile specifications, components, documents and requirements.
Cost-benefit analysis (CBA) is a technique used to compare the total costs of a program/
project with its benefits, using a common metric (most commonly monetary units). This
enables the calculation of the net cost or benefit associated with the program. As a
technique, it is used most often at the start of a program or project when different options
or courses of action are being appraised and compared, as an option for choosing the best
approach. It can also be used, however, to evaluate the overall impact of a program in
quantifiable and monetized terms.
1) Net profit
2) Payback Period
3) Return on investment
4) Net present Value
5) Internal rate of return
Net profit
calculated by subtracting a company's total expenses from total income.
showing what the company has earned (or lost) in a given period of time (usually one
year). also called net income or net earnings.
Net profit=total cost-total incomes
Payback Period
The payback period is the time taken to recover the initial investment. It is also the length
of time required for cumulative incoming returns to equal the cumulative costs of an
investment
Advantages
simple and easy to calculate.
It is also a seriously flawed method of evaluating investments
Disadvantages
It attaches no value to cashflows after the end of the payback period.
It makes no adjustments for risk.
It is not directly related to wealth maximization as NPV is.
It ignores the time value of money.
The "cut off" period is arbitrary.
Project1 =10,000+10,000+10,000+20,000+1,00,000=1,50,000
Project 2= 2,00,000+2,00,000+2,00,000+2,00,000+3,00,000=11,000,00
Project 3= 30,000+30,000+30,000+30,000 + 75,000 =1,95,000
It ignores any benefits that occur after the payback period and, therefore, does not
measure profitability.
It ignores the time value of money.
Return on investment
It provides a way of comparing the net profitability to the investment required. Its also a
performance measure used to evaluate the efficiency of an investment or to compare the
efficiency of a number of different investments
Disadvantages
It takes no account of the timing of the cash flows.
Rate of returns bears no relationship to the interest rates offered or
changed by bank.
𝑎𝑣𝑒𝑟𝑎𝑔𝑒 𝑎𝑛𝑛𝑢𝑎𝑙 𝑝𝑟𝑜𝑓𝑖𝑡
ROI = ∗ 100
𝑡𝑜𝑡𝑎𝑙 𝑖𝑛𝑣𝑒𝑠𝑡𝑚𝑒𝑛𝑡
𝑛𝑒𝑡 𝑝𝑟𝑜𝑓𝑖𝑡
Average annual profit = 𝑡𝑜𝑡𝑎𝑙 𝑛𝑜. 𝑜𝑓 𝑦𝑒𝑎𝑟𝑠
The IRR compares returns to costs by asking: "What is thediscount rate that would give
the cash flow stream a net present value of 0?"
IRR asks a different question of the same two cash flow streams. Instead of proposing a
discount rate and finding the NPV of each stream (as with NPV), IRR starts with the net
cash flow streams and finds the interest rate (discount rate) that produces an NPV of zero
for each. The easiest way to see how this solution is found is with a graphical summary:
These curves are based on the Case A and Case B cash flow figures in the table above.
Here, however, we have used nine different interest rates, including 0 and 0.10, on up
through 0.80.
As you would expect, as the interest rate used for calculating NPV of the cash stream
increases, the resulting NPV decreases.
For Case A, an interest rate of 0.38 produces NPV = 0, whereas Case B NPV arrives at 0
with an interest rate of 0.22.
Case A therefore has an IRR of 38%, Case B an IRR of 22%.
IRR as the decision criterion, the one with the higher IRR is the better choice.