Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

SWES12

MANAGING SOFTWARE DEVELOPMENT


PROJECT

DAVID TUMINI OGOLO


20214129

SHORT ANSWER QUESTIONS:

What do we monitor in a 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

How software project differs from non-IT project?

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.

What is difference between PERT and Gantt Chart?

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.

1. Wideband Delphi Technique


In the 1970s, Barry Boehm and John A. Farquhar originated the Wideband Variant of the Delphi
Method. The term "wideband" is used because, compared to the Delphi Method, the Wideband
Delphi Technique involved greater interaction and more communication between the
participants. Wideband Delphi is a process that a team can use to generate an estimate, the
project manager chooses an estimation team, the estimation team comprise the project manager,
moderator, experts, and representatives from the development team.
Wideband Delphi is a repeatable estimation process because it consists of a straightforward set of
steps that can be performed the same way each time.

The Wideband Delphi Process

Step 1 − Choose the Estimation team and a moderator.


The project manager selects the estimation team and a moderator. The team should consist of 3
to 7 project team members.
• The moderator should be familiar with the Delphi process, but should not have a stake in
the outcome of the session if possible.
• If possible, the project manager should not be the moderator because he should ideally be
part of the estimation team.

Step 2 − Kickoff Meeting


• The project manager must make sure that each team member understands the Delphi
process, has read the vision and scope document and any other documentation, and is
familiar with the project background and needs.
• The moderator conducts the kickoff meeting, in which the team is presented with the
problem specification and a high-level task list, any assumptions or project constraints.
The team discusses on the problem and estimation issues, if any.
• They also decide on the units of estimation. The moderator guides the entire discussion,
monitors time and after the kickoff meeting, prepares a structured document containing
problem specification, high level task list, assumptions, and the units of estimation that
are decided. The team generates a WBS with 10-20 tasks.
Step 3 − Individual Preparation
Each estimation team member then individually generates a detailed WBS, For each task, the
team member writes down an estimate for the effort required to complete the task, and any
additional assumptions he needed to make in order to generate the estimate.

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.

• Step 6: Assemble Tasks


o The project manager works with the team to collect the estimates from the team
members at the end of the meeting and compiles the final task list, corresponding
estimates and assumptions into a single master task list.
• Step 7: Review Results
o The project manager reviews the final task list with the estimation team.

2. PROBE, or Proxy Based Estimating


Proxy Based Estimating (PROBE), is the estimation method introduced by Watts Humphrey (of
the Software Engineering Institute at Carnegie Mellon University) as part of the Personal
Software Process (a discipline that helps individual software engineers monitor, test, and
improve their own work).
PROBE is based on the idea that if an engineer is building a component similar to one s/he built
previously, then it will take about the same effort as it did in the past.
In the PROBE method, individual engineers use a database to keep track of the size and effort of
all of the work that they do, developing a history of the effort they have put into their past
projects, broken into individual components. Each component in the database is assigned a type
(“calculation,” “data,” “logic,” etc.) and a size (from “very small” to “very large”). When a new
project must be estimated, it is broken down into tasks that correspond to these types and sizes.
A formula based on linear regression is used to calculate the estimate for each task.
Step 1- Conceptual design
• The first estimating step is to make a conceptual design
o Relate the requirements to the product.
o Define the product elements that will produce the desired functions
o Estimate the size of ehat you plan to build.
• To make a conceptual design, identify the product functions and the program parts
needed to produce them

Step 2- Size estimating proxies


• The basic issue
o Good size measures are detailed.
o It is generally hard to visualize product details early in a project.
• Alternatives
o Wait to estimate until you have the detail.
o Make your best guess.
o Identify a suitable proxy.
• A good proxy should correlate closely to development costs.
• A good proxy should be easy to visualize early in development.
• It should also be a physical entity that can be measured.
3. The Planning Game
The Planning Game is the software project planning method from Extreme Programming (XP), a
lightweight development methodology developed by Kent Beck in the 1990s at Chrysler.
It is a full planning process that combines estimation with identifying the scope of the project
and the tasks required to complete the software.
The Planning Game is highly iterative. The scope is established by having Development and
Business work together to interactively write “user stories” written on index cards to describe the
scope. Each story is given an estimate of 1, 2 or 3 weeks. This process is repeated continuously
throughout the project.

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:

Object Count Complexity Weight factor Total objecta


Screen 12 Simple 1 12
Report 10 Simple 2 20
3GL Components 0 NA NA 0
Total objects points: 32

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

What do you understand by software configuration? What is meant by software


configuration management? Why is it crucial to the success of large software product
development projects?

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.

Why is it crucial to the success of large software product development projects?

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.

Establish baselines- Baselines may involve the specification of minimum component


versions, required tool versions and setups, testing protocols and procedures. Baselines
can also extend to the host environment, stipulating the hardware and soft-ware
environment needed. For example, if the software will operate on a specific processor
and OS, such elements would be part of the baseline environment for testing.

Configuration control– Implementing a controlled change process. This is usually


achieved by setting up a change control board whose primary function is to approve or
reject all change requests that are sent against any baseline.

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.

Avoids configuration-related problems – Software configuration management process


make sure that the configuration changes done in any environment which may include
stage, UAT, Integration or products is being tracked and controlled.

Facilitates team coordination – Software configuration management also enables team to


co-ordinate at many scales to get done software development faster without
compromising the quality of the software. Need for co-ordination between Dev, QA and
End User.
Control changes- SCM can be a fundamental part of change control in software
development, helping development teams to receive, approve, plan, implement and
validate change requests received from stakeholders across the enterprise.

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.

What are various cost-benefit evaluation techniques used to evaluate a project?

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.

The techiques are:

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 = 𝑡𝑜𝑡𝑎𝑙 𝑛𝑜. 𝑜𝑓 𝑦𝑒𝑎𝑟𝑠

Net present value (NPV)


Discounted Cash Flow (DCF) is a cash flow summary adjusted to reflect the time value
of money. DCF can be an important factor when evaluating or comparing investments,
proposed actions, or purchases. Other things being equal, the action or investment with
the larger DCF is the better decision. When discounted cash flow events in a cash flow
stream are added together, the result is called the Net
Present Value (NPV).
When the analysis concerns a series of cash inflows or outflows coming at different
future times, the series is called a cash flow stream. Each future cash flow has its own
value today (its own present value). The sum of these present values is the Net Present
Value for the cash flow stream.
The size of the discounting effect depends on two things: the amount of time between
now and each future payment (the number of discounting periods) and an interest rate
called the Discount Rate.

Internal rate of return

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.

You might also like