PROJECT MANAGEMENT CONCEPTS & TEAMS

Slides:



Advertisements
Similar presentations
Project Management M Taimoor Khan
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
1 Teams Xiaojun Qi. 2 Team Organization Suppose that a product can be accomplished by 1 person-year of programming. If this product must be completed.
W5HH Principle As applied to Software Projects
The Human Side of Project Management
1 These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
1 14. Project closure n An information system project must be administratively closed once its product is successfully delivered to the customer. n A failed.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Teams.
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Project Management Concepts
1 Project Management CIS 375 Bruce R. Maxim UM-Dearborn.
COMP8130 and 4130Adrian Marshall 8130 and 4130 Test Management Adrian Marshall.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 2 The process Process, Methods, and Tools
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
CHAPTER 4 TEAMS.
CSEB233: Fundamentals of Software Engineering
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Chapter 3: Project Management Omar Meqdadi SE 2730 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Chapter 3 Project Management Concepts
1 Chapter 3 Project Management. 2 Project Management Concerns staffing? cost estimation? project scheduling? project monitoring? other resources? customer.
Slide 4.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
Software Project Management By Deepika Chaudhary.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Slide 1 Teams l Most products are too large to be completed by a single software professional with the given time constraints l You will work within a.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program.
Slide 4.1 © The McGraw-Hill Companies, 2007 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Lecture 16: Chapter 24 Project Management Concepts
CSC 395 – Software Engineering Lecture 5: Teams -or- How to Motivate and Manage the Unwashed Masses.
PROJECT MANAGEMENT CONCEPTS. The Management Spectrum The key concept behind the an effective software engineering process is the management spectrum.
Software Project Management Lecture # 2. Outline The 4 Ps in Project Management Detailed Insight of each P.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Project Management Concepts By: Sohaib Ejaz Lecturer,UoS.
Chapter : Project Management Concept
Slide 4.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Slide 4.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
Slide 4.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
Software Project Management Lecture # 2 Originally shared for: mashhoood.webs.com.
4.1/62 TEAMS 4.2/62 Overview l Introduction, l Democratic team approach, l Classical chief programmer team approach, l Beyond chief programmer and democratic.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Chapter : Project Management Concept
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2010 Stephen R. Schach
Project Management Why do projects fail? Technical Reasons
Software Project Development Teams. Team Organization Goal: organize teams so that they are productive teams can be used in every phase, especially implementation.
Software Project Management
INTRODUCTION: Project management involves the planning, monitoring, and control of the people, process, and events that occur as – software evolves from.
1 These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
PROJECT MANAGEMENT Software Engineering CSE
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 6/e Part 4 Supplementary Slides for Software Engineering: A Practitioner's.
Slide 4.1 TEAMS. Slide 4.2 Overview l Team organization l Democratic team approach l Classical chief programmer team approach l Beyond chief programmer.
Advanced Software Engineering Dr. Cheng
Software Project Management
Software Project Configuration Management
Lecture 3: Organizing Teams
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach 1.
Software engineering Lecture 21.
Chapter 3 Project Management
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
Software Project Management
Presentation transcript:

PROJECT MANAGEMENT CONCEPTS & TEAMS

Overview Basic project management concepts: Four P’s People – today’s lecture Product – throughout the semester Process – last week Project – at the end of the semester Different team organizations Democratic team approach Classical chief programmer team approach Beyond chief programmer and democratic teams Synchronize-and-stabilize teams Extreme programming teams

Project Management Project management involves the planning, monitoring, and control of the people, process, and events that occur as software evolves from a preliminary concept to an operational implementation Software engineers manage day-to-day activities, planning, monitoring, and controlling technical tasks Project managers plan, monitor, and control the work of a team of software engineers Senior managers coordinate the interface between the business and software professionals

Four P’s: People, Product, Process, Project People must be organized to perform software work effectively PM-CMM – enhance the readiness of software organizations to undertake increasingly complex applications by helping to attract, grow, motivate, deploy, and retain the talent needed to improve their software development capability Having the right people is not enough; teams must be organized

Four P’s: People, Product, Process, Project Objectives and scope established Requirements understood Alternative solutions considered Technical and management constraints identified Process must be selected that is appropriate for the people and the product Process model chosen Umbrella activities (software quality assurance, software configuration management, and measurement)

Four P’s: People, Product, Process, Project Project must be planned by estimating effort and calendar time Defining work products, establishing quality checkpoints, and establishing mechanisms to monitor and control work defined by the plan Still a struggle: in 1998, 26% of software projects failed and 46% experienced cost and schedule overruns

Indications that a project is in jeopardy Software people do not understand customer’s needs Product scope is poorly defined Changes are managed poorly Chosen technology changes Business needs change or are ill-defined Deadlines are unrealistic Users are resistant Sponsorship is lost or was never properly obtained Project team lacks people with appropriate skills Managers and practitioners avoid best practices and lessons learned

How to avoid problems? Start on the right foot Maintain momentum Understand the problem well, set realistic objectives and expectations, build the right team, give the team autonomy, authority, and technology needed to do the job Maintain momentum Project manager must provide incentives, the team should emphasize quality in every task Track progress Work products are produced and approved as part of a quality assurance activity, software process and product metrics are collected and used to assess progress Make smart decisions “Keep it simple”, use COTS, standard approaches, identify and avoid risks, allocate more time to complex or risky tasks Conduct a postmortem analysis Lessons learned and best practices in written form

People “Companies that sensibly manage their investment in people will prosper in the long run” – Tom DeMarco & Tim Lister Stakeholders Senior managers – define the business issues that often have significant influence on the project Project (technical) managers – plan, motivate, organize, and control the software practitioners Software practitioners – engineer a product or application Customers – specify the requirements End-users – interact with the software product once it is released

Software Team There are almost as many organizational structures for software development as there are organizations that develop software Organizational structure cannot be easily modified Formal team organization is more productive The best team organization depends on the management style in the organization, number of people who will populate the team and their skill levels, and the overall problem difficulty

Software Team Why ? Task sharing Is 1 person x 1 year = 3 persons x 4 months ? 3 persons may take nearly a year the quality of the product may be lower Why ? Task sharing Perfectly partitionable tasks If 1 person can pick a strawberry field in 9 days, 9 persons can pick same strawberry field in 1 day Unpartitionable tasks Bearing of a child takes 9 months, no matter how many women are assign

Software Team Is 1 person x 1 year = 3 persons x 4 months ? Why? 3 persons may take nearly a year the quality of the product may be lower Why? Communication overhead In tasks that can be partitioned but which require communication, the effort of communication must be added to the amount of work to be done

Task Sharing & Communication Overhead Unlike bearing of a child, it is possible to share coding tasks between members of team Implementation phase is a prime candidate for sharing tasks Unlike strawberry picking, team members must interact in meaningful and effective way Team organization is a managerial issue

Example 3 developers are working on a project Problem - deadline is rapidly approaching but the product is not nearly complete “Obvious” solution - add a fourth programmer to the team Other three have to explain in detail What has been accomplished What is still incomplete

Brooks’s law & other quotes Brooks’slaw: “Adding additional personnel to a late software project makes it even later” Other quotes from Brooks’s “The Mythical Man-Month” Cost does indeed vary as the product of the number of men and the number of months. Progress does not. More programming projects have gone awry for lack of calendar time than for all other causes combined. Good cooking takes time; some tasks cannot be hurried without spoiling the result. Partitioning a task among multiple people occasions extra communication effort – training and intercommunication.

Overview Basic project management concepts: Four P’s People –today’s lecture Product –throughout the semester Process –last week Project –at the end of the semester Different team organizations Democratic team approach Classical chief programmer team approach Beyond chief programmer and democratic teams Synchronize-and-stabilize teams Extreme programming teams

Democratic Team Programmers can be highly attached to their code Name their modules after themselves See their modules as extension of themselves Don’t try to find all the faults (defects) in their code Solution - egoless programming Restructure the social environment and programmers’ values Encourage team members to find faults in code Faults are considered normal and accepted events Team as whole will develop group identity Modules belong to the team as whole

Democratic Team (contd.) Democratic team - group of up to 10 egoless programmers No single leader, no one is trying to get promoted Communication among team members is horizontal Important –team identity and mutual respect Advantages enormously productive work best when the problem is difficult function well in a research environment positive attitude toward finding faults Problems Difficult to introduce into an undemocratic environment Democratic teams have to spring up spontaneously Management may have difficulty

Chief Programmer Team Consider a 6-person team Fifteen 2-person communication channels The total number of 2-, 3-, 4-, 5-, and 6-person groups is 57 This team cannot do 6 person-months of work in 1 month

Chief Programmer Team (contd.) Six programmers, but now only 5 lines of communication Analogy -chief surgeon directing operation, assisted by other surgeons, anesthesiologist, nurses, and other experts (e.g. cardiologists, nephrologists) Two key aspects Specialization Hierarchy – communication with the leader (Chief programmer) is vertical

Classical Chief Programmer Team (contd.) Chief programmer - successful manager and highly skilled programmer Does the architectural design Allocates coding among the team members Writes the critical (or complex) sections of code Handles all the interfacing issues Reviews the work of the other team members Is personally responsible for every line of code

Classical Chief Programmer Team (contd.) Back-up programmer - necessary only because the chief programmer is human Must be as competent as the chief programmer Must know as much about the project as the chief programmer Does black-box test case planning and other tasks that are independent of the design process

Classical Chief Programmer Team (contd.) Programming secretary - highly skilled, well paid, central member of the team Maintained the program production library (documentation of project), including source code listings and test data Programmers handed their source code to the secretary who is responsible for conversion to machine-readable form, compilation, linking, loading, execution, and running test cases (in 1971 keypunches were still widely used) Programmers did nothing but program; All other aspects were handled by the programming secretary

Chief Programmer Team -New York Times Project Chief programmer team concept first used in 1971 by IBM to automate the clippings data bank (“morgue“) of The New York Times Results were impressive

The New York Times Project (contd.) 83,000 source lines of code (LOC) were written in 22 calendar months, representing 11 person-years After the first year, only the file maintenance system had been written (12,000 LOC) Most code was written in the last 6 months Principal programmers averaged 10,000 LOC per person-year and one detected fault Almost half the subprograms (usually 200 to 400 lines of PL/I) were correct at first compilation

The New York Times Project (contd.) Only 21 faults were detected in the first 5 weeks of acceptance testing Only 25 further faults were detected in the first year of operation File maintenance system operated 20 months before a single failure occurred

The New York Times Project (contd.) Many successful projects have been carried out using chief programmer team approach Although satisfactory, reported figures are not as impressive as those obtained for the New York Times project –Why?

Why The New York Times Project worked? Prestige project for IBM First real trial for PL/I (developed by IBM) IBM, with superb software experts, used its best people Very strong technical support PL/I compiler writers helped the programmers JCL experts assisted with the job control language Chief programmer -F. Terry Baker Super programmer Superb manager and leader His skills, enthusiasm, and personality carried the project

Why is Classical CPT impractical? Chief programmer must be a highly skilled designer, programmer, and manager Shortage of highly skilled designers and programmers Shortage of successful managers Back-up programmer must be as good as the chief programmer But must take a back seat (and a lower salary) Top programmers and managers will not accept such a role Programming secretary does only paperwork all day Software professionals hate paperwork

Beyond Classical Chief Programmer Team Problem: Chief programmer is personally responsible for every line of code -Must be present at reviews Chief programmer is also team manager -Must not be present at reviews Solution -Two individuals Team leader – responsible for technical aspects Team manager – responsible for non-technical managerial aspects (budgetary, legal issues, and performance appraisals)

Beyond Classical Chief Programmer Team (contd.) Team leader participates in reviews; team manager is not permitted to do so Team manager participates at regular team meetings to appraise technical skills of the team members

Beyond Classical Chief Programmer Team (contd.) This approach is scalable for larger projects Additional layers can be added

Beyond Chief Programmer and Democratic Teams We need ways to organize teams that Make use of the strengths of both democratic teams and chief programmer teams Can handle teams of 20 (or 120) programmers

Beyond CP and Democratic Teams (contd.) Project leader who coordinates specific tasks and team leaders that are responsible for subtasks Decentralize the decision-making process where appropriate Useful where the democratic team approach is good Communication among subgroups and individuals is horizontal Arrows from level to level still point downward (vertical communication)

Synchronize-and-Stabilize Teams Used by Microsoft Windows 2000 – 30 millions LOC, build by over 3000 programmers and testers Products consist of 3 or 4 sequential builds Each build is constructed by small parallel teams 3 to 8 developers 3 to 8 testers (work one-to-one with developers) Team is given the specifications of their overall task Each team member has a freedom to design and implement their portion as they wish

Synchronize-and-Stabilize Teams (contd.) Daily synchronization step – partially completed components are tested and debugged; Individual components always work together Few rules Must adhere to the time to enter the code into the database for that day's synchronization Analogy - letting children do what they like all day … but have to be in bed by 9 pm If developer’s code prevents the build from being compiled for that day synchronization, the problem must be fixed immediately

Synchronize-and-Stabilize Teams (contd.) Individual programmers are encouraged to be creative and innovative – characteristic of democratic team Daily synchronization step - hundreds of developers work toward common goal without communication and coordination characteristics of chief programmer team Will this work in every company? Microsoft consists of a highly talented set of managers and software developers Again, more research is needed

Extreme Programming Teams XP is designed for use with small teams who need to develop software quickly in an environment of rapidly-changing requirements Two programmers work in a collaborative fashion on the same design, algorithm, code or test sharing a single computer - pair programming First, one programmer draws up test cases for the task, then jointly with the other programmer implement the code of the task Strengths If one member of the team leaves, the other has sufficient knowledge to continue working Less experienced professional can learn from more experienced team member Group ownership of the code – feature of egoless team

Comparison of various team organizations Strengths Weaknesses Democratic team Positive attitude to finding faults Good for hard problems Teams that are together for long time Cannot be externally imposed High volume of communication Require more time Classical chief programming team Many successes It is hard to find a chief programmer and back-up programmer Modern hierarchical Separate team manager/team leader Scales up Works well for high modularity Supports decentralization Problems arise if responsibilities of team manager and team leader are not clearly delineated Synchronize-and- stabilize team Encourages creativity Ensures that hundreds developers work toward common goal Not utilized outside Microsoft Extreme Knowledge is not lost if one programmer leaves Less experience programmer can learn Group ownership of code Only small teams Controversial, especially for larger systems Little evidence regarding its efficacy

Final Remarks No single solution for the team organization The “best” team organization depends on Product Difficulty of the problem to be solved Degree to which the problem can be modularized Size of program(s) in lines of code or function points Required quality and reliability of the system to be build Process & Organization Management style in the organization Number of people who will populate the team and their skill levels Previous experience with various team structures Project Rigidity of the delivery date Degree of communication required for the project Cost

Final Remarks Very little research has been done on software team organization Without relevant experimental results, it is hard to determine optimal team organization for a specific product