Learning Resource
On
Software Project Management
         Chapter-1
    Introduction to SPM
        Prepared By:
        Kunal Anand
  Assistant Professor, SCE
 KIIT, DU, Bhubaneswar-24
                              •1
                                                      Talkflow
  This chapter includes the brief discussion on:
   • Software, Project and Management
   • How are software products different from other
     kinds of projects?
   • Project Management Principles
   • Activities covered under project management
   • Why are software projects challenging to manage?
   • What is the necessity of software project
     management?
1/5/2024             School of Computer Engineering
                                                             •2
                                                      Software & Project
• Software
     – A collection of programs
     – Combined in a package
     – To perform different applications
• Project
     – A temporary activity but with a proper plan
     – Performed by people in formally organized group
     – To produce a unique product or service by adopting
       standard establishment and practices.
1/5/2024                   School of Computer Engineering              •3
                                                          Jobs vs Projects
  • Jobs – repetition of very well-defined and well-understood
    tasks with very little uncertainty
  • Exploration – e.g., finding a cure for cancer: the outcome
    is very uncertain
  • Projects – in the middle!
1/5/2024                 School of Computer Engineering
                                                                         •4
                           Characteristics of Projects
 A task is more ‘project-like’ if it is:
     • Non-routine
     • Planned
     • Aiming at a specific target
     • Carried out for a customer
     • Carried out by a temporary workgroup
     • Involving several specialisms
     • Made up of several different phases
     • Constrained by time and resources
     • Large and/or complex
1/5/2024                School of Computer Engineering
                                                         •5
                                                          Management
• According to Harold Koontz, “Management is the art of
  getting the work done through people in formally organized
  groups.”
• Management is an individual or group of individuals that
  accepts the responsibilities to run an organization.
• The salient features of management:
   – It is one or group of individuals who plan, organize, direct
     and control all the essential activities of the organization.
1/5/2024                 School of Computer Engineering            •6
                                  Features of Management
• They don’t work alone; rather, they motivate people to do the
  work and coordinate all the activities to achieve well-defined
  objectives.
• Management is a continuous and never-ending process.
• It is “Result Oriented”.
• It is dynamic in nature.
• Management may be aided but not replaced by computers.
• It follows established principles and rules.
1/5/2024                 School of Computer Engineering       •7
           Why is Project Management important?
• Large amounts of money are spent on ICT e.g., the UK
  government in 2003-4 spent £2.3 billion on contracts for ICT
  and only £1.4 billion on road building
• Projects often fail – Standish Group claim only a third of ICT
  projects are successful. 82% were late, and 43% exceeded their
  budget.
• Poor project management is one of the major factors in these
  failures ,
1/5/2024                 School of Computer Engineering
                                                              •8
           Are software projects different from other
                                             projects?
•   Software projects differ from other type of projects in
    following aspects:
      • Tangible vs nontangible
      • Complexity
      • Flexibility
      • Invisibility
      The above issues make software more problematic to build
      than other engineered artifacts.
1/5/2024                 School of Computer Engineering
                                                            •9
           Contract Management vs Technical Project
                                      Management
Projects can be:
• In-house: clients and developers are employed by the same
  organization
• Out-sourced: clients and developers employed by different
  organizations
• ‘Project Manager’ could be:
   – a ‘contract manager’ in the client organization
   – a technical project manager in the supplier/services
     organization
1/5/2024               School of Computer Engineering
                                                         •10
       Activities covered by project management
   • Feasibility study: The sole purpose is to decide whether the
       project is doable.
   • Planning: If the feasibility study indicates the proposed work is
       viable, then the project planning can start. Here, the essential
       aspects like scheduling, budget and resource allocation, staffing,
       etc., are planned.
   • Execution: Once the above two steps are done, one can start
       with the project execution. Usually, the execution contains two
1/5/2024                      School of Computer Engineering
       sub-phases named design and implementation.                        •11
                                         The SDLC (ISO 12207)
converting ‘requirements                                     Requirement elicitation
                                                             Resource requirement
                                                             Software requirement
                                                            Fulfilling the requirement
                                                            Setting up standing data
                                                            Implementing agreed
                                                            extensions and improvements
   1/5/2024                School of Computer Engineering
                                                                               •12
                                                 ISO 12207 life-cycle
• Requirement analysis
   – Requirements elicitation: what does the client need?
   – Analysis: converting ‘customer-facing’ requirements into
     equivalents that developers can understand
   – Requirements will cover
       • Functions
       • Quality
       • Resource constraints i.e., costs
• Requirement specification
   – The analysed requirements are documented in a formal
     document known as Software Requirement Specification
     document.
1/5/2024                School of Computer Engineering
                                                                   •13
                                                ISO 12207 life-cycle
• Architecture design
   – Based on system requirements
   – Defines components of system: hardware, software,
     organizational
   – Software requirements will come out of this
• Code and test
   – Of individual components
• Integration
   – Putting the individual components together to make the
     overall system.
1/5/2024               School of Computer Engineering
                                                                  •14
                                                   ISO 12207 life-cycle
• System testing
   – Testing the system (not just the software)
• Installation
   – The process of making the system operational
   – Includes setting up standing data, setting system
     parameters, installing on operational hardware platforms,
     user training etc.
• Acceptance support
   – Including maintenance and enhancement
1/5/2024                  School of Computer Engineering
                                                                     •15
                    Plan, Method and Methodology
• A plan for an activity must be based on some idea of a work
  method.
• For example, if someone is asked to carry out the testing of a
  software product then it may be possible that you won't have
  any idea about the software, but you could assume some basic
  activities, as mentioned below, you need to perform while
  testing.
   – Analyze the requirements for the software.
   – Devise and write test cases to check whether each
      requirement has been okay.
   – Create test scripts and expected results for each test case.
   – Compare the actual results and expected results and make
      the observations.
1/5/2024                 School of Computer Engineering       •16
                                                       contd…
• On the other hand, a method relates to a type of activity in
  general, a plan takes that method and converts it to actual
  activities, identifying each activity:
   – Its start and end dates
   – Who will carry it out
   – What tools and materials, including information, will be
      needed?
• The output from one method might be the input to another.
• Methods or techniques are often grouped into methodologies
  such as object-oriented design.
1/5/2024              School of Computer Engineering          17
               Some ways of categorizing projects
   • Distinguishing different types of projects is essential as
     different types of tasks need different project approaches,
     e.g.
      – Voluntary systems (e.g., computer games) vs
         Compulsory systems (e.g., order processing system)
      – Information systems (e.g., Stock market system) vs
         Embedded systems (e.g., Systems that control
         machines)
      – Objective-based (e.g., a complete security system) vs
         Product-based (e.g. a specific software that will be
         used in a security system )
      – Product development (e.g., In-house projects) vs
         Outsourced (e.g., projects that outside vendors will do)
1/5/2024                  School of Computer Engineering
                                                                    •18
                                                                Stakeholders
• These are people who have a stake or interest in the project.
• In    general,   they    could                           be   users/clients   or
  developers/implementers.
• They could be:
   – Within the project team
   – Outside the project team, but within the same organization
   – Outside both the project team and the organization
• Need to define common project objectives.
1/5/2024                  School of Computer Engineering
                                                                                •19
                                                          Setting Objectives
  •   Objectives focus on the desired outcomes of the project
      rather than tasks within it.
  •   Answering the question ‘What do we have to do to have a
      success?’
  •   Need for a project authority
       – Sets the project scope
       – Allocates/approves costs
  •   Could be one person - or a group
       – Project Board
       – Project Management Board
       – Steering committee
1/5/2024                 School of Computer Engineering                    •2
                                                                            0
                                                         Objectives
• Informally, the objective of a project can be defined by
  completing the statement:
   “The project will be regarded as a success
       if……….
       …………”
• Objectives are like post-conditions for the project, focus on
  what will be put in place, rather than how activities will be
  carried out.
1/5/2024                School of Computer Engineering
                                                                 •21
                                       Goals/sub-objectives
• These are steps along the way to achieving the objective.
  Informally, these can be defined by completing the sentence
• To reach objective X, the following must be in place
   A……………
   B……………
   C…………… etc
•   Often, a goal can be allocated to an individual.
•   Individuals might have the capability of achieving goals on
    their own, but not the overall objective e.g.
       • Overall objective – user satisfaction with software product
       • Analyst goal – accurate requirements
       • Developer goal – reliable         software
                            School of Computer Engineering
1/5/2024
                                                                  •22
                                            Project success/failure
   • Degree to which objectives are met
                          scope (of deliverables)
            time                                           cost
 • In general, if, for example, the project is running out of time,
   this can be recovered by reducing scope or increasing costs.
 • Similarly, costs and scope can be protected by adjusting
   other corners of the ‘project triangle’.
1/5/2024                  School of Computer Engineering
                                                                  •23
                        Reasons for Project Failure
• Reasons that make a project “Failure”:
   – Insufficient resources
   – Unrealistic timeline
   – Unclear specifications
   – Change in scope
   – Disagreement among the stakeholders
   – Bad planning
   – Absence of suitable project management mechanism.
1/5/2024               School of Computer Engineering
                                                         •24
                  How a Project gets to success???
• Factors contributing to the success of a project include:
   – A comprehensive, realistic plan.
   – The plan must be up-to-date.
   – Resolving conflicts among stakeholders to gain consensus
     over the outcome.
   – Reasonable resource requirements and their optimal
     utilization.
   – Build an efficient team and take good care of them.
   – Stakeholders must be informed on a regular basis.
   – Willingness to change or try new ideas.
   – Be not only a manager but also a leader.
1/5/2024               School of Computer Engineering      •25
                                Measures of Effectiveness
• Measure of effectiveness is a practical method of checking that
  an objective has been met.
   – How do we know that the goal or objective has been
     achieved?
     – By a practical test, that can be objectively assessed.
        • e.g., for user satisfaction with software products:
            – Repeat business – they buy further products from
              us
            – Number of complaints – if low etc.
1/5/2024                 School of Computer Engineering
                                                               •26
                                        What is Management?
This involves the following activities:
• Planning – deciding what is to be done
• Organizing – making arrangements
• Staffing – selecting the right people for the job
• Directing – giving instructions
• Monitoring – checking on progress
• Controlling – acting to remedy hold-ups
• Innovating – producing solutions when problems emerge
• Representing – liaising with clients, users, developers and
  other stakeholders
1/5/2024                School of Computer Engineering
                                                           •27
                                                          Project Planning
• Carried out before development starts.
• Important activities:
   – Estimation (cost, duration, effort)
   – Scheduling
   – Staffing
   – Risk management
   – Miscellaneous plans
1/5/2024                 School of Computer Engineering
                                                                        •28
                                 Management control
1/5/2024   School of Computer Engineering
                                                 •29
                                               Management control
• Data – the raw details
   e.g., ‘6,000 documents processed at location X.’
• Information – the data is processed to produce something
  meaningful and useful
   e.g., ‘productivity is 100 documents a day.’
• Comparison with objectives/goals
   e.g., we will not meet the target of processing all documents
     by 31st March
• Modelling – working out the probable outcomes of various
  decisions, e.g., if we employ two more staff at location X, how
  quickly can we get the documents processed?
• Implementation – carrying out the remedial actions that have
  been decided upon
1/5/2024                 School of Computer Engineering
                                                                •30
           Traditional vs Modern Project Management
• Projects are increasingly being based on either tailoring some
  existing product or reusing certain pre-built libraries.
• Facilitating and accommodating client feedbacks
• Facilitating customer participation in project development
  work
• Incremental delivery        of         the          product   with   evolving
  functionalities.
1/5/2024                 School of Computer Engineering
                                                                             •31
  •   Planning incremental delivery: Old-Step wise execution
      (initiation, plan, monitor, control) New-RAD, Adaptive
      short-term planning, incremental deliveries, extreme
      project management.
  •   Quality management: Increase of awareness on product
      quality, assessment of project progress and tracking
      quality.
  •   Change management: Old- change in requirement not
      entertained, Now- customer suggestions are actively
      considered, customer feed back taken, product
      development is carried out with greater functionalities.
1/5/2024                  School of Computer Engineering
                                                             •32