170 likes | 432 Views
Life Cycles. Defining the process that will be used to conduct projects. Definitions. Process Project Product. Why Establish a Process?. It is nearly impossible to have a high quality product without a high quality process.
E N D
Life Cycles Defining the process that will be used to conduct projects.
Definitions • Process • Project • Product
Why Establish a Process? It is nearly impossible to have a high quality product without a high quality process.
Benefits of Establishing a Standard Development Process • We are less likely to miss something or repeat a past failure • Establish Organizational Responsibilities • Improves ability to train people for their tasks • Allows collection of meaningful Process Metrics • better estimation of time and $ • more accurate tracking of progress
Process Management • formal process definition • process measurement • feedback • improvement • optimization
Software Life Cycle Model Process selecting the project model Project Management Processes plan the project management analyze risks retain records problem reporting process define metrics manage product quality Predevelopment Processes feasibility studies identify the customer's needs Development Processes define software requirements design architectural detailed create test data integration testing Post-Development Processes installation training Integral Processes configuration management documentation training on the plan IEEE 1074-1997 this standard describes a process for developing a process
Life Cycle Models • Waterfall • Spiral • incremental development, prototyping, etc • Rapid Application Development • and many, many, many more
Waterfall Model strengths • big errors found early • provides requirements stability weaknesses • impossible if customer doesn't know what they want • document-driven (lots of paperwork)
Spiral Model strengths • well suited to ill-defined problems and new domains weaknesses • little requirements stability
Rapid Application Development • Business Modeling • Data Modeling • Process Modeling • Application Generation • probably mostly reuse of existing modules • Testing • concentrating on interfaces
So which model is best? • when problem is really big • when requirements are only partially known • when problem is similar to other past projects • when the various aspects of the problem are very common problems • when the project will require a proof-of-concept • when the team has little expertise in this area • when the team is composed of excellent designers and analyzers • there is little available interaction with the customer • a system integration project
34 Competencies Product Develop Skills • Awareness of Process Standards - Understanding process standards • Evaluating Alternative Processes - Evaluating various approaches • Tailoring Processes - Modifying standard processes to suit a project • Assessing Processes - Defining criteria for reviews • Defining the Product - Identifying customer environment and product requirements • Managing Requirements - Monitoring requirements changes • ManagingSubcontractors - Planning, managing, & monitoring performance • Performing the Initial Assessment - Assessing difficulty, risks, costs and schedule • Selecting Methods and Tools - Defining selection processes • Tracking Product Quality - Monitoring the quality of an evolving product • Understanding Development Activities - Learning the software development cycle
34 Competencies Project Management Skills • Building a WBS - Building a work breakdown structure for a project • Documenting Plans - Identifying key components • Estimating Costs - Estimating cost to complete the project • Estimating Effort - Estimating effort required to complete the project • Managing Risks - Identifying and determining the impact of risks • Monitoring Development - Monitoring the production of software • Scheduling Work - Creating a schedule and key milestones • Selecting Metrics - Choosing and using appropriate metrics • Selecting Project Management Tools - Knowing how to select PM tools • Tracking Processes - Monitoring compliance of project team • Tracking Project Progress - Monitoring progress using metrics
34 Competencies People Management Skills • Appraising Performance - Evaluating teams to enhance performance • Handling Intellectual Property - Understanding the impact of critical issues • Holding Effective Meetings - Planning and running excellent meetings • Interaction and Communication - Dealing with developers, upper management, and other teams • Leadership - Coaching project teams for optimal results • Managing Change - Being an effective change agent • Negotiating Successfully - Resolving conflicts and negotiating successfully • Planning Careers - Structuring and giving career guidance • Presenting Effectively - Using effective written and oral skills • Recruiting - Recruiting and interviewing team members successfully • Selecting a Team - Choosing highly competent teams • Teambuilding - Forming, guiding, and maintaining an effective team
“Homework” for next class… • Which two or three competencies are the most important? • Justify your answer.
Next Time… • Common reasons why projects fail. • Domain Processes • knowing how your customer's company works is essential for the success of your project • Creating an appropriate Project Team