Lecture Slides for Managing and Leading Software Projects. Chapter 1: Introduction



Similar documents
CONTENTS Preface xv 1 Introduction

Lecture Slides for Managing and Leading Software Projects. Managing and Leading Software Projects. Chapter 11: Organizational Issues

Lecture Slides for Managing and Leading Software Projects. Chapter 2: Process Models for Software Development

SWX: The Software Extension to the PMBOK Guide for Project Management

What is a life cycle model?

Lecture Slides for Managing and Leading Software Projects. Chapter 5: Project Planning Techniques

Software Engineering Reference Framework

<name of project> Software Project Management Plan

An Overview of IEEE Software Engineering Standards and Knowledge Products

Distributed and Outsourced Software Engineering. The CMMI Model. Peter Kolb. Software Engineering

PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME >

SWEBOK Certification Program. Software Engineering Management

How to Write a Software Process Procedures and Policy Manual for YOUR COMPANY

Iterative Project Management 1

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture

Introduction for Software Configuration Management Training

Design Specification for IEEE Std 1471 Recommended Practice for Architectural Description IEEE Architecture Working Group 0 Motivation

System Development Life Cycle Guide

CHAPTER 7 Software Configuration Management

CONTENTS. Preface. Acknowledgements. 1. Introduction and Overview 1 Introduction 1 Whatis the CMMI"? 2 What the CMMI* is Not 3 What are Standards?

CHAPTER 7 SOFTWARE CONFIGURATION MANAGEMENT

Reaching CMM Levels 2 and 3 with the Rational Unified Process

Software Quality and Assurance in Waterfall model and XP - A Comparative Study

Assessment of NCTD Program Management Framework for Positive Train Control Program

Software Project Management and Support - Practical Support for CMMI -SW Project Documentation: Using IEEE Software Engineering Standards

SOFTWARE QUALITY & SYSTEMS ENGINEERING PROGRAM. Quality Assurance Checklist

Software Quality Assurance: VI Standards

SOFTWARE ASSURANCE STANDARD

Department of Administration Portfolio Management System 1.3 June 30, 2010

Develop Project Charter. Develop Project Management Plan

CMS Policy for Configuration Management

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Interpreting the Management Process in IEEE/EIA with the Help of PMBOK

Developing CMMI in IT Projects with Considering other Development Models

Module F13 The TOGAF Certification for People Program

Sistemi ICT per il Business Networking

Software Project Management Plan (SPMP)

Family Evaluation Framework overview & introduction

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

Practice Overview. REQUIREMENTS DEFINITION Issue Date: <mm/dd/yyyy> Revision Date: <mm/dd/yyyy>

The Role of the Software Architect

Lecture 8 About Quality and Quality Management Systems

Software Engineering. Objectives. Designing, building and maintaining large software systems

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

An Introduction to the ECSS Software Standards

Partnering for Project Success: Project Manager and Business Analyst Collaboration

Capability Maturity Model Integration (CMMI SM ) Fundamentals

Software Engineering from an Engineering Perspective: SWEBOK as a Study Object

Standards & Practices for the software and system engineers /

Lecture Slides for Managing and Leading Software Projects. Chapter 8: Measuring and Controlling Work Processes

SYLLABUS IM 662 MIS: PROJECT DEVELOPMENT & MANAGEMENT FALL TRI-MESTER 2015

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Appendix E Program Management Plan Template

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Application of software product quality international standards through software development life cycle

ISO, CMMI and PMBOK Risk Management: a Comparative Analysis

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Measurement Information Model

Software Configuration Management Plan

Process Models and Metrics

DRAFT REGULATORY GUIDE

Software Project Management

Program Lifecycle Methodology Version 1.7

Towards a new approach of continuous process improvement based on CMMI and PMBOK

Software Quality Standards and. from Ontological Point of View SMEF. Konstantina Georgieva

Truly Managing a Project and Keeping Sane While Wrestling Elegantly With PMBOK, Scrum and CMMI (Together or Any Combination)

Software Development Life Cycle (SDLC)

IEEE Software Engineering Risk Management: Measurement-Based Life Cycle Risk Management PSM 2001 Aspen, Colorado

Best Practices Statement Project Management. Best Practices for Managing State Information Technology Projects

SEI Level 2, 3, 4, & 5 1 Work Breakdown Structure (WBS)

CREDENTIALS & CERTIFICATIONS 2015

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

3SL. Requirements Definition and Management Using Cradle

Project QA and Collaboration Plan for <project name>

Software Quality Management

How To Write A Contract For Software Quality Assurance

Project Plan for <project name>

Systems Development Life Cycle (SDLC)

Project Management Guidelines

Plan-Driven Methodologies

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

Standards and Agile Software Development

Classical Software Life Cycle Models

DRAFT TABLE OF CONTENTS 1. Software Quality Assurance By Dr. Claude Y Laporte and Dr. Alain April

1.1 Identification This is the Subcontractor Management Plan, document number XYZ035, for the SYSTEM Z project.

CSE 435 Software Engineering. Sept 16, 2015

CMMI: Specific Goals and Practices

Using the Agile Methodology to Mitigate the Risks of Highly Adaptive Projects

JOURNAL OF OBJECT TECHNOLOGY

Appendix H Software Development Plan Template

Comparing Plan-Driven and Agile Project Approaches

CMMI KEY PROCESS AREAS

CMMI STANDARDS IN SOFTWARE DEVELOPING PROCESS

Standards Initiatives for Software Product Line Engineering and Management within the International Organization for Standardization

Transcription:

Lecture Slides for Managing and Leading Software Projects Chapter 1: Introduction developed by Richard E. (Dick) Fairley, Ph.D. to accompany the text Managing and Leading Software Projects published by Wiley, 2009 slide 1-1

Chapter 1 Topics Why Managing and Leading Software Projects Is Difficult The Nature of Project Constraints A Workflow Model for Managing Software Projects Organizational Structures for Software Projects Organizing the Project Team Maintaining the Project Vision and the Product Vision Frameworks, Standards, and Guidelines slide 1-2

Additional Information (1) Appendix 1A to Chapter 1 provides an introduction to elements of the following frameworks, standards, and guidelines that are concerned with managing software projects: o the SEI Capability Maturity Model Integration CMMI-DEV-v1.2, o ISO/IEC and IEEE/EIA Standards 12207, o IEEE/EIA Standard 1058, and o the Project Management Body of Knowledge (PMBOK ). slide 1-3

Additional Information (2) Terms used in Chapter 1 and throughout the text are defined in Appendix A These presentation slides and other supporting material are available at the URL listed in the Preface to the textbook slide 1-4

Objectives for Chapter 1 After reading Chapter 1 and completing the exercises, you should understand: o the main elements of software project management o the influence of project constraints o why managing and leading software projects is difficult o a workflow model for software projects o the work products of software projects o organizational structures for software projects o organizing a software development team o maintaining the project vision and product goals o frameworks, standards, and guidelines slide 1-5

What is a Project? A project is characterized as follows: a one-time effort is planned starting and ending dates are prescribed a project team is assembled schedule and budget are allocated well-defined objectives are established roles are identified, responsibilities are assigned, and authority is delegated Software projects are temporary organizational units slide 1-6

What is Management? Management is concerned with planning and coordinating the work activities of others so that they can achieve goals that cannot be achieved by each individual acting alone Synergy: the combined effect is greater than the sum of the individual effects slide 1-7

What is Software Project Management? Software Project Management (SPM) is the art and science of o planning and coordinating the work of software developers and other personnel o to develop and modify software artifacts o that are pleasing to users and customers o that are developed and modified in an economical and timely manner o and that can be maintained efficiently and effectively slide 1-8

The Four Major Activities of SPM 1. Planning and Estimating o identify work activities o prepare a schedule o prepare a budget 2. Measuring and Controlling o requirements o quality and productivity o schedule and budget o product evolution 3. Leading and Communicating o motivating / coaching / educating project members o communicating with management, customers, subcontractors, other projects 4. Managing Risk o identifying and confronting potential problems slide 1-9

Managing versus Leading Managing is concerned with the quantitative aspects of SPM: o planning and estimating o measuring and controlling o quantitative risk management Leading is concerned with the qualitative aspects of SPM: o communicating and coordinating o inspiring and maintaining morale o qualitative risk management an effective project manager is both a manager and a leader slide 1-10

Project Success Criteria The primary goal of software engineering is to develop and modify software so that: o the product is delivered on time & within budget o the product satisfies technical requirements, user needs, and customer expectations o the product is easy to modify and maintain o development milestones are achieved on time & within budget o staff morale is high throughout project o work instills pride in the developers Q1: What are your personal success criteria? Q2: What are most organizations main success criteria? Q3: What are most customers main success criteria? slide 1-11

Project Manager s Success Criteria A project manager s success criteria include, or should include: delivery of an acceptable product on time and within budget o within the limits imposed by project constraints* maintaining good relations with customers, suppliers, managers, and other organizational units maintaining a motivated project team advancing the career of each project member advancing his or her career Other criteria? *a constraint is an eternally imposed limitation slide 1-12

Why Are Software Projects Difficult? According to Fred Brooks* software projects are difficult because of accidental and essential difficulties o accidental difficulties are caused by the current state of our understanding of methods, tools, and techniques of the underlying technology base o essential difficulties are caused by the inherent nature of software * The Mythical Man-Month by Fred Brooks, Addison Wesley, 1995 slide 1-13

Essential Difficulties complexity, conformity, changeability, and invisibility of software. slide 1-14

Additional Difficulties Additional reasons software projects are difficult are: o intellect-intensive, team-oriented nature of the work o externally imposed constraints slide 1-15

Intellect-Intensive Teamwork Software is developed by: o teams of individuals o engaged in closely coordinated intellectual work activities o to produce various written work products slide 1-16

An Observation As Michael Jackson has observed, the entire description of a software system or product is usually too complex for the entire description to be written directly in a programming language, so we must prepare different descriptions at different levels of abstraction, and for different purposes*. Also, note that each of the work products listed on the following slide is a document o software developers and software project managers do not produce physical artifacts other than documents, which may exist in printed or electronic form. * M. Jackson, Descriptions in Software Development, Lecture Notes in Computer Science, Springer Verlag GmbH, Volume 2460, 2002. slide 1-17

Some Work Products of Software Projects Document Project plan Status reports Memos and meeting minutes e-mail messages Operational requirements Technical specification Architectural design document Detailed design specification Source code Test plan Reference manual Help messages Installation instructions Release notes Maintenance guide Content of the document Roadmap for conducting the project Visibility of progress, cost, schedule, and quality Issues, problems, recommendations, resolutions On-going communications User needs, desires, and expectations Product features and quality attributes Components and interfaces Algorithms, data structures, and interface details of individual modules Product implementation Product validation criteria and test scenarios Product encyclopedia Guidance for users Guidance for operators Known issues; hints and guidelines Guidance for maintainers slide 1-18

Note Note that the work products generated by software engineers exist in graphical, iconic, and textual forms o software engineers do not design or fabricate artifacts made of physical materials o our work products are generated from our thought processes slide 1-19

A Simile A team that writes software together is like a team that writes a book together o the team may pursue a plan-driven approach o or an agile approach slide 1-20

Plan-Driven Development Plan-driven development involves: o defining the product requirements o developing an architectural structure for the product o allocating the work among teams o measuring progress and making corrections o refining and revising the work products as necessary preferably in an iterative manner slide 1-21

Agile Development When pursuing an agile approach, the team members must: o develop an understanding of the nature of the desired product to be delivered, o develop continuous, ongoing relationship with a knowledgeable user representative o establish a shared design metaphor, o adopting a version of agile development, and o determine the constraints on schedule, budget, resources, and technology that must be observed. most successful software projects incorporate aspects of both planning and agility slide 1-22

Additional Difficulties Additional reasons software projects are difficult are: o intellect-intensive nature of the work o externally imposed constraints slide 1-23

Engineering Constraints Engineering is concerned with applying science and technology to develop products for use by society within the constraints of: o product requirements: features and quality attributes o project scope: work activities to be accomplished o time: scheduled dates for progress o resources: assets available to conduct a project o budget: money used to acquire resources slide 1-24

Additional Constraints Additional limitations imposed on software projects include: o platform technology: software tools and hardware/software base o domain technology: the realm of the user domain o process standards: ways of conducting work activities o scientific knowledge: solution methods o business considerations: profit, stability, growth o mission needs: safety and security of citizens o ethical considerations: serving best interests of humans and society Others? slide 1-25

Useful Constraints and Inhibiting Constraints Useful constraints provide guidance: o for example, well-defined requirements are the basis for planning, estimating, and establishing success criteria Inhibiting constraints inhibit the ability to achieve success criteria: o for example, excessive schedule pressure may inhibit the ability to delivery a product of high quality slide 1-26

The Challenges of Software Project Management Some of the most difficult problems you will encounter in managing software projects arise from establishing and maintaining a balance among the constraints on project scope, budget, resources, technology, and the scheduled delivery date: o scope: the work to be done, o budget: the money to acquire resources, o resources: the assets available to do the job, o technology: methods and tools to be used, and o delivery date: the date on which the system must be ready for delivery. slide 1-27

A Workflow Model for Software Projects Change Requests and Problem Reports Start Here Requirements and Constraints Software Development customer management Planning and Replanning Activity Definition Work Assignments Independent Validation Directives and Constraints Estimating Quality Assurance Deliver Product Controlling Configuration Management Data Retention Other Supporting Processes Project Reports Reporting Measuring Status Reports slide 1-28

Some Elements of the Model Customers and managers Requirements Directives and constraints Planning and re-planning Estimating Identifying the work activities and work assignments Conducting the work activities Measuring and reporting status Controlling the project Retaining status data Handling change requests and problem reports Supporting processes slide 1-29

Some Supporting Processes for Software Projects Supporting Process Configuration Management Verification Validation Quality Assurance Documentation Developer Training User and Operator Training Purpose Change control; baseline management; product audits; product builds Determining the degree to which work products satisfy the conditions placed on them by other work products and work processes Determining the degree of fitness of work products for their intended use in their intended environments Assuring conformance of work processes and work products to policies, plans, and procedures Preparation and updating of intermediate and deliverable work products Maintaining adequate and appropriate skills Imparting skills needed to effectively use and operate systems slide 1-30

Eight Supporting Processes in ISO & IEEE Standards 12207 Documentation Configuration management Quality assurance Verification Validation Joint review Audit Problem resolution slide 1-31

A Note on Terminology In many organizations the term software quality assurance (SQA) is used to mean independent testing In the 12207 standards quality assurance is concerned with: providing adequate assurance that the software products and processes in the project life cycle conform to their specified requirements and adhere to their established plans. Testing is in the realm of Verification and Validation o independent testing should not be termed QA or SQA CMMI-DEV-v1.2 uses terminology similar to 12207 more later slide 1-32

Managing The Supporting Processes In a project-format organization all of the supporting processes (except SQA) are managed by the project manager In a functional-format organization all of the supporting processes (including SQA) are managed by the functional managers In a matrix-format organization most of the supporting functions (except SQA) are managed by the project manager In a hybrid-format organization, some or all of the supporting processes (including SQA) are provided by functional groups within the organization QA is always (or should be) conducted by a separate group slide 1-33

Chapter 1 Topics Why Managing and Leading Software Projects Is Difficult The Nature of Project Constraints A Workflow Model for Managing Software Projects Organizational Structures for Software Projects Organizing the Project Team Maintaining the Project Vision and the Product Vision Frameworks, Standards, and Guidelines slide 1-34

Organizational Structures Organizations that conduct engineering projects, including software projects, are typically organized in one of four ways: o functional structure, o project structure, o matrix structure, or o hybrid structure. slide 1-35

A Process-Structured Functional Organization Department Manager Requirements Group Design Group Implementation Group... Group slide 1-36

A Product-Structured Functional Organization Department Manager User Interface Group Algorithms Group Data base Group... Group slide 1-37

A Project-Structured Organization Department Manager Project #1 Project #2 Project #3 Project #n slide 1-38

A Matrix-Structured Organization Department Manager Functional Manager #1 Project Manager #1 2 Project Manager #2 Project Manager #3 3 Functional Manager #2 4 Functional Manager #3 Functional Manager #4 6 8 3 4 5 7 3 Project Manager #m 1 2 6 slide 1-39

The Organizational Continuum 100% 0% Functional Functional Emphasis Matrix Project Emphasis Project 0% Project Coordinator Project Manager 100% slide 1-40

An Organizational Model for Software Projects Customer Project Manager Software Architect Team Leader #1 Team Leader#2 Team Leader #3 V&V CM XX...... Member Member V&V: Verification and Validation CM: Configuration Management XX: other supporting processes Member Member Each team has 2 to 5 members plus a team leader slide 1-41

A Note A complex system is composed of: o hardware (computers and others) o software (newly developed and reused) o people (operators, maintainers) A software project may be one of a collection of projects o under the technical direction of a system engineering team slide 1-42

The System Engineering Team The responsibilities of systems engineers include: o defining operational requirements, o specifying system requirements, o developing the system design, o allocating system requirements to system components, o integrating the system components as they become available, o verifying that the system to be delivered is correct, complete, and consistent with respect to its technical specifications, and o validating operation of the system with its intended users in its intended operational environment. for software only projects the people who perform these functions are termed software system engineers slide 1-43

An Organizational Structure for Software Projects Customer Project Manager Software Architect Team Leader #1... Team Leader#2... Team Leader #3 V&V CM XX Member Member Member Member V&V: CM: XX: Verification and Validation Configuration Management other supporting processes Each team has 2 to 5 members plus a team leader slide 1-44

Maintaining the Project and Product Visions The project manager is the the keeper of the process vision o which is documented in the project plan and is updated as the project evolves The software architect is the keeper of the product vision, o which is documented in the requirements and architectural design specifications and is updated as the product evolves slide 1-45

Another Simile The project manager is like a movie producer and the software architect to a movie director. o The producer (project manager) has overall responsibility for schedules, budgets, resources, customer relations, and delivery of a satisfactory product on time and within budget. The director (software architect) is responsible for the content of the product. Producer and director must work together to maintain and constantly communicate the process vision and the product vision to the cast of developers and supporting personnel as well as other project stakeholders slide 1-46

Frameworks, Standards, and Guidelines (1) A process framework is a generic process model that can be tailored and adapted to fit the needs of particular projects and organizations. An engineering standard is a codification of methods, practices, and procedures that is usually developed and endorsed by a professional society or independent agency. Guidelines are pragmatic statements of practices that have been found to be effective in many practical situations. slide 1-47

Frameworks, Standards, and Guidelines (2) Some well known frameworks, standards, and guidelines for software engineering and the associated URLs are: o the Capability Maturity Model Integration for development (CMMI-DEV-v1.2) [www.sei.cmu.edu/cmmi/models] o ISO/IEC and IEEE/EIA Standards 12207 [www.iso.org]; [standards.ieee.org/software] o IEEE/EIA Standard 1058 [standards.ieee.org/software] o the Project Management Body of Knowledge (PMBOK ) [www.pmibookstore.org] Elements of these models that are relevant to managing and leading software projects are presented in appendices to the chapters of this text, including Appendix 1A to this chapter. slide 1-48

The Main Points of Chapter 1 (1) A project is a coordinated set of activities that occur within a specific timeframe to achieve specific objectives The primary activities of software project management are planning and estimating; measuring and controlling; leading, communicating, and coordinating; and managing risk Software projects are inherently difficult because software is complex, changeable, conformable, and invisible Software projects are conducted by teams of individuals who engage in intellect-intensive teamwork Project constraints are limitations imposed by external agents on some or all of the operational domain, operational requirements, product requirements, project scope, budget, resources, completion date, and platform technology A workflow model indicates the work activities and the flow of work products among work activities in a software project slide 1-49

The Main Points of Chapter 1 (2) The entire description of a software system or product is usually too complex for the entire description to be written directly in a programming language, so we must prepare different descriptions at different levels of abstraction, and for different purposes Organizations that conduct software projects use functional, project, weak matrix, and strong matrix structures Software projects organized in a hierarchical manner provide welldefined work activities, roles, authorities, and responsibilities at each level in the hierarchy; hierarchies can expand and shrink to fit the needs of each project Requirements must be allocated and the design structured so that the work of each small team can proceed concurrently with the work of other teams slide 1-50

The Main Points of Chapter 1 (3) The project manager maintains the project vision, as documented in the project plan, and the software architect maintains the product goals, as documented in the requirements and architectural design A software process framework is a generic process model that can be tailored and adapted to fit the needs of particular projects and organizations. A software engineering standard is a codification of methods, practices, and procedures, usually developed and endorsed by a professional society or independent agency. Guidelines are pragmatic statements of practices that have been found to be effective in many practical situations. SEI, ISO, IEEE, and PMI provide process frameworks, standards, and guidelines that contain information relevant to managing software projects (see Appendix 1A to Chapter 1) slide 1-51