0% found this document useful (0 votes)
26 views

Spm(a6219) Ist Module

The document outlines the principles and practices of Software Project Management, detailing the roles of project managers, project planning, scope management, and estimation techniques. It emphasizes the importance of stakeholder identification, project objectives, and the challenges faced in software projects, along with strategies to overcome them. The document also provides a structured approach to project planning through step-wise methodologies and highlights the significance of defining clear goals and objectives.

Uploaded by

affanaffu107
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views

Spm(a6219) Ist Module

The document outlines the principles and practices of Software Project Management, detailing the roles of project managers, project planning, scope management, and estimation techniques. It emphasizes the importance of stakeholder identification, project objectives, and the challenges faced in software projects, along with strategies to overcome them. The document also provides a structured approach to project planning through step-wise methodologies and highlights the significance of defining clear goals and objectives.

Uploaded by

affanaffu107
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

SOFTWARE PROJECT MANAGEMENT

IV.YEAR-I SEMESTER

MODULE-I : Introduction: Project, anagement, Software Project Management activities, Challenges in


software projects, Stakeholders, Objectives & goals.
Project Planning: Step-wise planning, Project Scope, Project Products & deliverables, Project
activities, Effort estimation, Infrastructure.
__________________________________________________________________________________
__________________________
Project is well-defined task, which is a collection of several operations done in order to achieve a goal (for
example, software development and delivery).

A Project can be characterized as:

 Every project may has a unique and distinct goal.


 Project is not routine activity or day-to-day operations.
 Project comes with a start time and end time.
 Project ends when its goal is achieved hence it is a temporary phase in the lifetime of an organization.
 Project needs adequate resources in terms of time, manpower, finance, material and knowledge-bank.

Software Project
A Software Project is the complete procedure of software development from requirement gathering to testing
and maintenance, carried out according to the execution methodologies, in a specified period of time to
achieve intended software product.

Software Project Manager

A software project manager is a person who undertakes the responsibility of executing the software project.
Software project manager is thoroughly aware of all the phases of SDLC that the software would go through.
Project manager may never directly involve in producing the end product but he controls and manages the
activities involved in production.

A project manager closely monitors the development process, prepares and executes various plans, arranges
necessary and adequate resources, maintains communication among all team members in order to address
issues of cost, budget, resources, time, quality and customer satisfaction.
Let us see few responsibilities that a project manager shoulders -

Managing People

 Act as project leader


 Liaison with stakeholders
 Managing human resources
 Setting up reporting hierarchy etc.

Managing Project

 Defining and setting up project scope


 Managing project management activities
 Monitoring progress and performance
 Risk analysis at every phase
 Take necessary step to avoid or come out of problems
 Act as project spokesperson

Software Project Management Activities

Software project management comprises of a number of activities, which contains planning of project,
deciding scope of software product, estimation of cost in various terms, scheduling of tasks and events, and
resource management. Project management activities may include:

 Project Planning
 Scope Management
 Project Estimation

Project Planning

Software project planning is task, which is performed before the production of software actually starts. It is
there for the software production but involves no concrete activity that has any direction connection with
software production; rather it is a set of multiple processes, which facilitates software production.

Management

It defines the scope of project; this includes all the activities, process need to be done in order to make a
deliverable software product. Scope management is essential because it creates boundaries of the project by
clearly defining what would be done in the project and what would not be done.
This makes project to contain limited and quantifiable tasks, which can easily be documented and in turn
avoids cost and time overrun.

During Project Scope management, it is necessary to -

 Define the scope


 Decide its verification and control
 Divide the project into various smaller parts for ease of management.
 Verify the scope
 Control the scope by incorporating changes to the scope

Project Estimation

For an effective management accurate estimation of various measures is a must. With correct estimation
managers can manage and control the project more efficiently and effectively.

Project estimation may involve the following:

 Software size estimation

Software size may be estimated either in terms of KLOC (Kilo Line of Code) or by calculating
number of function points in the software. Lines of code depend upon coding practices and Function
points vary according to the user or software requirement.

 Effort estimation

The managers estimate efforts in terms of personnel requirement and man-hour required to produce
the software. For effort estimation software size should be known. This can either be derived by
managers’ experience, organization’s historical data or software size can be converted into efforts by
using some standard formulae.

 Time estimation

Once size and efforts are estimated, the time required to produce the software can be estimated.
Efforts required is segregated into sub categories as per the requirement specifications and
interdependency of various components of software. Software tasks are divided into smaller tasks,
activities or events by Work Breakthrough Structure (WBS). The tasks are scheduled on day-to-day
basis or in calendar months.
The sum of time required to complete all tasks in hours or days is the total time invested to complete
the project.

 Cost estimationThis might be considered as the most difficult of all because it depends on more
elements than any of the previous ones. For estimating project cost, it is required to consider -
o Size of software
o Software quality
o Hardware
o Additional software or tools, licenses etc.
o Skilled personnel with task-specific skills
o Travel involved
o Communication
o Training and support

Challenges in software Projects

Software project management problems

1. Planning for software engineering projects is generally poor.


2. Procedures and techniques for the selection of project managers are poor.
3. The accountability of many software engineering projects is poor, leaving some questions as to who
is responsible for various project functions.
4. The ability to accurately estimate the resources required to accomplish a software development
project is poor.
5. Success criteria for software development projects are frequently inappropriate. This results in
software products that are unreliable, difficult to use, and difficult to maintain.
6. Decision rules to aid in selecting the proper organizational structure are not available.
7. Decision rules in selecting the correct management techniques for software engineering projects are
not available.
8. Procedures, methods, and techniques for designing a project control system that will enable project
managers to successfully control their projects are not readily available.
9. Standards and techniques for measuring the quality of performance and the quantity of production
expected from programmers and data processing analysts are not available.
10. Some hints how to solve these problems:

1. Do some preliminary research to get internal and external statistics on software development. These
data can be used to justify the following steps for senior management.
2. Educate and train top managers, and software developers.
3. Enforce the use of standards, review procedures, recommended techniques and documentation.
4. Analyze data from prior software projects to determine effective methods.
5. Define objectives in terms of quality desired.
6. Define quality in terms of deliverables.
7. Establish success priority criteria.
8. Allow for contingencies.
9. Establish a method for collection of software productivity data. Collection methods must be simple
and require relatively little staff effort.
10. Develop truthful, accurate cost and schedule estimates that are accepted by management and
customer, and manage to them.
11. Select project managers based on ability to manage software projects rather than on technical ability
or availability.
12. Make specific work assignments to software developers and apply job performance standards.
13. Demand technical and management reviews; track progress carefully.
14. Encourage critiques of methods and/or documentation format from development staff. All critiques
should be accompanied by suggestion for improvement.
15. At project completion, evaluate all information collected.

Stakeholder:

The term Software Project Stakeholder refers to, “a person, group or company that is directly or
indirectly involved in the project and who may affect or get affected by the outcome of the project”.

What is Stakeholder Identification?


It is the process of identifying a person, group or a company which can affect or get affected by a decision,
activity or the outcome of the software project. It is important in order to identify the exact requirements of
the project and what various stakeholders are expecting from the project outcome.
Type of Stakeholders:
1. Internal Stakeholder:
An internal stakeholder is a person, group or a company that is directly involved in the project.
For example,

1. Project Manager:
Responsible for managing the whole project. Project Manager is generally never involved in producing
the end product but he/she controls, monitors and manages the activities involved in the production.
2. Project Team:
Performs the actual work of the project under the Project Manager including development, testing, etc.
3. Company:
Organisation who has taken up the project and whose employees are directly involved in the
development of the project.
4. Funders:
Provides funds and resources for the successful completion of the project.

2. External Stakeholder:
An external stakeholder is the one who is linked indirectly to the project but has significant contribution in
the successful completion of the project.
For example,

1. Customer:
Specifies the requirements of the project and helps in the elicitation process of the requirement
gathering phase. Customer is the one for whom the project is being developed.
2. Supplier:
Supplies essential services and equipment for the project.
3. Government:
Makes policies which helps in better working of the organisation.

Objectives & Goals:

Goals and Objectives


Goals and objectives are statements that describe what the project will accomplish, or the business value the
project will achieve.
Goals are high level statements that provide overall context for what the project is trying to achieve, and
should align to business goals.
Objectives are lower level statements that describe the specific, tangible products and deliverables that the
project will deliver.

The definition of goals and objectives is more of an art than a science, and it can be difficult to define them
and align them correctly.

Goals
Goals are high-level statements that provide the overall context for what the project is trying to accomplish.
Let’s look at an example and some of the characteristics of a goal statement. One of the goals of a project
might be to “increase the overall satisfaction levels for clients calling to the company helpdesk with support
needs”.
 Because the goal is at a high-level, it may take more than one project to achieve. In the above
example, for instance, there may be a technology component to increasing client satisfaction. There may
also be new procedures, new training classes, reorganization of the helpdesk department and modification
of the company rewards system. It may take many projects over a long period of time to achieve the goal.
 The goal should reference the business benefit in terms of cost, speed and / or quality. In this
example, the focus is on quality of service. Even if the project is not directly in support of the business,
there should be an indirect tie. For instance, an IT infrastructure project to install new web servers may
ultimately allow faster client response, better price performance, or other business benefit. If there is no
business value to the project, the project should not be started.
 Generally, non-measurable: If you can measure the achievement of your goal, it is probably at too low
a level and is probably more of an objective.
 If your goal is not achievable through any combination of projects, it is probably written at too high a
level. In the above example, you could envision one or more projects that could end up achieving a higher
level of client satisfaction. A goal statement that says you are trying to achieve a perfect client experience
is not possible with any combination of projects. It may instead be a vision statement, which is a higher
level statement showing direction and aspiration, but which may never actually be achieved.

It is important to understand business and project goal statements, even though goals are not a part of the
TenStep Project Definition. Goals are most important from a business perspective. The project manager
needs to understand the business goals that the project is trying to contribute to. However, you do not need to
define specific project goals. On the other hand, objectives definitely are important.
Objectives

Objectives are concrete statements describing what the project is trying to achieve. The objective should be
written at a lower level, so that it can be evaluated at the conclusion of a project to see whether it was
achieved or not. Goal statements are designed to be vague. Objectives should not be vague. A well-worded
objective will be Specific, Measurable, Attainable/Achievable, Realistic and Time-bound (SMART).

An example of an objective statement might be to “upgrade the helpdesk telephone system by December 31
to achieve average client wait times of no more than two minutes”.

 Note that the objective is much more concrete and specific than the goal statement.
 The objective is measurable in terms of the average client wait times the new phone system is trying
to achieve.
 We must assume that the objective is achievable and realistic.
 The objective is time-bound, and should be completed by December 31.

Objectives should refer to the deliverables of the project. In this case, it refers to the upgrade of the telephone
system. If you cannot determine what deliverables are being created to achieve the objective, then the
objective may be written at too high a level. On the other hand, if an objective describes the characteristics of
the deliverables, they are written at too low a level. If they describe the features and functions, they are
requirements, not objectives.

Project Planning:

Software Project Planning:


A Software Project is the complete methodology of programming advancement from requirement gathering
to testing and support, completed by the execution procedures, in a specified period to achieve intended
software product.

Step-wise planning
STEPWISE PROJECT PLANNING :

Outline of Step Wise Project Planning

The framework of basic steps in project planning illustrates the various activities involved in the
development process. An outline of Step Wise planning is listed below:

 Selecting project
 Project scope & objectives
 Project infrastructure
 Analyze project characteristics
 Project products and activities
 Estimation effort
 Activity risks
 Allocate resources
 Review plan
 Execute plan

Step 0: Selecting Project

 This is the initial step which starts well outside the project planning process.
 Feasibility study of the project helps in choosing the appropriate one. Strategic planning process
helps in evaluating the metrics of selecting the project.
 Different methodologies are inevitable, stemming directly from the questions of what constitutes a
methodology and what are a methodology's underlying principles.
 Projects differ according to size, composition, priorities, and criticality.
 The people on a project have different biases based on their experiences, principles, and fears.

Step 1: Project Scope and Objectives

 Every stakeholder involved in the project must agree on the objectives defined in determining the
success of the project.
 Scope statements may take many forms depending on the type of project being implemented and the
nature of the organization.
 The scope statement details the project deliverables and describes the major objectives.
 The objectives should include measurable success criteria for the project.
 The Scope Statement should be written before the Statement of work and it should capture, in very
broad terms, the product of the project, for example, "developing a software based system to capture
and track orders for software."

Step 2: Project Infrastructure

 Project Infrastructure refers to the organizational structure, processes, tools, techniques and training
an organisation puts in place to make projects more successful.
 Organisational Structure – Organisational structure including such support mechanisms as project
management office, project recruiting function, financial monitoring area etc.
 Processes – Typically methodologies, checklists and guidelines
 Tools – Software and templates
 Techniques – Repeatable processes such as kick off meetings, PIRs, analysis techniques, etc.
 Training – Formal and informal training and reference documentation.
Step 3: Analyze Project Characteristics

 The project is categorized as either product-driven or an objective-driven.


 A project has several characteristics:
* Projects are unique.
* Projects are temporary in nature and have a definite beginning and ending date.
* Projects are completed when the project goals are achieved.
* A successful project is one that meets or exceeds the expectations of your stakeholders.
 The project must be analyzed based on its quality requirements.
 In implementing the product, user requirements are given due importance.
 Appropriate methodology and SDLC process must be chosen to suit the current product.

Step 4: Project Products and Activities

 Identify the project deliverables i.e. the end product that has to been given over to the client.
 Project products can be System products, module products or management products.
 Technical products include training materials and operating instructions in managing the quality of
the project.
 Describe the project products into components and sub-components related to individual modules in
each step.
 Every activity must be carried out for each stage of the development process.

Step 5: Estimating Effort

 The effort estimation for the staff required, the probable duration and the non staff resources needed
for every activity is determined.
 These estimates depend on the type of the activity.
 Effort is the amount of work that has to be done.
 Software development efforts estimation is the process of predicting the most realistic use of effort
required to develop or maintain software based on incomplete, uncertain and/or noisy input.
 Effort estimates may be used as input to project plans, iteration plans, budgets, investment analyses,
pricing processes and bidding rounds.

Step 6: Identify Activity Risks

 Activity based risks are identified for every activity based on number of assumptions.
 Risk planning reduces the impact of identified risks.
 New activities can reduce risks to a certain extent when there is change in plans.
 Risks fall into three broad categories - controllable known, uncontrollable known and unknown.
 The former two, are those risks happen before they can determine how to manage them. This is done
using root cause analysis.
 As the name implies its goal is to look for the root cause on the problem and solve it at that point.
 The four ways of handling risk are:
Avoidance - Take action to avoid the risk
Mitigation - Define actions to take when the risk occurs
Transfer - Have someone else handle the risk i.e. insurance
Acceptance - Identify the risk as acceptable and let it happen.
Step 7: Allocate Resources
 Resource allocation is used to assign the available resources in an economic way. It is part of resource
management. In project management, resource allocation is the scheduling of activities and the
resources required by those activities while taking into consideration both the resource availability
and the project time.
 Staff needed and available are identified for each activity and allocated their respective tasks.

 Staff priority list is generated based on the task allotted to them because some staffs are used for more
than one task.
 A Gantt chart pictorially represents when activities have to take place and which one has to be
executed at the same time.
 The chart represents when staff will be carrying out the tasks in each month. It also shows staff
involved in more than one task.
 When allocating resources the constraints associated is estimated and included in the overall cost.

Step 8: Review Plan

 When a task is completed it leads to the quality review. These quality checks have to be passed before
the activity is completely signed-off.
 Every plan has to be documented and all stakeholders must have agreed to all  constraints and
understand the project.
 There are some steps involved in project plan review: 1. Define the problem 2. Determine the focus 3.
Select the appropriate tools 4. Identify the participants 5. The Project Review process: The team
should consist of folks most intimate with the project including any of the following representatives:
-Project Managers -Product Managers -Development Leads -Quality Leads -Content Experts
-Customer Support Leads -Management. 6. Document the review plan.

Step 9: Execute Plan

 Finally, the execution of the project is drawn with each specified activity as it is approached.
 Detailed planning of later stages is necessary because more information will be available than the
start stage.
 Project planning and execution becomes an iterative process where as each activity which is to be
carried out approaches, they should be reviewed in detail.
Project Scope:

Defining the project scope is a critical part of the project planning process. That’s because the project
scope defines the boundaries of what will and won’t be part of the project work, which is essential when
making the project budget and schedule.

What Is Project Scope?

The project scope is the total amount of work that needs to be done to complete a project. To define it,
project managers must break down the project into the tasks and deliverables that’ll be executed to meet
goals and stakeholder requirements and deliver the project successfully.

Defining the project scope is an integral part of the project planning process because based on the scope,
project managers will assemble their teams, estimate what project resources are needed and determine what
the project plan, schedule and budget will be.

Once the scope of a project has been determined, it needs to be managed through a process known as project
scope management. Project management software helps you manage scope. Project Manager, award-winning
project management software that has robust Gantt charts, helps you to create a project plan, where all of
your scoped tasks are scheduled with assignees and deadlines.

6 Sections of a Project Scope Statement


The Scope Statement is an essential part of any project and is used to outline the results the project will
produce and the terms \ conditions under which the work will be performed.

1. Project Justification
2. Project Objectives
3. Product Scope Description
4. Product Acceptance Criteria
5. Project Constraints
6. Project Assumptions
1. Project Scope Justification

It is critical that you justify "how and why" your project came to be. Clearly describe the business need(s) it
addresses as well as the scope of work to be performed. It is important to address how the project will affect
and be affected by the other related activities.

2. Project Scope Objectives

Objectives are concrete statements describing what the project is trying to achieve. The objective should be
written at a lower level, allowing it to be evaluated at the conclusion of a project to see whether it was
achieved. Using the (SMART) method will assist in creating a well-worded objective.

Specific, Measurable, Attainable/Achievable, Realistic and Time-bound (SMART).

3. Product Scope Description

Scope Description is the features and functions of the products, services, and/or results your project will
produce. It is important to mention that the Project Scope is more work-oriented, (the how's,) while Product
Scope is more oriented toward functional requirements, (the what's.)

4. Product Acceptance Criteria

Acceptance Criteria are the standards required to satisfy the customer's quality expectations and gain
acceptance of the final product. This can be summarized as the process and criteria for accepting completed
products, services, or results. The Acceptance Criteria forms the basis for the Project Quality Plan.

Here are some criteria that should be considered:

 Target dates
 Major functions
 Capacity, accuracy and availability
 Repair times
 Development costs
 Running costs

5. Project Constraints

Constraints define the various restrictions that limit what, when and how you will achieve the goal as well as
how much achieving it can cost.
There are three types of project constraints:

 Technological - relate to the sequence in which individual project activities must be completed.
 Resource - relate to the lack of necessary resources which may force parallel activities to be
performed in sequence.
 Physical - caused by contractual or environmental conditions

The primary purpose is to identify the possible causes of delaying the completion of the project.

6. Project Assumptions

Assumptions are statements that we believe to be true and how you will address uncertain information as you
conceive, plan, and perform your project. Assumptions are identified to add potential risk to a project even
though they may turn out to be false. Assumptions can impact any part of a project life cycle, so it is
important to document and analyze them.

Project Products & Deliverables:

What is Project Deliverable?

Project deliverables refer to all the outputs associated with a project, whether tangible or intangible.
However, the term is more commonly used to refer to any outputs related to a project, regardless of whether
they are submitted at the end of the project.

Type of Deliverables

Deliverables are usually classified as internal deliverables and external deliverables.

1. Internal Deliverables

Internal deliverables are usually deliverables that make a project run, but they are not a part of the product
that the end-users would like to see. They are deliverables which the project generates internally. Project
Management, Configuration Management, Training, and Testing are some examples of internal
deliverables.

2. External Deliverables

External deliverables are usually those that the project delivers to the users or the client. An external
deliverable could be an IT system and subsystems that make it up or the resulting organizational transition
and benefits from a project to reduce the turnaround time of a process.
Project activities

Software Project Management consists of many activities, that includes planning of the project, deciding the
scope of product, estimation of cost in different terms, scheduling of tasks, etc.

The list of activities are as follows:

1. Project planning and Tracking


2. Project Resource Management
3. Scope Management
4. Estimation Management
5. Project Risk Management
6. Scheduling Management
7. Project Communication Management
8. Configuration Management
1. Project Planning: It is a set of multiple processes, or we can say that it a task that performed before the
construction of the product starts.

2. Scope Management: It describes the scope of the project. Scope management is important because it
clearly defines what would do and what would not. Scope Management create the project to contain
restricted and quantitative tasks, which may merely be documented and successively avoids price and time
overrun.

3. Estimation management: This is not only about cost estimation because whenever we start to develop
software, but we also figure out their size(line of code), efforts, time as well as cost.

If we talk about the size, then Line of code depends upon user or software requirement.

If we talk about effort, we should know about the size of the software, because based on the size we can
quickly estimate how big team required to produce the software.

4.Scheduling Management: Scheduling Management in software refers to all the activities to complete in
the specified order and within time slotted to each activity. Project managers define multiple tasks and
arrange them keeping various factors in mind.

5. Project Resource Management: In software Development, all the elements are referred to as resources
for the project. It can be a human resource, productive tools, and libraries.

Resource management includes:

Create a project team and assign responsibilities to every team member

Developing a resource plan is derived from the project plan.

Adjustment of resources.

6. Project Risk Management: Risk management consists of all the activities like identification, analyzing
and preparing the plan for predictable and unpredictable risk in the project.

Several points show the risks in the project:

o The Experienced team leaves the project, and the new team joins it.
o Changes in requirement.
o Change in technologies and the environment.
o Market competition.

7. Project Communication Management: Communication is an essential factor in the success of the


project. It is a bridge between client, organization, team members and as well as other stakeholders of the
project such as hardware suppliers.

8. Project Configuration Management: Configuration management is about to control the changes in


software like requirements, design, and development of the product.
Effort estimation:

Effort estimation is the process of forecasting how much effort is required to develop or maintain a software
application. This effort is traditionally measured in the hours worked by a person, or the money needed to
pay for this work.
Effort estimation is used to help draft project plans and budgets in the early stages of the software
development life cycle. This practice enables a project manager or product owner to accurately predict costs
and allocate resources accordingly.
How to Estimate Cost and Effort in a Software Development Project
1. Map Your Software Development Life Cycle

To start, you need to know all of the steps in your software development life cycle. This is the first formal
project management framework and goes from project planning, analysis and design to implementation,
testing and maintenance. The more information you can add to activities, key roles and deliverables for each
of these stages, the more accurate your software development estimate will be.

2. Check Your Project Requirements

Once you have the software development life cycle completed, it’s time to check your project
requirements and ensure they match those defined by your stakeholders or client. The clearer your project
requirements, the more accurate your software development estimate will be. If you skip this step, it’s almost
impossible to make an accurate forecast of your costs and effort.

3. Make a Work Breakdown Structure

You started to define your activities in the first step, but now you need to collect every task and deliverable
for the project. The best tool for this task is a work breakdown structure (WBS). It helps you collect all of the
necessary steps to get you to the final deliverable of your software development project, which will allow you
to estimate time and costs.

4. Use a Software Estimation Technique

Now that you’ve gathered the above information, the next step is to use a software estimation technique. The
type you use will depend on the project methodology you’ll use for the software development project. We’ll
get into more specifics about software development estimation techniques shortly.

Software Development Estimation Tools


Work Breakdown Structure

The work breakdown structure (WBS) is part of the process of figuring out the time and effort for your
project.
PERT Chart

PERT is an acronym for program evaluation and review technique, also known as a three-point estimate.
A PERT chart is a three-point activity estimating technique that takes into consideration uncertainty and risk.
It does this by taking in three categories of estimates.

The three estimates are most likely (M), which is the most likely cost and time for the project based on a
realistic look at what needs to be done; optimistic (O), which is the best-case scenario for completing the
project; and pessimistic (P), which is the worst-case scenario. PERT then calculates the weighted average by
using the formula: PERT Estimate = (O + 4 x M) + P) / 6.

Product Backlog

The product backlog is an ordered list of what’s needed to be done in order to complete the project. Using the
product backlog is ideal for estimating the length of your project within a certain timeframe. Estimating your
product backlog allows product owners to better prioritize tasks and make decisions about scope and
schedule.

Software Development Estimation Techniques

Here are some techniques you can use to help with software development estimation. They take into account
the details of your task, the resources you have, the rate the cost to time, the duration and whether any third-
party services will be required.

 Bottom-Up Estimation: This is where a project is divided into tasks and subtasks that are easy
to define and manage. This makes it easier to come up with estimates for these tasks. Adding
them up from the bottom to the top is timely but accurate.
 Top-Down Estimation: Conversely, top-down estimation reviews the overall scope of the
project by identifying the major elements of work and making estimations on the effort and time
for them outside of the rest of the project. It creates a rough or ball-park figure at an early stage
of the project and takes less time than the bottom-up type.
 Parametric Estimation: The first step in parametric estimation is pinpointing the requirements,
complexity and technology involved in the development. Then, you compile information on
what work is necessary to complete a task from similar projects. Finally, the cost is found by
empirical relationships between the factors involved and the total tasks in the project. In
parametric estimation, use scalability for accuracy.
 Relative Sizing: This is a type of estimation used by agile teams. It’s done by estimating tasks or
user stories by comparing or grouping them together rather than separately. It’s similar to silent
grouping or affinity estimating as the agile community believes that relative over absolute
estimations is more accurate.
 Wideband Delphi: This is a consensus-based technique useful for estimating the time needed to
complete a task. It relies on experts who answer questionnaires in two or more rounds. After
each round, a facilitator summarizes the findings. Experts then can revise their earlier questions
in the next round.
Infrastructure:
Software development infrastructure refers to the tools, processes, and environments used to create
software applications. In general, the term is used interchangeably with "software development
platform."

When choosing a software development infrastructure, businesses must consider their specific needs and
objectives.

For example, if they need to develop mobile apps, they will need an infrastructure that includes a mobile
device emulator or simulator. On the other hand, if they need to build cloud-based applications, they will
need an infrastructure that includes a cloud computing platform.

Software Development Infrastructure Components


A software development infrastructure typically consists of tools, processes, and services used to
develop, test, deploy, and manage software applications. The most common components of a software
development infrastructure include source control management systems, build servers, testing
frameworks, and deployment pipelines. When all these components are built out, they work together to
provide a streamlined way to develop software applications.

Integrated Development Environment

 An integrated development environment (IDE) is a software application that provides developers


with a graphical user interface (GUI) to manage the codebase and build applications.
 Examples: Visual Studio Code, JetBrains IntelliJ, Eclipse
Issue Tracking and Workflow Management

 An issue tracking system is a software application that helps developers track and manage bugs
and issues.
 Examples: JIRA, Asana, Trello

Source Control Management

 Source control management systems store and track changes to the codebase.
 Examples: Git, GitHub, BitBucket

Code Quality Management

 Code quality management systems help developers ensure that their code meets specific
organization or team standards.
 Examples: SonarQube, PMD, Checkstyle

Application Performance Management

 Application performance management (APM) tools help developers monitor and optimize the
performance of their applications.
 Examples: New Relic, AppDynamics, Dynatrace

Dependency Management

 Dependency management systems help developers manage the dependencies of their


applications.
 Examples: Apache Maven, Gradle, Ivy

Testing Frameworks

 Testing frameworks allow you to execute tests automatically and ensure your organization meets
code quality standards.
 Examples: Selenium, WebDriverIO, Cypress

Continuous Integration

 Continuous integration build servers automatically detect code changes, then build and package
code changes to produce your deployment artifacts.
 Examples: Jenkins, GitLab, TravisCI

Continuous Deployment

 Deployment pipelines provide a mechanism for automatically deploying code changes to your
staging environment and, if wanted, production environments.
 Examples: The tools you use for CD are the same as those for CI.

Containerization Tools

 Containerization tools help developers package their applications and dependencies into self-
contained units.
 Examples: Docker, Kubernetes, Apache Mesos
These are just a few of the most common software development infrastructure components and examples
you may want to research. However, a complete infrastructure can consist of any tools that fill your
organization's needs. The key is to choose the right tools and services for your specific needs .

The Benefits of a Well-Designed Software Development Infrastructure


A well-designed software development infrastructure can benefit businesses by increasing efficiency,
reducing costs, and improving quality control, among other things. By having a clear and concise
framework in place, companies can develop new applications and features more efficiently while
ensuring that existing ones are compatible. Establishing this framework can save valuable time and
money and reduce the likelihood of errors.

In addition, a well-designed infrastructure can help improve communication between different teams and
departments, making it easier to coordinate efforts and identify potential issues. As a result, a well -
designed software development infrastructure can be a valuable asset for any business.

You might also like