Devon M. Simmonds University of North Carolina, Wilmington Introduction to Software Project Management CSC450Software Engineering
Outline • Introduction to Software project management • Project management activities • Teams • Project management process • Scoping • Estimation • Scheduling • Risk analysis • Project planning template • Project management problems
What is a Project? A project is a sequence of unique, complex, and connected activities having one goal or purpose and that must be completed by a specific time, within budget, and according to specifications.
What is Project Management? • Project management is a set of principles and tools for • Defining • Planning • Executing • Controlling . . . and • Completing a PROJECT
Software Project Management • Software project management is the organization and management of project resources to create or evolve software within specified, budgetary, time and scoping constraints. • A software project is a set of activities that use resources to realize specified software development objectives.
Project Management Activities • Planning • Description of tasks to be done • Estimating resources • People, time, hardware, software, money, etc. • Acquiring resources • Assemble project teams • Assigning tasks & organizing work • Allocating resources • Assessing and mitigating risks (i.e., Risk Management) • Controlling project execution • Tracking and Reporting progress • Analyzing results • Forecasting future trends in the project • Quality Management
Why is Project Management Important? • Organize your approach • Generate a credible schedule • Track progress and control your project • Identify where to focus your efforts • Identify problems early – before they are crises • Saves you TIME….MONEY • If you fail to plan, you PLAN TO FAIL
The 4 P’s of Software Project Management • People — the most important element of a successful project • Product — the software to be built • Process — the set of framework activities and software engineering tasks to get the job done • Project — all work required to make the product a reality
People • People Capability Maturity Model • To assess organizations ability to attract, develop, motivate, organize, retain people. • PCMM key practice areas • Staffing, communication and coordination, work environment, performance management, training, compensation, career development, team development, etc.
People: Who needs software? • Most software is built in organizations for people with specific needs. • A stakeholderis a anyone who has an interest (or stake) in the software being completed • Senior managers, project managers, practitioners, customers, end users. • A user is someone who will need to use the software to perform tasks. • Stakeholders may or may not be users • For example, a senior manager (like a CEO or CTO in a company) will usually have a stake in the software that is built (since it affects the bottom line), even if she won’t ever use it.
Stakeholders • Senior managerswho define the business issues that often have significant influence on the project. • Project (technical) managers who must plan, motivate, organize, and control the practitioners who do software work. • Practitioners who deliver the technical skills that are necessary to engineer a product or application. • Customers who specify the requirements for the software to be engineered and other stakeholders who have a peripheral interest in the outcome. • End-users who interact with the software once it is released for production use. Who/What will be the concern of senior managers? Customers = End-users?
People: Who builds software? • Software is typically built by a team of software engineers, which includes: • Business analysts or requirements analystswho talk to users and stakeholders, plan the behavior of software and write software requirements • Designers and architectswho plan the technical solution • Programmerswho write the code • Testerswho verify that the software meets its requirements and behaves as expected
Software Teams How to lead? How to organize? How to collaborate? How to motivate? How to create good ideas?
Team Leadership • The MOI Model [Weinberg] • Motivation. The ability to encourage technical people to produce to their best ability. • Organization. The ability to mold existing processes (or invent new ones) that will enable the initial concept to be translated into a final product. • Ideas or innovation.The ability to encourage people to create and feel creative even when they must work within bounds established for a particular software product or application.
Traits of an effective project manager • Problem solving • Must be able to diagnose technical and managerial issues • Must be able to realize a solution the coordinating personal skills with skills of the team • Must be flexible enough to change directions when initial attempts at realizing solution are fruitless • Managerial identity • Must take charge of project • Must have the confidence to take control when necessary • Must allow competent persons to follow their own initiatives • Achievement • Must reward initiative and accomplishment • Influence and team building • Must be able to “read” people • Must be able to understand verbal and non-verbal signals • Must remain under control in high-stress situations
Organizational Paradigms • closed paradigm—structures a team along a traditional hierarchy of authority • E.g. chief programmer team • random paradigm—structures a team loosely and depends on individual initiative of the team members • open paradigm—attempts to structure a team in a manner that achieves some of the controls associated with the closed paradigm but also much of the innovation that occurs when using the random paradigm • Democratic teams • synchronous paradigm—relies on the natural compartmentalization of a problem and organizes team members to work on pieces of the problem with little active communication among themselves
Agile Teams • Team members must have trust in one another. • The distribution of skills must be appropriate to the problem. • Mavericks may have to be excluded from the team, if team cohesiveness is to be maintained. • Team is “self-organizing” • An adaptive team structure • Uses elements of random, open, and synchronous paradigms • Significant autonomy
Software Teams • the difficulty of the problem to be solved • the size of the resultant program(s) in lines of code or function points • the time that the team will stay together (team lifetime) • the degree to which the problem can be modularized • the required quality and reliability of the system to be built • the rigidity of the delivery date • the degree of sociability (communication) required for the project • How well people know each other Factors to be considered
The Product • Software Scope- an estimation dilemma • Context • Information objectives • Function and perfrmance • Problem Decomposition
Scope • Develop • Launch • Etc. The Project Management Process
Scoping the Project Scoping the Project Scoping the Project Scoping the Project Developing the Plan Launching the Plan Monitoring & Controlling Closing Out the Project Adapted from Weiss, J.W., and Wysocki, R.K. 1992. 5-Phase Project Management: A Practical Planning and Implementation Guide. Reading, MA: Addison Wesley. Five Phases of Project Management
State the Problem/ Opportunity Scoping the Project Scoping the Project Scoping the Project Scoping the Project Establish the Project Goal Define the Project Objectives Identify the Success Criteria List Assumptions, Risks, Obstacles Adapted from Weiss, J.W., and Wysocki, R.K. 1992. 5-Phase Project Management: A Practical Planning and Implementation Guide. Reading, MA: Addison Wesley. Scoping The Project
Scoping Document Content • What is to be done • Why it is to be done • The value it provides if it is done
Scoping • Problem/Opportunity • A statement of fact that everyone in the organization will accept as true • Should communicate why the project should be accomplished • Goal • Defines the final deliverable and outcome • States in clear terms what is to be accomplished • Is a reference point for questions about scope and purpose of the project • “SMART” objectives
Scope • Develop • Launch • Etc. Developing the Project Plan: Estimation & Scheduling
Scoping the Project Scoping the Project Developing the Project Plan Launching the Plan Monitoring & Controlling Closing Out the Project Adapted from Weiss, J.W., and Wysocki, R.K. 1992. 5-Phase Project Management: A Practical Planning and Implementation Guide. Reading, MA: Addison Wesley. Five Phases of Project Management
Identify Project Tasks (WBS) Estimate Task Duration Estimate Resource Requirements Construct/Analyze Project Schedule Prepare the Project Proposal Developing The Plan
Estimates and Project Schedule • Estimates and project schedule: • A work breakdown structure (WBS) is defined. • A list of tasks needed to develop the software. • An estimate of the effort required for each task in the WBS. • A project schedule is created by assigning resources and determining the calendar time required for each task.
Resource List • The project plan should contain a list of all persons and resources that will be used on the project. • A resource is any hardware, software, etc. that is necessary for the project • The resource list should: • Give resource a name • Give a brief description of resource • List resource availability • Specify cost (if applicable)
Planning the Project:Work Breakdown Structure (WBS) • A WBS is the functional decomposition of a system • Breaks the project into chunks of work at a level of detail that meets planning and scheduling needs
Prepare at home(level 1 task) • Create Grocery List (level 2 task) • check pantry for needed items (level 3 task) • check refrigerator for needed items • check items in refrigerator for expiration date • Determine method of payment • Transport to store • Select method of transportation, e.g., car • Select route • Drive to store • Park • Prepare at store • Select method of holding groceries • Plan for gathering groceries • etc. WBS Example: Grocery Store
Define Pre/post Conditions Define Operational Signatures Design Interface Design Review Determine Work Patterns Work Breakdown Structure Software Project … System Engineering Design Testing Analysis Procedural Design Architectural Design Detailed Design Algorithm Design Database Design Test Case Design User Interface Design … …
Work Breakdown Structure From an internet source
Reality Check • Planning is an ongoing activity throughout the life of a project.
Scheduling • Similarity to other activities • Historical data • Expert advice
Resource Activity • Identify all the resources required for each activity • Estimate the duration of each activity
Dependencies • Linkage between and among activities/tasks • Dependencies create the backbone of the project network
Dependencies • Finish to start • Predecessor Task: A • Successor Task: B • Arrow head indicates dependency relationship: Task B cannot begin until Task A is complete A B
Henry Laurence Gantt (1861-1919) Gantt Chart • Developed by Engineer, Henry L. Gant, 1917. • Visual scheduling tool • Graphical representation of information in WBS • Show dependencies between tasks, personnel, and other resources allocations • Track progress towards completion
Building a Gantt Chart • List all tasks and milestones from the WBS along the vertical axis • List time frame along the horizontal axis Activity 1 Activity 2 Milestone Time Frame: day 1 day 2 day3
Building a Gantt Chart • Activities: Create box the length of each activity time duration • E.g., activity one is scheduled from day1-day3 • Milestones: Create a diamond on the day the milestone is scheduled to be completed Activity 1 Activity 2 Milestone Time Frame: day 1 day 2 day3
Building a Gantt Chart • Dependencies: Show dependencies between activities with arrows • E.g., activity 2 cannot start until activity 1 is complete Activity 1 Activity 2 Milestone Time Frame: day 1 day 2 day3… day 23
Gantt Chart – Example Arrows indicate task dependencies: Predecessor task Successor task Tasks Bars indicate time requirement Estimated time to complete a task
Responsibility Matrix • Creates accountability by assigning each task to a person
Scheduling: Critical Path Method (CPM) • CPM developed in 1956/57 by Kelly & Walker for DuPont • Goal • Shut down chemical plants for maintenance, restart plants when maintenance was completed.
Scheduling: Critical Path Method (CPM) • CPM models the activities and events of a project as a network. • Activities are depicted as nodes on the network • Events that signify the beginning or ending of activities are depicted as arcs or lines between nodes
Scheduling: Critical Path Method (CPM) • Steps in CPM Project Planning • Determine the sequence of activities. • Draw a network diagram. • Estimate the completion time for each activity. • Identify the critical path (longest path through the network) • Update the CPM diagram as the project progresses.
Program Evaluation and Review Technique (PERT) • Steps in PERT Project Planning • Determine the sequence of activities. • Draw a network diagram. • Estimate the completion time for each activity. • Identify the critical path (longest path through the network) • Update the PERT diagram as the project progresses.