<- previous    index    next ->

Lecture 18, Project Management

Much of this from "Software Engineering" by E.J.Braude  Ch 2.

"Project Management" consist of managing the production of a
product within given time and funding limits.
e.g. Syllabus dates and your available time for this class. 

The project manager has some control over the following:
1. Total cost of the project, mostly labor hours for software.
2. The capabilities of the product, within the requirements.
3. The quality of the product, minimize defects.
4. The duration of the project, within customer requirements
   and balancing 1., 2., 3. above.


Project manager controls:
1. Structure of organization, task assignments for
   task leaders, designers, implementers, testers, etc.
2. Managerial process, responsibilities to above,
   supervision of employees and possibly contractors
3. The Development Process, e.g. Waterfall, Spiral, RUP,
   Agile, etc. and tailoring chosen process to product.
4. Schedule, allocation for each task in each development
   phase.


Tradeoff Variables: Cost, Functionality, Quality, Schedule.
From Westinghouse Defense Center manager:
"You can produce the product quickly, low cost, good quality,
 pick any two."
Thus, the goal of the project manager is to deliver the product
1. Within required schedule, assuming a reasonable schedule.
2. Within budgeted or quoted cost, assuming reasonable.
3. With a quality that is acceptable to the customer(s).

And, making decisions, based on experience, to take only
reasonable risks. Taking zero risks will cause cost and
schedule overrun.


A road map for Project Management (Some flexibility on order)
1. Understanding project content, scope, time frame, applicable standards
   Certifications such as CMM or ISO 9000 may be required.
2. Identify development process
   methods, tools, languages, OS, GUI, documentation, support
3. Determine organizational structure
   Partition project into task elements
4. Identify managerial process
   Assign responsibilities for participants
5. Develop schedule
   Times at which the work tasks are to be performed
6. Develop staffing plan, qualifications of the team
7. Begin risk management
   Implement cost tracking, schedule tracking, progress tracking,
   metrics tracking
8. Identify documents to be produced
   e.g. SRS, SDD, CIR, TR, AM or users manual (electronic ?)
9. Begin process itself
   My bad humor: Just before a new employee starts their
   first day working for me, I place a folder on their desk.
   The first page list two or three task and a schedule
   that shows their first task is already over due.


Methods to attain a required quality level:
1. Inspections
   Check documentation standards are followed.
   Quality Assurance code walk throughs, code audits,
   code metrics measured, check style guide conformance
2. Formal method being used
   Check each stage of development and each task for
   compliance with the required formal method.
   Check on risk reduction applications such as
   code reuse from previous projects, rapid prototyping,
   prevention of feature growth beyond specification
3. Testing
   Unit test for catching bad inputs, for correct output
   given legal input, stress test units that may be
   critical to keep product running, no unhandled exceptions,
   no access outside arrays, no bad references or pointers.
   Integration test, incremental build with testing as each
   module is added to the product.
   Final acceptance test, end to end, including bad inputs
   to check quality of diagnostic messages
   (A miss spelled word in a diagnostic message is counted
    as a defect. Consider running a spell checker on
    every file, both code and data.)
4. General Project Control:
   May have large project chart for all to see,
   planned schedule and cost and quality measures vs.
   actual, updated every week.
   Project manager may have a confidential version with
   annotation about each task and each participant.
   Typically, once a year, every employee must be
   evaluated by one or more levels of management. Most
   managers keep a confidential file on every person
   who is working for them.


Some synonyms:
  Participant = worker = employee or contractor = team member
  Task = work item = portion = job to be performed
  Module = file = code or data = part of product


This was just about "Project Management".

Most companies have a matrix organization consisting
of permanent divisions, departments, groups that are
called "Line Management" and there is typically an
organization chart showing the "Line" organization.

Then, as contracts or jobs are bid and won, or a new
product is to be developed, a "Project" is created with
a "Project Manager" and the project manager forms a
project team by drawing on people from various line
management organizations. A large project may have
one or more deputy managers, one or more accountants
who monitor cost (mostly labor hours), specialist in
product design, product implementation, product testing,
documentation, and possibly a dedicated quality assurance
person. The project may get its own physical area and
move people from their line management desk into the
project area. As a worker, you did not eliminate a boss,
you just acquired another boss. :)

The project would be dissolved when completed or if
the project seems to be failing and is terminated.
Workers would return to their line management desk when
their specific project task on the project was completed.
Yes, layoffs may happen if not enough projects are
available or a major project ends with no replacement
in sight.


The "Line Management" organizations may have their
own internal work such as developing infrastructure, 
processes, tools, etc.

    <- previous    index    next ->

Other links

Go to top