SE 652 Software Quality Management

Download Report

Transcript SE 652 Software Quality Management

SE 652 Software Quality Management Summer 2007

Lee Vallone

5/22/2007

Ring Software, Ltd.

You were previously a project manager at Ring Software who has just been promoted to lead the EZ Procurement Release 2 project, a B to B system that enables customers to automate their procurement processes and achieve price reductions through the included supplier bidding system. Release 1 was a dismal “success”. Though the project finally got out the door, it was a year late, under-featured and “buggy”. The customers are very unhappy with the release and sales are suffering, putting the company’s future at risk. Team morale is awful. They worked nights and weekends for the last 2+ years and are worn out. Recently, developers have started resigning to find their fortunes elsewhere, rather than face a repeat performance on R2. There are extensive standard processes, but most are not followed with the excuse that there isn’t enough time. Your predecessor was terminated on the grounds of mismanaging the release.

Your job is to deliver R2 with quality, on time and on budget or suffer the fate of your predecessor.

SE 652 - Software Quality Management 2

Intro to SE 652

“The major problems of our work are not so much technological as sociological in nature.” In most development organizations managers spend most of their time solving technical problems, instead of addressing the political & interpersonal issues that are the real culprits for the high failure rate of software projects. Similarly, we teach students the virtues of use-cases and spiral development models, frequently ignoring the true keystones of student success in the project world: teamwork, collaboration and the processes that tie everything together.

Course objectives: 1.

2.

To help students develop a broad understanding of the requirements and considerations in planning, managing and implementing a software project, with special emphasis on teams, processes & metrics. To help students understand (and experience) the role and importance of sociological issues and how to address them in a way that substantially increases the probability of project and personal success. It is based on the premise that software engineering is so much more than the technical disciplines. 5/22/2007 SE 652 - Software Quality Management 3

SE 652 Course Perspective

About

: putting it all together

Perspective of

: a project leader responsible and accountable for delivering a product Managing constraints (quality, budget & staff, schedule, functionality) Direct and indirect coaching responsibility for a cross-discipline team Focus on: • Leadership and membership in high performance, gelled

teams

• Quality control including processes, audits, assessments, etc.

• Estimation • Measurement • Strategic & tactical considerations

At conclusion

: course participants will understand what it takes to plan, manage & execute a software project.

5/22/2007 SE 652 - Software Quality Management 4

SE 652 Introductions

Introduction Professor: Lee Vallone Email: [email protected]

Voice: 732-949-4651 (office) Mobile: 908-313-2053 (cell) Office Hours: on request Course Web Link: http://www.monmouth.edu/~lvallone Lecture slides will be posted prior to start of class Course Etiquette Lecture attendance is mandatory Be on time! (including returns from breaks) Cell phones off or silent Critical that assignments are done on time & with quality!

Quality contributions to classroom discussions requested & expected Private discussions during class are inappropriate 5/22/2007 SE 652 - Software Quality Management 5

SE 652 Class Structure

Classroom tries to mimic the workplace Significant workload Speak up Not a democracy, but … Strife & Conflict happens Expected behavior Learning Modes Hands on / team project Text & Lectures Presentations Class Participation 5/22/2007 SE 652 - Software Quality Management 6

SE 652 Work Activities

Organized by teams of 3-4 for entire session Team project Some time allotted in class Reviews, planning, testing Expected to meet at least once/week outside of class Individual deliverables to team Classroom presentations Team leader responsible for team performance Appraisals Preparation for other topics Reading materials (texts) & lectures 5/22/2007 SE 652 - Software Quality Management 7

Lecture & Texts

Lecture Details: ~Three Hours of Lecture, Discussion & Presentations w/ 15 minute break (90 minute rule) Typically, 1/3 selected topic, 1/3 team project & 1/3 team presentations or meeting Texts: Peopleware (DeMarco & Lister) Introduction to the Team Software Process (Humphrey) Practical Software Measurement (McGarry, et.al.) Recommended Readings: PSP: A Self Improvement Process for Software Engineers (Humphrey) The Mythical Man Month (Brooks) Death March (Yourdon) Dancing with Bears (DeMarco, Lister) The Dilbert Principle (Adams) 5/22/2007 SE 652 - Software Quality Management 8

Course Topics

Personal Software Process Team Software Process Process Standards & Audits: ISO 9000, TL9000 Process Assessments: SEI’s CMMI Measuring Software Quality Death March Projects Configuration Management Team & Development Issues Risk Management Commitment Trust … 5/22/2007 SE 652 - Software Quality Management 9

Grading

Texts do not fully cover the course material!

Team vs. Individual 25% - Classroom Participation & Exercises • Every student expected to attend class & contribute • Quality contributions are appreciated 45% - Team Projects Achieving schedule @ high quality is critical • Completed Project • Quality Records (e.g. project notebook, forms) • Class Presentations • Peer Feedback 30% - Final Exam Will not be based on regurgitation from texts or lectures 5/22/2007 SE 652 - Software Quality Management 10

Team Project Process

We will loosely follow Watts Humphrey’s PSP & TSP processes – Heavyweight (we can discuss lightweight processes) – Assumes Personal Software Process Familiarity – Requires extensive quality records for both individuals & teams – Key records: • Personal time log • Team project notebook Measurement activities will follow the PSM strategy – Create & manage to a measurement plan 5/22/2007 SE 652 - Software Quality Management 11

TSP Objectives

• Expose students to problems of developing software intensive products • Guide teams through a Team Development Process • Demonstrate benefits of using a defined & measured process 5/22/2007 SE 652 - Software Quality Management 12

TSP Lessons

• Data Gathering, initially viewed as a burden until second nature • Without a disciplined process, development & testing of even small programs can take a

long time

• With a disciplined process, teams will finish projects on time, products will work & fly through the test phase 5/22/2007 SE 652 - Software Quality Management 13

Team Project

Lines of Code Counter Teams of 4-5 Team Selection Two iterations Functionality (TSPi Appendix A) Team decides iteration contents SVT Function Roles (see next slide) 5/22/2007 SE 652 - Software Quality Management 14

Change Counter Project

Functional Need Statement

(TSP Appendix A)

– Team reviews each need & targets iteration – Prepare Response (e.g. Technical Prospectus, Project Plan) – Negotiate with customer – Develop Detailed Requirements based on agreement (SRS) • Include traceability back to original functional need statement 5/22/2007 SE 652 - Software Quality Management 15

Change Counter Project

Functions e.g. Compare; Identify Added/Deleted/Changed; Language, Print Counting Specifications e.g. Define LOC, Define Add/Delete/Changed Header Labeling e.g. Date of change, programmer, reason, LOC information Formatting e.g. Line labels User Documentation e.g. Usage, detailed description, integrated vs. separate 5/22/2007 SE 652 - Software Quality Management 16

Development Process Phases

Launch / Strategy Development Strategy, Functional Need Response, Project Plan, Risk Assessment, Size & Time Estimates Plan Development Plan, Quality Plan, Configuration Management Plan, Measurement Plan Requirements Software Requirements Specification (SRS), System Test Plan Design High Level Design & Software Design Specification (SDS) Implementation Detailed Designs, Unit Test Plans, Code, Integration Test Plan Test Test & Rework Post-Mortem Team Performance, Peer Reviews, Project Appraisal 5/22/2007 SE 652 - Software Quality Management 17

TSP Project Documentation

Quality Records Development Strategy / Conceptual Design / Project Plan Software Requirements Specification (SRS) High Level Design (HLD)* Software Design Specification (SDS) Code Build & Integration Plan System Test Plans User Documentation Process / Guidance Documents Quality Plan / Measurement Plan Process Improvement Process Development Standards Change Control & Configuration Management Process 5/22/2007 SE 652 - Software Quality Management 18

TSP Project Documentation (continued)

Planning / Metrics / Tracking Records Issue & Risk Log (ITL) Size & Time Estimates Task & Schedule Plan (TASK / SCHEDULE) Various Summary & Performance Forms (e.g. SUMDI, SUMDR, SUMP, SUMQ) Miscellaneous Change Control Board Inspections Configuration Management System Tools & Development Environment Team meeting minutes 5/22/2007 SE 652 - Software Quality Management 19

Sample Project Notebook

Index Team member descriptions Team meeting minutes Risk & Issue Management Project Cycle Reports Schedule Tracking Project Documents (SRS, SDS, Detailed Design) Process Documents (CM plan, Design & Coding standards, Naming conventions) Inspection Quality Records Code Change Request Tracking Test Documents (ITP, STP, Test Results) 5/22/2007 SE 652 - Software Quality Management 20

Team Roles

• Team Leader • Development Manager • Planning Manager • Quality / Process Manager • Support Manager 5/22/2007 SE 652 - Software Quality Management 21

Common Responsibilities

Project development Data collection (LOGT, LOGD) Responsible team member – Time Commitment – Quality Commitment – Teamwork Commitment 5/22/2007 SE 652 - Software Quality Management 22

Team Leader

• Overall accountability for team performance • Build & maintain an effective team • Motivate team members • Quickly & effectively identify & resolve issues • Keep instructor informed • Team meeting facilitator & timekeeper • Lead development of cycle report • Maintain project notebook 5/22/2007 SE 652 - Software Quality Management 23

Development Manager

• Accountable for development of a quality product from requirements to implementation • Lead development strategy (STRAT) • Preliminary size & time estimates • Lead SRS development • Lead HLD & SDS development • Lead implementation and unit test • Lead build & integration planning & execution • Lead User Documentation

Note: Recommend System Test Plan be developed by Quality Manager (deviation from text recommendation)

5/22/2007 SE 652 - Software Quality Management 24

Planning Manager

• • • • • • • Accountable for planning, tracking & reporting team status Produce initial plan (SUMS, TASK) Develop schedule Balance team plan Track progress against plan – SUMP & SUMQ Forms – Earned Value & time chart – Weekly status reports – Analysis of actual performance vs. plan Weekly data collection – Time spent, task completion data, defects found, size data, LOGD, LOGT, SUMS, TASK & SCHED forms – Generate composite – TASK, SCHED, SUMP, SUMQ forms – Weekly team Earned Value & Gantt charts Generate Weekly status report including analysis of plan vs. actual 5/22/2007 SE 652 - Software Quality Management 25

Quality / Process Manager

• • • • • • • • Accountable for developing and ensuring conformance to processes Accountable for assessing overall quality of deliverables & approving Accountable for team data entry Lead development of team processes – e.g. change management, issue tracking Establish & maintain team development standards – Coding, design, documentation (user & internal) – Naming, error handling, interfaces, messages, screens, reports – Line of Code counting, Reuse Review & Approve all submissions for baselining – Based on: process data available, underlying quality development process & data indicating product is of suitable quality Inspection moderator (INS) – Review logistics, verify preparation, keep meeting running smoothly, determine final review status, data collection Meeting Recorder 5/22/2007 SE 652 - Software Quality Management 26

Support Manager

• Accountable for tools, methods & configuration management • Determine needs & obtain / setup needed tools & facilities • Manage configuration management system – Saving, tracking, submission/retrieval, change handling • Maintain system glossary • Maintain issue & risk tracking system • Reuse advocate 5/22/2007 SE 652 - Software Quality Management 27