OVERVIEW FUNDAMENTALS OF SOFTWARE ENGINEERING PROJECT MANAGEMENT

Similar documents
Personal Software Process (PSP)

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

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Certified Software Quality Engineer (CSQE) Body of Knowledge

SOFTWARE QUALITY & SYSTEMS ENGINEERING PROGRAM. Quality Assurance Checklist

Leveraging CMMI framework for Engineering Services

SWEBOK Certification Program. Software Engineering Management

Quick Guide: Meeting ISO Requirements for Asset Management

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

Business Continuity Position Description

Fundamentals of Measurements

Input, Output and Tools of all Processes

Quick Guide to Asset Management Planning An ITtoolkit.com White Paper

Key Steps to a Management Skills Audit

JOURNAL OF OBJECT TECHNOLOGY

Creating Business Value with Mature QA Practices

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York

Driving Your Business Forward with Application Life-cycle Management (ALM)

SOFTWARE DEVELOPMENT PLAN

Process Models and Metrics

Business Process Management 100 Success Secrets

The Software Life Cycle. CSE 308: Software Engineering

What is Software? The Software Development Process. Definition of Software. Why Software?

Software Development Process

Overview MBA Programme Courses

HR, Admin & Coordination Department. Organizational Development Division TABLE OF CONTENTS

Introduction to Software Engineering: Project Management ( Highlights )

PROJECT MANAGEMENT STUDY GUIDE

International Journal of Advance Research in Computer Science and Management Studies

ICT Benchmarking: Better Practice Roadmap

CMMI 100 Success Secrets

St Petersburg College. Office of Professional Development. Business Skills. Finance and Accounting. Administrative Support.

Introduction to the ITS Project Management Methodology

Testing Process Models

SLIM Estimate and Microsoft Project Best Practices

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Business Logistics Specialist Position Description

ABC COMPANY Extended Accounting System (EAS) Project Charter Sample

ADMINISTRATIVE SUPPORT AND CLERICAL OCCUPATIONS SIN 736 1

PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME >

FIVE NON-TECHNICAL PILLARS OF NETWORK INFORMATION SECURITY MANAGEMENT

Assessing your management system and the approach that you take

engage ERM ADVISORY Insurer Management Risk Committee Practices

MBAProgramme. The College of The Bahamas

The 10 Knowledge Areas & ITTOs

Maturity Model. March Version 1.0. P2MM Version 1.0 The OGC logo is a Registered Trade Mark of the Office of Government Commerce

DEVELOPING AN EFFECTIVE INTERNAL AUDIT TECHNOLOGY STRATEGY

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Exam Practice Guide. Units 3&4 Business Management Examination Questions. Helping VCE students be the best they can be.

CMMi and Application Outsourcing

QUALITY MANAGEMENT SYSTEM MANUAL

Treasury Board of Canada Secretariat (TBS) IT Project Manager s Handbook. Version 1.1

Software Engineering: Analysis and Design - CSE3308

PROJECT MANAGEMENT PLAN Outline VERSION 0.0 STATUS: OUTLINE DATE:

Education Module for Health Record Practice. Module 7 - Administration and Management of the Health Record Department

Information Systems Development Process (Software Development Life Cycle)

Leadership Skills. Part 2. The Skills You Need Concise Guide to Leadership. Developing the skills you need to lead

Contents. viii. 4 Service Design processes 57. List of figures. List of tables. OGC s foreword. Chief Architect s foreword. Preface.

The purpose of this course is to provide practical assistance for defining and managing project scope.

LOUGHBOROUGH UNIVERSITY

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

C O N S U L T C O N N E C T - C H A N G E. Does CRM Really Work?

(Refer Slide Time: 01:52)

Report to the European Commission on Pharmacovigilance audits carried out in the Medicines Evaluation Board, The Netherlands period of time from

Quality Management System Manual

Developing a Data Management Strategy Using CMMI Data Maturity Model

Software Project Management

Cost Estimation Strategies COST ESTIMATION GUIDELINES

AIPM PROFESSIONAL COMPETENCY STANDARDS FOR PROJECT MANAGEMENT PART B CERTIFIED PRACTISING PROJECT PRACTITIONER (CPPP)

PORTFOLIO, PROGRAMME & PROJECT MANAGEMENT MATURITY MODEL (P3M3)

Quality Systems Frameworks. SE 350 Software Process & Product Quality 1

FRAMEWORK FOR THE PREPARATION OF ACCOUNTS. Best Practice Guidance

Business Analyst Position Description

Information Technology Asset Management: Control and Compliance

Dolphin Dynamics. Document Configuration: HTML Editor

The Fast Track Project Glossary is organized into four sections for ease of use:

Server Consolidation with SQL Server 2008

Setting Standards Achieving Success

Project and Operational processes, Key differences. Gotchas when deploying projects into operations

THE EVOLUTION of Talent Management Consulting

Guide on Developing a HRM Plan

Key selection criteria

Integrating Scrum with the Process Framework at Yahoo! Europe

Software that writes Software Stochastic, Evolutionary, MultiRun Strategy Auto-Generation. TRADING SYSTEM LAB Product Description Version 1.

Introduction to Software Engineering. 9. Project Management

PERFORMANCE MANAGEMENT COACHING AND PERFORMANCE GEORGIA PERIMETER COLLEGE

Helm 4 Windows Event Viewer

CHAPTER 5 BEST PRACTICES

PROCESSING & MANAGEMENT OF INBOUND TRANSACTIONAL CONTENT

NEOXEN MODUS METHODOLOGY

Key Principles of Management and Leadership

NOTIFICATION FOR THE VACANCY OF THE POST OF SECRETARY GENERAL OF CPA - INTERNATIONAL JOB DESCRIPTION

Transcription:

FUNDAMENTALS OF SOFTWARE ENGINEERING PROJECT MANAGEMENT Johan Gouws B.Eng. & M.Eng. (Elec.) (Rand Afrikaans University, South Africa) MBA (Heriot-Watt University, Scotland) Ph.D. (Wageningen, the Netherlands) Leonie E. Gouws B.Eng. (Mech.) (Rand Afrikaans University, South Africa) M.Eng. (Engineering Management) (Rand Afrikaans University, South Africa)

Disclaimers Melikon Pty Ltd published this work as a contribution to the education of software engineering project managers and other people involved in software development. The material herein is for general information only and Melikon cannot be held liable for any actions taken or not taken on the basis of material contained herein. Melikon Pty Ltd holds the publishing rights and the copyright of this work. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage and retrieval systems, without prior written permission from Melikon. Published by: Melikon Pty Ltd (www.melikon.com) Date: June 2004 Issue: 3.4 First edition published in 1999. Copyright Melikon 2004

TABLE OF CONTENTS 1. BACKGROUND...4 2. OF CHAPTERS...5 2.1 CHAPTER 1: INTRODUCTION... 5 2.2 CHAPTER 2: MANAGING SOFTWARE PROJECTS... 6 2.3 CHAPTER 3: INTRODUCTION TO SOFTWARE ENGINEERING... 7 2.4 CHAPTER 4: PLANNING A SOFTWARE PROJECT... 7 2.5 CHAPTER 5: ORGANIZING AND STAFFING A SOFTWARE PROJECT... 8 2.6 CHAPTER 6: DIRECTING A SOFTWARE PROJECT... 9 2.7 CHAPTER 7: CONTROLLING A SOFTWARE PROJECT... 9 2.8 CHAPTER 8: CONCLUSION... 10 2.9 CHAPTER 9: LITERATURE REFERENCES... 12 Table of Contents 3

1. BACKGROUND This document provides a brief overview of the e-book Fundamentals of Software Engineering Project Management. (The complete book can be purchased from Melikon Pty Ltd, at www.melikon.com E-Bookstore. The Table of Contents of the book can also be downloaded from this website.) The book is in the same point-wise format used in this overview. This format is used in order to make the book an easy-to-read reference source. Some review activities are included in the book: These are typically in the form of a table, where choices can be ticked off, based on the topics covered in the preceding sections. The intention is that readers can use these to link the concepts presented, with the actual situations in their own organizations. If required, Melikon can also develop other custom-made training courses to suit specific needs (see www.melikon.com). Chapter 1: Introduction 4

2. OF CHAPTERS 2.1 CHAPTER 1: INTRODUCTION Chapter 1 of the book Fundamentals of Software Engineering Project Management addresses: Software s growing importance in almost all aspects of life; and how its development has grown from an art, to a craft, to a proper engineering discipline from which follows: Software is a product (although a rather fluid one), like any other result of engineering methodologies. Software development needs the structured application of scientific and engineering principles in order to analyse, design, construct, document and maintain it. Like any engineering development, large-scale software development also requires the disciplined application of project management principles. The requirement that the three legs of any project (cost, schedule and functionality) be balanced, planned in advance, and managed throughout a project s lifetime. The main focus of the book, namely: merging the application of structured engineering with disciplined project management for software development, resulting in the concept software engineering project management. The purpose of the book which is not to be a programming-, or software-, or engineering book - but instead to introduce project management principles for software development, by: Making Software Engineering Project Managers more aware of a variety of available project management techniques; and helping them to plan, organize, staff, direct and control software development projects. Providing Line Managers (especially Engineering- and Marketing Managers) with a better understanding of the major issues involved in managing a software development project. Giving Software Developers (e.g. Designers, Programmers, and Testers) an opportunity to gain a better understanding of: 5

Inputs required from them by their project managers, in order to enable the project managers to better manage complex software development. Their own roles in a software development project. Management techniques for improved software development. Behind the scenes issues dealt with by software engineering project managers (see why they sometimes seem to act so foolishly ). 2.2 CHAPTER 2: MANAGING SOFTWARE PROJECTS Chapter 2 of the book Fundamentals of Software Engineering Project Management explains the following aspects of management, so that these can be applied to software engineering projects: Basic management concepts, such as productivity, effectiveness and efficiency. The elements of management: planning, organizing, staffing, directing and controlling. The concept that management is necessary in any organization, and at all organizational levels, but that different levels of managers spend different portions of their time on the different elements of management. Prerequisites for effective management: skills in the elements of management, technical skills, people skills, housekeeping skills, and power; as well as a healthy organization. Management as a feedback system, where regular feedback is used to ensure that actual performance of an organization or the actual results achieved with a project, comply with the desired performance / results. Different management approaches e.g. systems approach, scientific approach, management theory approach, and management techniques approach. The importance of communication and documentation for project success. Fundamentals of project management, and the use the 4 Ms - manpower, materials, machines, and money in order to translate an idea into a useful and marketable product or service. Risk management for projects: risk identification, risk analysis, options for risk alleviation, and cost of risk abatement. Finally, chapter 2 provides a checklist for project management, in the form of a 6

series of questions that can be used to help improve project management. 2.3 CHAPTER 3: INTRODUCTION TO SOFTWARE ENGINEERING Chapter 3 of the book Fundamentals of Software Engineering Project Management addresses the following major concepts behind software engineering: Is software an engineering discipline or not? The conclusion is that ever increasing software complexity requires the discipline of engineering development. An overview of typical software development problems experienced by different organizations. This is included in order to illustrate that no organization is immune to software development problems but also to learn from other people s mistakes. Future software development trends: Different types of software development; and the trend of software factories, where software development is outsourced to companies in India, for example. Software process models, such as the linear sequential model, the waterfall model, the V-model, the prototyping model, the incremental / evolutionary model, and the concurrent model. How software development policies and methodologies can be used to help structure and standardize software development processes. The use of new technology for software projects. Likely future trends in software development: reuse, re-engineering, and retooling. An overview of the Capability Maturity Model (CMM), different levels of software process maturity, and some practical example of the use of the CMM. 2.4 CHAPTER 4: PLANNING A SOFTWARE PROJECT The focus of this chapter is on the planning aspects - both from a technical and a management viewpoint - for a software project. This chapter addresses: The three constraints on any project: functional requirements, available 7

resources, and required time frame. The two interactive pillars of project planning: System engineering (requirements definition and analysis; design; coding, testing and integration; delivery and commissioning; maintenance / enhancement; and phase-out and disposal). Planning aspects of project management (task breakdown, budgeting, and scheduling). The following aspects are specifically addressed: Requirements analysis. Different work breakdown structures. Software effort estimation. Software size estimation. The importance of historical data. Steps for improving estimation accuracy. Project scheduling techniques, and how to estimate schedule. 2.5 CHAPTER 5: ORGANIZING AND STAFFING A SOFTWARE PROJECT Organizing and staffing a project involves defining the positions required to execute the work, and then filling these positions i.e. defining by whom the work must be done. Chapter 5 focuses on: Arranging the activities identified as part of project planning, into logical groups. Determining the relationships within and between these groups. Choosing a suitable organizational structure (line-, project- or matrix structure) and suitable team structure (e.g. democratic decentralised, controlled centralised, or controlled decentralised). Assignment of each group of activities to an organizational entity. Delegation of responsibility and authority to these organizational entities. Defining the extents of different jobs in the organization. Determining the number of staff required. Filling the organizational structure with the right people (by doing job analysis, job 8

specification, recruitment, staff selection, appointment and orientation). Keeping the right people on the job (by career planning, performance appraisal, training, and appropriate remuneration and recognition). 2.6 CHAPTER 6: DIRECTING A SOFTWARE PROJECT Directing entails all management activities dealing with aspects such as leadership, delegation, motivation, and conflict management aimed at guiding employees to contribute to goals and objectives. Chapter 6 focuses on: Leadership and effective use of power. Delegation. Motivating and keeping software developers through using a structured development process, creating enthusiasm and a shared vision, and using people s intelligence. Conflict management (sources of conflict, different perceptions on conflict, and different ways to deal with it). 2.7 CHAPTER 7: CONTROLLING A SOFTWARE PROJECT Controlling a project entails is primarily aimed at meeting schedule, cost and functionality requirements for a specific project, and doing this consistently throughout the project. Chapter 7 focuses on: Two branches of project control: Cost and Progress Control - mainly using the Software Project Management Plan (compiled as a consolidation of the planning, organizing, staffing and directing phases of project management) as the basis against which to measure compliance with the planned work breakdown, cost, and schedule of the project. Software Quality Control - using software testing, project audits, software peer reviews, and software configuration management. ensure that changes are properly controlled. Feedback control for project management: measurement of progress and actual performance, comparing actual performance with desired performance, revealing deviations between actual and desired performance, and implementation of 9

corrective actions. Distinction between status- and action information. Binary reporting. Project documentation (its importance, document reviews, and typical types of documentation for software development). The Software Project Management Plan. A framework is shown for a plan defining what needs to be done, with what resources, when, and by whom. The concept of the Unit Development Folder which is a simple, yet effective tool to aid software development and software project control, in the form of a development notebook or a filing system for collecting and organizing information and documents about a specific unit of software being developed. Software quality assurance and methods to improve software quality - e.g. project plans / standards / policies; reviews / walk-throughs / audits; analysis tools / tests; metrics; configuration management; collection and analysis of defect data; user feedback; and failure analysis. Common reasons for project control problems. Steps that can be taken to ensure more effective project control. 2.8 CHAPTER 8: CONCLUSION As a summary, Chapter 8 of the book Fundamentals of Software Engineering Project Management defines a series of silver bullets to slay the werewolf of late or overspent projects, that don t satisfy their requirements. The silver bullets defined (and expanded) in Chapter 8 are: (1) Recognize planning, organizing, staffing, directing and controlling as the elements of management, and communication as the cement that sticks them together. (2) Recognize that management is necessary at all levels of any organization, and that a management position in a software organization is not a parking place for incompetent software developers. (3) Make sure that the prerequisites for effective management are met by the organization. (4) Implement risk management. 10

(5) Take note of the software crisis. (6) Assess and improve software development productivity. (7) Choose and apply an appropriate process model. (8) Implement appropriate development policies. (9) Carefully introduce new technology for software projects. (10) Determine and develop software development capability. (11) Recognize the importance of project planning. (12) Distinguish the two main areas in which project planning has to be done for software development. (13) Carefully define the problem first, and then seek the solution. (14) Use a work breakdown structure (WBS) to organise the work into manageable tasks. (15) Make an accurate estimate of expected effort to complete the project. (16) Compile a project schedule in order to know when to do what. (17) Take note of Brooks law: Adding manpower to a late software project makes it later. (18) Use rules of thumb for software estimation very carefully. (19) Realize that a project is executed by people, who must be organized into some structure. (20) Within the broad organization, different software team structures can be used. (21) Do a proper job analysis before appointing new staff. (22) Compile a job specification as a concise statement of the key performance areas demanded by the job. (23) Use appropriate recruitment techniques to encourage suitable people to apply for the job. (24) Use appropriate selection tools to choose the most suitable person for the job. (25) Appoint suitable people and keep them employed. (26) Realize that staff turnover is normal. (27) Perform career planning for team members. (28) Use performance appraisal for objective measurement of staff activities. (29) Use training to develop staff. (30) Use leadership and power to obtain team members commitment. 11

(31) Delegate in order to get more work done. (32) Create and use enthusiasm to ensure project success. (33) Accept and manage conflict arising from a project, instead of ignoring it. (34) Recognize the need for feedback control in project management. (35) Do not fall into the 90% complete trap. (36) Recognize and implement two branches of project control. (37) Project documentation is the basis of project control [really of project management]. (38) Consolidate planning and organizing into a project plan. (39) Use a software quality control process. (40) Apply software configuration management very diligently. (41) Use software project audits to uncover project problems. (42) Use peer reviews. (43) Define and use software metrics as measurable indicators of project status. 2.9 CHAPTER 9: LITERATURE REFERENCES Chapter 9 of the book provides extensive literature references, from which readers can gain more information on topics addressed in the book. 12