SoftwareProjectMgt1.3
SoftwareProjectMgt1.3
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
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)
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.
Legacy System Modernization: Updating or replacing outdated systems with modern technologies.
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
Integration
Qualification test
System
Integration
Qualification Test
Installation, Acceptance and Support
Softw
Installation
are
• 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.