4/28/10 31P5 Software Engineering I

  • 721 views
Uploaded on

 

More in: Business , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
721
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
22
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Tthe central notion of project management is the software project. It defines the technical and managerial activities to develop a product and deliver it to the client. The central part of the managerial activities is the software project management plan. A project consists of activities, tasks, and functions.
  • Examples of tasks: Selection of a database management system (Database) Selection of a visualization system (Visualization) Selection of a user interface builder (UI) Reading the help bulletin board (TA) Define documentation and coding standards (Architecture)
  • Totally hierarchical Talk about the roles: Chief the main dictator, assistant joined the company 2 years ago... Batch oriented When talking abou the libriarian, play somebody who is pushing a shopping cart at the Giant Eagle: Dispatching the lineprinter printouts to the various offices!!
  • Project-based organizations create bridges within organizations and bridge boundaries outside with customers, suppliers, and competitors. Teams are the foundation unit of these new patterns of interconnection and interdependence. Telecommunications technology is the nervous system that holds these networks together. Groupware is the collaboration support technology that shapes and holds the activity of teams within those networks." Project-based organizations are based on the fct that ever-shifting networks of teams that cross traditional, formerly forbidden boundaries, linking once-competing organizations into ecosystems of cooperation
  • We are using several heuristics that have worked well in previous project courses. Give the size of this project, it does not necessarily mean that they are successful in this project.
  • Role switching: Used to work well for smaller groups. We still encourage switching of group leaders, but now for smaller times

Transcript

  • 1. 31P5: Software Engineering I Project Management
  • 2. Aims
    • Understand the term “project management”
    • Organize teams
    • Specify project management plans
    • Define and retire risks
    • Estimate costs very early in the life cycle
    • Create high level projects schedules
    • Write a Software Project Management Plan
  • 3. 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
  • 4. The Variables of Project Management
    • Can somewhat vary the following factors.
    • 1. The total cost of the project,
      • e.g., increase expenditures
    • 2. The capabilities of the product,
      • e.g., subtract from a list of features
    • 3. The quality of the product,
      • e.g., increase the mean time between failure
    • 4. The date on which the job is completed.
      • e.g., reduce the schedule by 20%
      • e.g., postpone project's completion date one month
  • 5. Bullseye Figure for Project Variables cost capability duration defect density Target : $70K Target : 30 wks Target : 4 defects/Kloc Target : 100%
  • 6. 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%
  • 7. 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
  • 8. Software Project Management Plan
    • Software Project:
      • All technical and managerial activities required to deliver the deliverables to the client.
      • A software project has a specific duration, consumes resources and produces work products .
      • Management categories to complete a software project:
        • Tasks, Activities, Functions
    • Software Project Management Plan:
      • The controlling document for a software project.
      • Specifies the technical and managerial approaches to develop the software product.
      • Companion document to requirements analysis document: Changes in either may imply changes in the other document.
      • SPMP may be part of project agreement.
  • 9. Project Agreement
    • Document written for a client that defines:
      • the scope, duration, cost and deliverables for the project.
      • the exact items, quantities, delivery dates, delivery location.
    • Can be a contract, a statement of work, a business plan, or a project charter.
    • Client: Individual or organization that specifies the requirements and accepts the project deliverables.
    • Deliverables (= Work Products that will be delivered to the client):
      • Documents
      • Demonstrations of function
      • Demonstration of nonfunctional requirements
      • Demonstrations of subsystems
  • 10. Project Agreement vs Problem Statement
  • 11. 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
  • 12. Installation Steady state Termination Client acceptance test Postmortem Project agreement Project replanning Status monitoring Risk management Project kickoff
  • 13. Project: Functions, Activities and Tasks p:Project f1:Function f2:Function a1:Activity a2:Activity a3:Activity a2.1:Activity a2.2:Activity a2.3:Activity t1:Task t2:Task t3:Task t4:Task
  • 14. Functions
    • Activity or set of activities that span the duration of the project
    p:Project f1:Function f2:Function a1:Activity a2:Activity a3:Activity a2.1:Activity a2.2:Activity a2.3:Activity t1:Task t2:Task t3:Task t4:Task
  • 15. Functions
    • Examples:
      • Project management
      • Configuration Management
      • Documentation
      • Quality Control (Verification and validation)
      • Training
    • 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
  • 16. 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
  • 17. Tasks
    • Smallest unit of management accountability
      • Atomic unit of planning and tracking
      • Finite duration, need resources, produce tangible result (documents, code)
    • Specification of a task: Work package
      • Name, description of work to be done
      • Preconditions for starting, duration, required resources
      • Work product to be produced, acceptance criteria for it
      • Risk involved
    • Completion criteria
      • Includes the acceptance criteria for the work products (deliverables) produced by the task.
  • 18. Task Sizes
    • Finding the appropriate task size is problematic
      • To do lists from previous projects
      • During initial planning a task is necessarily large
      • You may not know how to decompose the problem into tasks at first
      • Each software development activity identifies more tasks and modifies existing ones
    • Tasks must be decomposed into sizes that allow monitoring
      • Work package usually corresponds to well defined work assignment for one worker for a week or a month.
      • Depends on nature of work and how well task is understood.
  • 19. Examples of Tasks
    • Unit test class “Foo”
    • Test subsystem “Bla”
    • Write user manual
    • Write meeting minutes and post them
    • Write a memo on NT vs Unix
    • Schedule the code review
    • Develop the project plan
    • Related tasks are grouped into hierarchical sets of functions and activities.
    • Action item
  • 20. Action Item
    • Definition: A task assigned to a person that has to be done within a week or less
    • Action items
      • 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
  • 21. 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
  • 22. Activities
    • Major unit of work
    • Culminates in major project milestone:
      • Internal checkpoint should not be externally visible
      • Scheduled event used to measure progress
    • Milestone often produces baseline:
      • formally reviewed work product
      • under change control (change requires formal procedures)
    • Activities may be grouped into larger activities:
      • Establishes hierarchical structure for project (phase, step, ...)
      • Allows separation of concerns
      • Precedence relations often exist among activities (PERT Chart)
  • 23. Examples of Activities
    • Major Activities:
      • Planning
      • Requirements Elicitation
      • Requirements Analysis
      • System Design
      • Object Design
      • Implementation
      • System Testing
      • Delivery
    • Activities during requirements analysis:
      • Refine scenarios
      • Define Use Case model
      • Define object model
      • Define dynamic model
      • Design User Interface
  • 24. Structure of a Software Project Management Plan
    • Front Matter
    • 1. Introduction
    • 2. Project Organization
    • 3. Managerial Process
    • 4. Technical Process
    • 5. Work Elements, Schedule, Budget
    • Optional Inclusions
  • 25. SPMP Part 0: Front Matter
    • Title Page
    • Revision sheet (update history)
    • Preface: Scope and purpose
    • Tables of contents, figures, tables
  • 26. SPMP Part 1: Introduction
    • 1.1 Project Overview
      • Executive summary: description of project, product summary
    • 1.2 Project Deliverables
      • All items to be delivered, including delivery dates and location
    • 1.3 Evolution of the SPMP
      • Plans for anticipated and unanticipated change
    • 1.4 Reference Materials
      • Complete list of materials referenced in SPMP
    • 1.5 Definitions and Acronyms
  • 27. SPMP Part 2: Project Organization
    • 2.1 Process Model
      • Relationships among project elements
    • 2.2 Organizational Structure
      • Internal management, organization chart
    • 2.3 Organizational Interfaces
      • Relations with other entities
    • 2.4 Project Responsibilities
      • Major functions and activities; nature of each; who’s in charge
  • 28. Process Model
    • Shows relationships among
      • Functions, activities, tasks
      • Milestones
      • Baselines
      • Reviews
      • Work breakdown structure
      • Project deliverables
      • Sign-offs
    • Visualization of process model
    • Project Management Aids
      • MS Project (Microsoft)
      • MAC Project (Claris)
      • EasyTrak (Planning Control International)
  • 29. 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
  • 30. Project Roles
    • Planner
    • Analyst
    • Designer
    • Programmer
    • Tester
    • Maintainer
    • Trainer
    • Document Editor
    • Web Master
    • Configuration Manager
    • Group leader
    • Liaison
    • Minute Taker
    • Project Manager
  • 31. Kinds of people
    • Two people for the same job title may differ in at least one of the following ways:
      • ability to perform the work
      • interest in the work
      • experience with similar applications
      • experience with similar tools or languages
      • experience with similar techniques
      • experience with similar development environment
      • training
      • ability to communicate with others
      • ability to share responsibility with others
      • management skills
    • Each of these characteristics can affect an individual’s ability to perform productively
  • 32. Work styles
    • You can think of your preferred work style in terms of two components:
      • the way in which your thoughts are communicated and ideas gathered, and
      • the degree to which your emotions affect decision making
    • When communicating ideas, some people tell others their thoughts, and some ask for suggestions from others before forming an opinion
    • Jung (1959) called the former extroverts , and the latter i ntroverts
    • Similarly, intuitive people base their decisions on feelings about and emotional reaction to a problem
    • Others are rational , deciding primarily by examining the facts and carefully considering options
  • 33. Work styles
    • Intuitive introverts are creative but apply creativity only after having gathered sufficient information on which to base a decision
    • Intuitive extroverts base many decisions on emotional reaction, tending to want to tell others about them rather than ask for input
    • Rational introverts avoid emotional decisions but they are willing to take time to consider all possible courses of action
    • Rational extroverts tend to assert their ideas and not let gut feeling affect their decision making
  • 34. INTUITIVE RATIONAL INTROVERT EXTROVERT INTUITIVE INTROVERT: Asks others Acknowledges feelings INTUITIVE EXTROVERT: Tells others Acknowledges feelings RATIONAL INTROVERT: Asks others Decides logically RATIONAL EXTROVERT: Tells others Decides logically
  • 35. Team dynamics
    • 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. Peer Organizations for Larger Projects Team of leaders
  • 40. Project Roles
    • Management roles
      • Organization and execution of the project within constraints. Examples: project manager, team leader.
    • Development roles
      • Specification, design and construction of subsystems. Examples: Analyst, system architect, implementor.
    • Cross functional roles
      • Coordination of more than one team. Example: API Engineer, configuration manager, tester
    • Consultant roles
      • Support in areas where the project participants lack expertise. Examples: End user, client, application domain specialist ( problem domain), technical consultant (solution domain).
    • Promoter roles
      • Promote change through an organization.
  • 41. Promoter Roles
    • Promoters are self appointed individuals who identify themselves with the outcome of the project.
    • They are member of the corporate organization and may not necessarily be directly involved with the project. Instead, they are interfaces to the rest of the corporate organization.
    • Because of the power, knowledge of technology, or familiarity with the project’s processes, they are able to promote and push specific changes through the organization.
  • 42. Power Promoter
    • Also called executive champion
    • Pushes the change through the existing organizational hierarchy.
      • not necessarily at the top of the organization, but must have protection from top level management, otherwise project opponents might be able to prevent the success of the project.
    • Tasks:
      • constantly identify difficulties, resolve issues, and communicate with the project members, especially with the developers.
    • Example at project level: Project Manager.
    • Example at corporate level: Chief Executive Officer (CEO).
  • 43. Knowledge Promoter
    • Also called the technologist,
    • Promotes change arising in the application domain or the solution domain. Usually associated with the power promoter.
    • Tasks: Acquire information iteratively, understand the benefits and limitations of new technologies, and argue its adoption with the other developers.
    • Example at project level: System architect.
      • Reports to project manager
      • Does not have any direct subordinate in the reporting hierarchy
      • Has final say over all technical decisions in the system.
    • Example at corporate level: Chief Technical Officer (CTO).
  • 44. Process Promoter
    • 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)
  • 45. 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
  • 46. Example of Hierarchical Organization: Chief Programmer Team Chief Programmer Librarian Administration Tester Junior Programmer Assistant Chief Programmer Senior Programmer
  • 47. Another Project Organization: Egoless Programming Team (Weinberg) Analyst Designer Librarian Tester Programmer
  • 48. 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
  • 49. Associations in organizational structures
    • Reporting association:
      • Used for reporting status information
    • Decision association
      • Used for propagating decisions
    • Communication association
      • Used for exchanging information needed for decisions (e.g., requirements, design models, issues).
  • 50. Observations on Management Structures
    • Hierarchical structures
      • “Reports”, “Decides” and “Communicates-With” all mapped on the same association
      • Do not work well with iterative and incremental software development process
      • Manager is not necessarily always right
    • Project-based structures
      • “Reports”, “Decides” and “Communicates-With”are different associations
      • Cut down on bureaucracy reduces development time
      • Decisions are expected to be made at each level
      • Hard to manage
  • 51. Hierarchical Structure
    • Projects with high degree of certainty, stability, uniformity and repetition.
      • Requires little communication
      • Role definitions are clear
    • When?
      • The more people on the project, the more need for a formal structure
      • Customer might insist that the test team be independent from the design team
      • Project manager insists on a previously successful structure
  • 52. Project-Based Structure
    • Project with degree of uncertainty
      • Open communication needed among members
      • Roles are defined on project basis
    • When?
      • Requirements change during development
      • New technology develops during project
  • 53. 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
  • 54. Possible Mappings of To Dos to People
    • One-to-One
      • Ideal but often not worth to be called a project
    • Many-to-Few
      • Each project member assumes several roles ("hats")
      • Danger of over-commitment
      • Need for load balancing
    • Many-to-"Too-Many"
      • Some people don't have significant roles
      • Bystanders
      • Loosing touch with project
  • 55. Team Formation
    • Top level Design
      • “Rough” Subsystem Decomposition (before requirements analysis)
      • Done during Predevelopment phase
    • Team Formation done after Top Level Design
    • Heuristics:
      • One team for each subsystem
      • One cross-functional task per team
      • 5-7 members per team
    • Be prepared to iterate the team formation after system design when the subsystem decomposition is baselined
  • 56. Project Roles: Coach
    • Listen to gripes from individual teams
    • Review weekly team reports
    • Attend weekly project meetings
    • Schedule and prepare meetings with client
    • Insist that guidelines are followed
    • Assign presentations (in-class project meetings, client review, client acceptance test)
    • Resolve conflicts if they cannot be resolved otherwise
  • 57. Project Role: Group leader
    • Responsible for intra-group communication (Meeting Management: Primary Facilitator)
      • Run the weekly project meeting
      • Post agenda before meeting
      • Define and keep track of action items (who, what, when)
      • Measure progress (Enforce milestones)
      • Deliver work packages for the tasks to the project management
      • Present problems and status of team to project manager
    • The group leader has to be rotated among members of the team.
  • 58. Group Leader: Create an Agenda
    • Purpose of Meeting
    • Desired Outcome
    • Information Sharing
    • Information Processing
    • Meeting Critique
    Action Items (Check Previous Meeting) Issues (Check Previous Meeting & BBoards)
  • 59. Project Role: Liaison
    • Responsible for inter-group communication
      • Make available public definitions of subsystem developed by the team to the architecture teams (ensure consistency, etc)
      • Coordinate tasks spanning more than one group with other teams
    • Responsible for team negotiations
    • Examples: API Engineer, Configuration manager
  • 60. Project Role: Planner
    • Plans and tracks the activities of an individual team and has the following responsibilities.
    • Define project plan for team:
      • PERT chart, resource table and GANTT chart showing work packages
      • Enter project plan into project management tool
    • Make project plan available to management
    • Report team status to project manager No explicit planner in PAID. Responsibilities assumed by coaches
  • 61. Project Role: Document Editor
    • Collect, proofread and distribute team documentation
    • Submit team documentation to architecture team
    • Collect agendas
    • Take minutes at meetings
  • 62. Web Master
    • Maintain team home page
    • Keep track of meeting history
    • Keep track of design rationale
  • 63. Web Master:
    • Publish Meeting Information on Team Homepage
      • Must contain Agenda, minutes, action items and issues
      • Possibilities:
        • One HTML document per meeting, with anchors (maintained by one role)
        • Separate HTML documents for Agenda, Minutes, etc (maintained by several roles)
    Date 9/9/96 Agenda Minutes Action Items Issues Agenda Minutes Action Items Issues 9/16/96 Agenda Minutes Action Items Issues
  • 64. How do you become a good project planner?
    • Establish a project plan
      • Start with the plan based on your experience with the last project(s)
    • Keep track of activities and their duration
    • Determine difference between planned and actual performance
    • Make sure to do a post-mortem
      • Lessons learned
      • Ask developers for feedback
      • Write a document about what could have been improved
  • 65. Project Management Heuristics
    • Make sure to be able to revise or dump a project plan
      • Complex system development is a nonlinear activity
    • If project goals are unclear and complex use team-based project management. In this case
      • Avoid GANTT charts and PERT charts for projects with changing requirements
      • Don’t look too far into the future
    • Avoid micro management of details
    • Don’t be surprise if current project management tools don’t work:
      • They were designed for projects with clear goals and fixed organizational structures
  • 66. Summary
    • In this lecture, we have looked at various aspects of project management, team organisation, and project management plans
    • We still need to consider the problems associated with risk, cost estimation of a project, project schedules