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

SoftwareProjectMgt1.3

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

SoftwareProjectMgt1.3

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

Software Project

Management
Dr. Siva.
References
• https://www.geeksforgeeks.org/top-software-development-project-id
eas/#1-portfolio-website
Syllabus
XT5076 SOFTWARE PROJECT MANAGEMENT L T P C
3003
OBJECTIVES:
 To develop an awareness of the need for project planning and management
 To understand workflows of the software management process
 To study about the stages involved in the system development lifecycle process
 To explain the procedures needed to monitor, control and report on quality
 To explain the ways in which project can be done in cost effective ways
UNIT I OVERVIEW OF SOFTWARE PROJECT MANAGEMENT 9
Conventional software management - Evolution of software economics - Improving software
economics - Conventional Vs Modern software project management.
UNIT II SOFTWARE MANAGEMENT PROCESS FRAMEWORK 9
Lifecycle phases - Artifacts of the process - Model based software architectures -Workflows of the
process - Checkpoints of the process.
UNIT III SOFTWARE MANAGEMENT DISCIPLINES 9
Iterative process planning - Organization and Responsibilities - Process automation - Process control
and process instrumentation - Tailoring the process. Project planning - Scheduling - Tracking and
Control - Time and Cost overruns - Project organization - Staffing - Group working - Team dynamics
• UNIT IV MANAGED AND OPTIMIZED PROCESSES 9
• Quality management and ISO 9000 quality assurance method - Configuration management -
Quality
• reviews - Software standards - Tracking of defects - Process improvements - SCI/CMM models -
• Other process models - Data gathering and analysis Principles of data gathering - Data gathering
• process - Software measures - Data analysis - Managing software quality - Defect prevention.
• UNIT V CASE STUDIES 9
• COCOMO Cost estimation model - Change metrics - Case studies.
• TOTAL: 45 PERIODS
OUTCOMES:
Upon completion of the subject, students will be able to:
 Develop project that matches the organizational needs to the most effective software
development model
 Effectively process project workflow
 Managing people and do effective communications among people and do effective planning to
meet changes in software developmental stages.
 Select and employ mechanisms for tracking the software projects and maintaining Quality
 To develop the skills for tracking and controlling software deliverables
• REFERENCES:
• 1. Bob Hughes, Mike Cotterell, “Software Project Management”, 5th edition, Tata McGraw Hill,New
• Delhi, 2009.
• 2. Humphrey Watts, “Managing the software process”, Reading, Massachusetts Addison Wesley,
• 1989.
• 3. Ramesh Gopalaswamy, “Managing Global Software Projects”, Tata McGraw Hill, New Delhi,
• 2006.
• 4. Walker Royce “Software Project Management A Unified Framework”, Pearson Education, 2004.
• UNIT I OVERVIEW OF SOFTWARE PROJECT
MANAGEMENT 9
• Conventional software management - Evolution of software
economics - Improving software economics - Conventional Vs
Modern software project management
Software management and conventional software
management

Why software management?


In one of the studies, it was found that
i) not all projects are successful!! Only 1/3rd were successful.
ii) 82% were late.
iii) 43% exceeded their budget.
The main reason was found to be ‘lack of skills and proven approach to project
management and risk management’.
Question: What is a project?
It is a planned activity. Or a specific plan or design.
Planning is in essence thinking carefully about something before doing – even with
uncertain projects this is worth doing as long as the resulting plans are seen as
provisional.
Different types of software projects
Support of business solutions,
Development of new systems like accounting, order entry etc.,
System migrations from one system (main frame) to Unix based systems, System Migrations from local to
cloud etc.,
Web Application Development: Developing web-based applications and services. (Skills? Java, Windows
and/or Unix, UI skills and tools, Testing, Configuration control, Manager)

Mobile Application Development: Creating applications for mobile platforms like iOS and Android.

Enterprise Resource Planning (ERP) Systems: Implementing and customizing ERP solutions to integrate
various business processes. ( Lot of roles)

Enterprise Resource Planning (ERP) Systems

Supply chain planning systems

Customer Relationship Management (CRM) Systems: Developing and maintaining CRM systems to
manage customer interactions and data.

E-commerce Solutions: Building and maintaining online stores and payment systems.
Business Intelligence (BI) and Analytics: Developing tools for data analysis, reporting, and
decision-making support.

Artificial Intelligence and Machine Learning: Implementing AI/ML solutions for predictive analytics,
automation, and more.

Internet of Things (IoT) Applications: Developing solutions that connect and manage IoT devices.

Cybersecurity Solutions: Creating and maintaining systems to protect data and applications from
cyber threats.

Software Integration: Integrating various software systems to work together seamlessly.


API Development and Management: Creating and maintaining APIs for system interoperability.

Legacy System Modernization: Updating or replacing outdated systems with modern technologies.

DevOps Implementation: Setting up continuous integration and continuous deployment (CI/CD)


pipelines, automating infrastructure, and improving development workflows.

Big Data Solutions: Implementing systems for handling and analyzing large datasets.

Blockchain Development: Creating applications that utilize blockchain technology for secure and
decentralized transactions.
Robotic Process Automation (RPA): Developing automated processes to handle repetitive tasks.
Virtual and Augmented Reality: Creating applications for VR and AR experiences.

Compliance and Regulatory Solutions: Developing systems to ensure compliance with industry
regulations and standards.
Performance Optimization: Improving the performance and scalability of existing systems.

User Experience (UX) and User Interface (UI) Design: Designing and developing intuitive and
effective user interfaces and experiences.

Quality Assurance and Testing: Developing automated and manual testing processes to ensure
software quality.

Cloud Native Development: Building applications designed specifically for cloud environments to
leverage cloud services and scalability.

Chatbot and Conversational AI Development: Creating intelligent chatbots for customer service and
other interactions.

Gaming Development: Developing video games for various platforms, including PC, consoles, and
mobile devices.
Health Informatics Systems: Developing software for healthcare management, patient records, and
telemedicine
What types of roles to start with?
• Stage 1
• Software testing
• Code developer
• Support engineer
• DB and Operating system support team
• Network management
• Stage 2:
• Design engineer
• Configuration management
• Pre sales support
• Stage 3
• Module leader
• Test leader
• Support junior head
• Stage 4
• Project manager
• Sales support – proposal preparations
• In addition to these, there are roles in academy, quality, HR and Finance roles
Factors that distinguish projects
• Non routine task is involved
• Planning is required
• Specific objectives are met or specific product to be created.
• Pre determined time span
• Work is carried out for some one else
• Involves several specialisms
• A temporary work groups formed to carry out the tasks
• Work in several phases
• Resources are constrained
• Project is large and complex
• In addition,
Software engineering
Stages in software development/implementation
Here are the common stages:
Requirement Analysis and Planning:
Requirement Gathering: Collecting detailed requirements from stakeholders.
Feasibility Study: Assessing the technical, financial, and operational feasibility.
Project Planning: Defining project scope, timelines, resources, and deliverables.
System Design:
High-Level Design (HLD): Creating an architectural design, including system components and their
interactions.
Low-Level Design (LLD): Detailing the internal design of each system component, including data
structures and algorithms.
Implementation (Coding):
Development: Writing code based on the design specifications.
Unit Testing: Testing individual components for functionality.
Integration and Testing:
Integration Testing: Combining individual components and testing their interactions.
System Testing: Testing the complete system for compliance with requirements.
Performance Testing: Assessing the system's performance under various conditions.
Security Testing: Ensuring the system is secure from vulnerabilities.
User acceptance setting and sign-off
Deployment:
1. Deployment Planning: Preparing for the deployment, including data migration and environment setup.
2. Release: Deploying the system to a production environment.
3. Beta Testing: Conducting limited release to gather feedback and identify issues.
Maintenance:
Monitoring: Continuously monitoring the system for performance and issues.
Bug Fixes and Updates: Addressing any bugs, security vulnerabilities, and performance issues.
Enhancements: Implementing new features and improvements based on user feedback and changing
requirements.
Review and Evaluation:
Post-Implementation Review: Evaluating the project against initial goals and objectives.
Lessons Learned: Documenting successes and areas for improvement for future projects.
End-of-Life (EOL) and Decommissioning (if applicable):
Decommissioning Planning: Planning the phase-out of the system.
Data Migration/Archiving: Ensuring data is migrated to new systems or archived properly.
System Shutdown: Properly shutting down and decommissioning the old system.
These stages provide a structured approach to software development, ensuring that all aspects of the project
are carefully planned, executed, tested, and maintained. Different development methodologies, such as
Waterfall, Agile, and DevOps, may adapt or iterate through these stages in various ways.
Different skill sets
• Operating system
• Database
• Requirement gathering, proto type, design architect
• Coding in various languages and tools
• Software testing
• Support to the customers
• Functional and technical skills, Domain expert
• Software estimation, costing, pre sales etc.,
Software project management - activities
• Feasibility study
• Planning
• Project execution
Feasibility study
Assesses whether the project is worth doing.
Requirements can be fuzzy and contradicting
Development like costs are to be estimated
Feasibility study itself can be a project
Planning
For larger projects, a rough cut planning will do in the beginning
Stage (i) --- detailed plan for stage 1 simultaneously Stage (i+1) rough cut
planning.
Project execution:
Design and implementation sub phases.
ISO 12207 software development cycle
Requirements
Requirement analysis
System Architecture design
Requirement analysis

Design
System

Architecture design
Requirement analysis

Code and Test


Detailed design
Softw

Code and Test


are

Integration
Qualification test
System

Integration
Qualification Test
Installation, Acceptance and Support
Softw

Installation
are

Acceptance and Support.


Different issues that can arise in the planning
• Requirement analysis:
• Requirements can relate to a function – what it should do –
• can be a quality requirement – how well the functions should work
• Architecture design
• Identify the components – Can be software or hardware
• Can be available off the shelf or yet to be developed
• Detailed design: A component to be divided into small software units that can be separately
coded and tested.
• Code and test: Writing the code for units. Testing should be done at this stage and debugging
should be complete.
• Integration: the components are tested together to see whether all the requirements are met.
Combining software units in conjunction with hardware units and user interactions.
• Qualification testing or system testing - Testing whether all the requirements are met.
• Installation : Loading the necessary standing data. Setting up parameters. User training is to be
performed.
• Acceptance support: Resolution of problems with newly installed system.
Plans , methods and methodologies
• What are plans?
Plans are some idea of method of work.
• Example: Test a product after the development:
i) Understand the requirements of the software (functional and if required
technical)
ii)Devise and write test cases for each requirement
iii) Create test scripts and expected results
iv) compare with the actual results
• Method : - type of activity
• Plan: for each activity, start and end dates,
• Who will carry out?
• What tools and materials
Categorization of software projects
• Compulsory vs voluntary users
• Information systems and embedded systems
• Outsourced projects: sometimes outsourcing certain sub-projects
may be commercially needed or even technical. Management of
those tasks are to be part of the main project.
• Object driven development:
Projects:
1)produce a product
2) To meet objectives: May be ways to reduce costs and/or
improve the efficiency
Stake holders
• Those who have interest in the project
Categories
1) Internal to the project: those under direct control of the
project manager
2) External to the project but member of the organization: Ex:
testing team (can be even from different organization)
3) External to both of the above: Ex: Customers, contractors who
carry out the work for the project
Important: A communication plan is to be worked out among all stake
holders.
Setting objectives
• Objectives focus on the desired objectives of the project.
• Different types of stake holders may have different objectives and the project manager has
to reconcile
• A part of stake holders who own the project and they set the objectives.
• Project objectives reflect the shared intensions of the project.

• Examples:
• Customers can order our products online
• Building an e commerce website.
• Sometimes different business areas can be stake holders. (Example SAP, Marketing, HR
etc.,).
• In this case, there should be project authority to be identified for overall authority.
• This authority is known as steering committee with overall responsibility for setting ,
monitoring and modifying objectives. The project manager runs the project day to day
basis, but regularly reports to steering committee.
Sub objective
• Example:
What it should not be: Reducing staff costs such that software application finances
itself.
Reason: It’d affect the operational management of the delivered system
Practical objective. Keep the costs within the budget.
General guidelines:
i)The objectives should be specific: Concrete and well defined
ii)Measurable: Example: Reduce customer complaints than improve customer
satisfaction.
iii) Achievable:
iv) Relevant: (to the true purpose of the project)
v) Time constrained: A defined point in time by which the objective should be
achieved.
Business case
• Justification for the project (Ex: Not just for joining the bandwagon.)
• The efforts and the expenses should be worthwhile in terms of the
benefits.
• Cost benefit analysis is a part of feasibility study.
• Example for business model:
• A new web based application would increase the sales thus profit.
• Supply chain planning
• Project plan should ensure
• The costs not going up
• Features of the system not reduced
• Delivery date not delayed.
Project success
• Project objectives
• Delivering agreed functionality
• With the required level of quality
• On time
• Within budget
• Even after achieving the above, there need not be successful business
case.
• Ex: A new game
Management
Management involves the following
activities
i) Planning: deciding what is to be
done
ii) Organizing – Arrangements Project Project monitoring and
iii) Staffing planning control
iv) Directing : Giving instructions
v) Monitoring Project plan revision
Project
vi) Controlling closing
vii)Innovating
Frequent revision is required depending on
viii) Representing – liaising with how the project proceeds.
clients, developers, users , stake
holders
Aim of the project management
• To ensure that the software development proceeds as planned.
Main activities of the project mgt
• Estimation: Project attributes like cost, duration and effort are to be
estimated.
• Cost: How much is going to cost for the completion of the project
• Duration: how long it is going to take for the completion
• Effort: how much effort necessary for the completion of the project
• The effectiveness of scheduling, staffing, Risk management and other
plans such as quality , config management etc., depends on the
accuracy of the above four.
Mgt control Discussion of data transfer project
• Project is to transfer the data from manual to an electronic database
How to inform the top mgt?
in number of records transferred or %?
If one branch or more are slower, what stpes can be taken? (moving the
staff?)
Analyse the impact of the decision.
All these mean that the project planning is a dynamic activity.
Water fall model
Conventional project mgt
Problems with the old model
Late risk resolution A serious issue associated with the waterfall lifecycle was the lack of early risk
resolution.
Figure 1.3 illustrates a typical risk profile for conventional waterfall model projects. It includes four distinct
periods of risk exposure, where risk is defined as the probability of missing a cost, schedule, feature, or
quality
goal. Early in the life cycle, as the requirements were being specified, the actual risk exposure was highly
unpredictable.
• Adversarial Stakeholder Relationships:
• The conventional process tended to result in adversarial stakeholder relationships,
in large part because of the
difficulties of requirements specification and the exchange of information solely
through paper documents that
captured engineering information in ad hoc formats.
• Focus on Documents and Review Meetings:
• The conventional process focused on producing various documents that attempted
to describe the software
• product, with insufficient focus on producing tangible increments of the products
themselves. Contractors
• were driven to produce literally tons of paper to meet milestones and demonstrate
progress to stakeholders,
• rather than spend their energy on tasks that would reduce risk and produce quality
Traditional software management performance
Barry Boehm's "Industrial Software Metrics Top 10 List” is a good, objective characterization of
the state of software development.
1. Finding and fixing a software problem after delivery costs 100 times more than finding and
fixing the
problem in early design phases.
2. You can compress software development schedules 25% of nominal, but no more.
3. For every $1 you spend on development, you will spend $2 on maintenance.
4. Software development and maintenance costs are primarily a function of the number of source
lines
of code.
5. Variations among people account for the biggest differences in software productivity.
6. The overall ratio of software to hardware costs is still growing. In 1955 it was 15:85; in 1985,
85:15.
7. Only about 15% of software development effort is devoted to programming.
8. Software systems and products typically cost 3 times as much per SLOC as individual software
programs. Software-system products (i.e., system of systems) cost 9 times as much.
Assignment : (Start working)
• Project plan:
• Introduction
• Back ground (business case)
• Project objectives
• Constraints
• Methods
• Project products
• Activities to be carried ut
• Resources to be used
• Risks
• Mgt of the project
• Organizational responsibilities
• Management of quality
• Configuration management
Software economics
Basic definitions
Economics:
‘Description and analysis of production, distribution and consumption of
goods and services’
Modern definition:
‘How people make decisions in resource limited situations.’
Macro economics:
‘People making decisions in resource limited situations on a national or
global scale’.
Example: GST increased for imported gold’.
Micro economics
‘People making decisions in resource limited situations on a personal scale’.
Example: what software to buy for an organization.
Why resource constrained?
• The software products have to work under the constraints of limited
memory and computing power.
• Software engineering economics techniques are useful in making
decisions when there are resource constraints.
• Examples:
• Feasibility Phase. How much should we invest?
In the present information system analyses (user questionnaires and interviews,
current-system analysis, workload characterizations, simulations, scenarios,
prototypes) for an appropriate definition and concept of operation for the
system which is to be implemented?
• Plans and requirements phase:
How rigorous the requirements to be?
How much to be invested in requirements validation?
(automated completeness, consistency, and traceability
checks, analytic models, simulations, prototypes)
• Product design
Does the product to make use of the complex existing product that eed not
completely meet our requirements?
• Programming phase
Selection of data storage and retrieval schemes
• Integration and testing phase
• How much tests are to be carried out before the release?
• Maintenance phase:
Given many product improvements, how much we can accommodate?
• Phase out
Given a old product not fit for change, should we buy a new one? Work on the
present and use the same etc.,
Major application – Estimation of software costs
• Major Software Cost Estimation Techniques
• Algorithmic Models for Software Cost Estimation
• Outstanding Research Issues in Software Cost Estimation.

You might also like