Software Engineering Roadmap Development process - when to do what phase - document: SPMP Management structure - hierarchical, peer,... Risk identification & retirement Plan project Integrate & test system Analyze requirements Design Maintain Test units Implement Corporate practices Development phases Schedule Cost estimate SPMP
Bullseye Figure for Project Variables cost capability duration defect density Target : $70K Actual : 100% Target : 30 wks Target : 4 defects/Kloc this project Actual : 1 defect/Kloc Actual : 20 wks Actual : $90K Target : 100%
Road Map for Project Management 1. Understand project content, scope, & time frame 2. Identify development process ( methods, tools, languages, documentation and support ) 3. Determine organizational structure (organizational elements involved) 4. Identify managerial process (responsibilities of the participants) 6. Develop staffing plan 5. Develop schedule ( times at which the work portions are to be performed ) 7. Begin risk management 8. Identify documents to be produced 9. Begin process itself
Project Management Activities (continued on next slide) Initiation Project kickoff Team formation Communication infrastructure setup Problem statement definition Initial milestones planning Initial top-level design
Installation Steady state Termination Client acceptance test Postmortem Project agreement Project replanning Status monitoring Risk management Project kickoff
Question: Is system integration a project function?
Mapping of terms: Project Functions in the IEEE 1058 standard are called Integral processes in the IEEE 1074 standard. We call them cross-development processes
Tasks • Smallest unit of work subject to management • Small enough for adequate planning and tracking • Large enough to avoid micro management p:Project f1:Function f2:Function a1:Activity a2:Activity a2.1:Activity a2.2:Activity t1:Task t2:Task t3:Task
Definition: A task assigned to a person that has to be done within a week or less
Appear on the agenda in the Status Section (See lecture on communication)
Cover: What?, Who?, When?
Example of action items:
Florian unit tests class “Foo” by next week
Marcus develops a project plan before the next meeting
Bob posts the next agenda for the Simulation team meeting before Sep 10, 12noon.
The VIP team develops the project plan by Sep 18
Activities • Major unit of work with precise dates • Culminates in project milestone. • Consists of smaller activities or tasks p:Project f1:Function f2:Function a1:Activity a2:Activity a2.1:Activity a2.2:Activity t1:Task t2:Task t3:Task
Example of an Organization Chart Client Management Consultants Cross-functional Teams Logbook Maintenance Vehicle Travel VIP Development Teams Infrastructure Team Architecture HCI Web Master Documentation Configuration Mgt
A commonly accepted model of how teams form and become productive is due to Tuckermann and Jensen (1965); this is a 4-stage model:
forming : the initial stage when the individual groups try to determine the purpose of the group and what role they will play
storming : a conflict-filled stage in which the individuals try to form a group by resolving differences in goals and perspectives. The individuals struggle for status and power within the team
norming : having come to a common understanding of the goals and functioning of the team, the conflict disappears and members focus on the work at hand
performing : the team has developed a clear identity with loyal team members who have a clear understanding of how the team operates and how they will interact as individuals
Two people 1 line of communication Three people Four people Five people 3 lines of communication 6 lines of communication 10 lines of communication n people n(n-1)/2 lines of communication
Optimal Size for Interaction (Approximate) Number of people with whom developer must frequently interact Developer communicates regularly with no one. No communication time lost, but developer is too isolated and has no help. Key: = engineer 3 Effectiveness per developer
Optimal Size for Interaction (Approximate) Number of people with whom developer must frequently interact Developer communicates regularly with eleven people. Communication time outweighs benefits of interaction Developer communicates regularly with no one. No communication time lost, but developer is too isolated and has no help. Key: = engineer Approximate optimal range 3 7 Effectiveness per developer
Peer Organizations for Larger Projects Team of leaders
The process promoter has intimate knowledge of the projects processes and procedures.
The process promoter is in constant interaction with the power promoter to get consensus on the overall goals.
Tasks: Bridge between the power and knowledge promoters, who often do not speak or understand the same language.
Example at project level: Development lead. Responsible for the administrative aspects of a project, including planning, milestones definition, budgeting and communication infrastructure.
Example at corporate level: Chief Information Officer (CIO)
Project Management: Hierarchical Project Organization Chief Executive First Level Manager (“Front-Line Manager”) Project Members Basis of organization: Complicated information and control flow across hierarchical boundaries A B A wants to talk to B: Complicated Information Flow A wants to make sure B does a certain change: Complicated Control flow Information Flow Control Flow
Example of Hierarchical Organization: Chief Programmer Team Chief Programmer Librarian Administration Tester Junior Programmer Assistant Chief Programmer Senior Programmer
Another Project Organization: Egoless Programming Team (Weinberg) Analyst Designer Librarian Tester Programmer
Project-Based Project Organization Project Leader Coaches Team Members Basis of organization: Nonlinear information flow across dynamically formed units Subsystem Team Subsystem Team Subsystem Team A B A wants to talk to B: Communication Flow A wants to make sure B does a certain change: Decision Flow
Assigning Responsibilities To People “ To Do” List for the Project • Item 1 • Item 2 • Item 3 • Item 4 • Item 5 • Item 6 • Item 7 • Item 8 • Item 9 Item 1 Item 2 Item 9 Role 1 Item 4 Item 5 Item 7 Role 2 Item 3 Item 6 Item 8 Role 3 Person A Role 1 Role 2 Person B Role 3 Team A