Download - Lecture 2 - Project Management Overview II
http://en.wikipedia.org/wiki/Fair_use 5
Software Development
Construction of useful software systems.
System components include:� Hardware (Server, Desktop, Printers, Wires, Routers …)
� People (Wetware -- fluid, dynamic, unstable?)� Software (ERP, CRM, Operating Systems, Telecom/Security/Analytics/Integration software)
Not everything ‘constructed’ from a scratch!
6
Why do we develop/implement software?
To retain existing customers and add new customers
To improve customer relationships
To improve productivity/efficiency (within an organization orteam)
To upgrade a technology To support changed business processes and many
other To improve business value reasons!!
7
Business Context
Any organization has three primary interacting entities:
Clients (Downstream - they buy/get from organization)
Employees (Middle layer, provides knowledge/technical know-how for organisational strategy and operations)
Suppliers (Upstream – they provide things to the organization)
Suppliers
Organization
Customers 8
Business Context (cont.)
Organization can be a single person (or) much larger� An entity that is “organized to deliver some service/product”
From a business perspective, software systems are built tooptimize the key relationships with� Supplier: Reduce cost, improve predictability/quality
� Client: Keep existing clients, increase client base
� Employee: Increase productivity, retain talent etc.
These optimizations help to achieve business goals
9
Drivers of Software Development
What are the main drivers to consider?
Pain/pleasure points of customer and/or clients
Adding Business value
Exposure to “environment” – Touch points outside organisation
New/changed technologies
Legal and social considerations
10
What is a project? A temporary endeavour undertaken to accomplish a uniquepurpose/goal.
Usually involves several people performing interrelatedactivities.
Requires efficient and effective use of resources to complete theproject in a timely manner.
Significant attributes of a project:� Requires resources (of many kinds)
� Has a primary sponsor or customer,
� Involves uncertainty.
12
IEEE PMBOK
“A project is a temporary endeavor undertaken to create aunique product, service, or result. Temporary means thatevery project has a definite beginning and a definite end.Unique means that the product, service, or result is different
in some distinguishing way from all similar products, services,or results.”
(Source: IEEE 1490 - Project Management Body of Knowledge)
13
Project types - Complexity
How would you rate the following projects in terms of complexity.
� Amending a financial computer system to deal with a commonEuropean currency
� Putting a robot vehicle on Mars to search for signs of life
� Writing an operating system for a new computer
� A second-year programming assignment for a computing student
� Getting married
14
Software Projects
Almost all software products are obtained via projects
Project Concerns = Deliver on time and within budget
Achieve Interdependent &Common Goals Limited Resources
The Project Team is theprimary Resource!
15
Software Projects (cont.)
Distinguish between software projects:
designed to provide a service to a single client (internalin a company, or external)
designed to produce a product for sale.
In each case the project results in a “product”, but often inthe former case above, the project will be designated as a
“service provision” project, whilst in the latter case, it will bedesignated as a “product development” project.
16
Software Project vs. Other Project
Invisibility - Non physical material
Complexity - Per dollar, how much to pay on a task?
Conformity - Individual is inconsistent
Flexibility - Changes to deliverables
17
Project - an Engineering Perspective
Project Inception
P
rototyping
Elicitation
Validation
DesignSDLC model - Compartmentalisation
Testing
Maintenance
Does thissound
familiar?
CodingDeployment
Analysis
Phase Out
19
Project - a Management Perspective
Project Inception
Estimating
Planning Tracking
Management modeldefines how, when,
Measuring
Scope Definition
Scheduling
where, by whom. Resource Allocation
Risk assessmentBudget
Phase Out
21
An IT Project Methodology
What is Project Management?
Project Management = Plan the work and work the plan.
Basic Management Functions:
Planning: define out what needs to be done
Organizing: who does what (and when)
Staffing: recruiting and motivating personnel
Directing: ensure team acts as a (coherent) whole
“Systematizedcommon
sense!!”
Monitoring (Controlling): detect plan deviations + corrective actions
Innovating: develop new solution
Representing: liaising with clients, users, developer…22
Why Do Projects Go Wrong?
Too many people say “it’s management problems” or “it’speople problems”
Often it is…. But
it is sometimes because of faulty planning! And sometimes lack of clear objectives/goal
23
Software Development Lifecycle Model
A Software Development Lifecycle (SDLC) model isa process model for developing software-intensivesystems -“Set of activities and their relationships to each otherto support the development of a software system.”
(Bruegge and Dutoit)
25
Macro Steps vs. Micro Steps Every SDLC model defines a process as an order of macrodevelopment steps
may also involve repetition of macro steps ?.
Every macro step may contain a number of micro steps
A specific macro/micro step always has the same purposeand results in a similar outcome
E.g., every implementation step will always produce executablecode (and not suddenly requirements)
An SDLC model defines a specific order ofmacro and micro steps.
26
The Classical Software Lifecycle
Does thisThe classical softwarelifecycle models thesoftware developmentas a step-by-step“waterfall” between thevarious developmentphases.
RequirementsCollection
Analysis
Design
Implementation
soundfamiliar?
Testing
Maintenance
The waterfall model is often problematic because:• requirements must be frozen early in the life-cycle
• requirements are validated late
27
The Waterfall Model
RequirementsCollection
Analysis
Design
Implementation
Testing
Maintenance
The Waterfall model is due to Winston Royce - look up his original paper athttp://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf
28
Problems with Waterfall Model (cont.) No insight on effectiveness of transformation from one artefact to anothertakes place
� how effective are requirements turned into a design?
Requirements needed to be frozen at an early stage in thedevelopment
� no guidance on how to handle changes to a requirement during coding
Too abstract to convey the complex process steps required to resolvethe myriad of problems which arise at all stages of a softwaredevelopment.
No recognition that software development is part science, part art. But: waterfall is quite adequate for small, well-defined and well-scopedproblems!
29
Iterative Development (Incremental)
In practice, development is often iterative, and activitiesprogress in parallel (this has partly inspired recentapproaches known as “agile development”).
RequirementsCollection
Maintenance through iteration
Analysis
Testing based on requirements
Testing
Testing throughout implementationValidation through prototyping
Implementation
DesignDoes this
soundfamiliar?
Design through refactoring
30
Iterative Development (cont.)
Pros Cons
Cost of accommodatingchange is reducedCustomer’s feedback isquick
Rapid delivery anddeployment
Process is less structured
Upfront resource commitments of all types
31
Scrum - an Agile Development Method
3
Reuse-oriented Software Engineering
Reuse the component that aims to meet similar goal
Requirement Component RequirementSpecification Analysis Modification
System Development System DesignValidation and Integration with Reuse
Coping with Change Change is inevitable in large software projects
There are plenty of reasons for change� Client pressure
� New technology
� Business process changes
35
Project Management Activities
Feasibility • Is it worthStudy doing?
Plan
RequirementElicitation & Specification Design/Coding
Analysis
• How do wedo it?
ProjectExecution
Verification &Validation
• Do it!!
Implementation Maintenance
38
Project Forces
Time
Scope
Quality
Cost
41
Project Forces (cont.)
“The way the software development game is played is thatstakeholders can pick the values of three of thefour forces. The fourth value is a consequence of the choice
of the other three values.”Kent Beck, eXtreme Programming Explained, 2000.
42
Scope and Objectives
In order to start a project, you must set clearscope and objectives.
� Objective identify the general goals of the project
� Scope identifies the primary functions that the software is toaccomplish, and bounds these functions in a quantitative manner.
Objectives must be realistic and measurable� Objectives are concrete statements describing what the project is
trying to achieve. Written at a lower level, so that it can beevaluated at the conclusion of a project to see whether it was
achieved or not.
� SMART is normally used to describe well-defined objectives 43
Objectives
Do these objectives sound appropriate?
� To implement the new application on time and within budget� To implement the new software application with the fewestpossible software errors that might lead to operational failure
� To design a system that is user-friendly
� To produce full documentation for the new system
44
Software QualityBut what is Software Quality?
Depends on who you ask Users will judge it based on fitness for purpose and faultfrequency
Developers will judge it based on how technically sound it is and how easily it can be maintained
Operations and Support staff will judge it based on ease and use and the ‘fit’ with their needs
Managers will judge based on development cost, conflicts thatit causes.
45
Software Quality (cont.)
Software Quality is conformance to:
explicitly stated functional and performance requirements, explicitly documented development standards, implicit characteristics that are expected of all professionallydeveloped software.
More about Software Quality later
46
Customer Expectations
“A [real] customer wants his/her software product to cover allcurrent and future needs, built at no cost, and deliveredyesterday. And of course the customer will change his/her
mind several times along the way!”Rick Harvey, CA Labs
One of the key issues in any software project is to managecustomer expectations!
� this often means to help customers to define project scope.
47
Balance of Power
Business decisions should be made by business people(and not technical people)
Technology decisions should be made by technical people(and not business people)
48
Comments ?
“Sins” of Software Projects
Volatile Requirements (and too big a scope)
Lack of understanding between clients and developers
Poor Estimation and Planning
Unrealistic Schedules and Budgets (which often force“fiction” into the estimation and planning process!)
Inadequate Controls
Insufficient focus on Quality Control (eg, inadequate testing)
…
49
Key Ingredient to Successful Software
51