<- previous index next ->
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 ->