Why Software Projects Need Heroes James Bach, SQA Consultant http://www.satisfice.com 540-631-0600 With heroic assistance from Norm Kerth email@example.com Why this Seminar?u Goal 4Show you how it is possible for you, personally, to change your software project, department, or company into a higher performance organization.u Strategy 4Provide a human-centered framework for software project management. 4Provide a personal framework for solving systemic problems in software projects.
Roadmap1. Chronic software project problems2. Software process dynamics3. Heroism in software projects4. Quality assurance as a heroic pursuit5. Traditional vs. heroic project models6. Achieving a heroic environment7. Being a healthy hero Chronic Problems of Software Project Managementu Uncontrolled feature setu Undesireable feature setu Uncontrolled schedule Here are just a few...u Uncontrolled costsu Poor documentationu Overall lack of communicationu Uncontrolled risk
One Solution Better software process! Preferred by: 4Most consultants 4TQM advocates 4SEI’s Capability Maturity Model 4ISO 9000 Why Defined Processes are Not the AnswerPeople Process
Defined Process Vs. Good Processu Process: pattern of problem-solving behavioru Defined process: standard pattern to solve a standard problem A good process is one that solves the right problems. Mechanical vs. Creative Process u Mechanical u Creative 4 All important steps defined. 4 Important steps undefined. 4 All problems solved 4 Many problems must be solved beforehand. by the practitioner. 4 No ambiguity. 4 Considerable ambiguity. 4 No judgment required. 4 Judgment required. 4 Predictable output. 4 Situational output. 4 Static and brittle. 4 Dynamic and flexible. 4 Can be performed by an 4 Requires skilled practitioner. unskilled person.
There are No Software Factories Software development is invention, not production. = In Software Projects Most Process is Creative cal h aniMec Specificity Undefinable Process e ativ Scope Cre Loc al bal Glo
Dynamic Process A dynamic process is one that changes to fit the problem at hand. A good dynamic process comes from having a good meta-process, and someone who will perform it. Example of Dynamic Process BusinessCustomer Satisfaction Product Development Quality Assurance Testing
Dynamic Process Cycle actual percieved The World Scientist Craftsman Aspects ofactual Process Plans Models ideal Engineer actual ideal Process Integration ProcessProblem Processor Solution
Problems with Unintegrated Processesu Mistakes and misunderstandingsu Feelings of incompetenceu General inefficiencyu Obscures true processu Obscures true problems (goal displacement)u Inflexibility Problems with Highly Integrated Processesu Harder to transfer the processu Harder to share the processu Harder to debug the processu Identity becomes confused with the process
Dangers of Process Definition Unintegrated Integrated Bad Official 2. Assimilation Process process 3. Adjustment Good Useful 1. Definition Process processProcess definition often leads to official processes that may be politically correct, but are also incomplete, idealistic, and unfamiliar to the people who must practice them. IBM in the 80’s Process-Performing Process Tools People See Big Blues: The Unmaking of IBM, by Paul Carroll
Microsoft in the 80’s Problem-Solving People Skill & Collaboration Process Tools See Showstopper, by F. Pascal Zachary Who Processes the Processes? Heroes! "A hero is someone who, for the general good,takes initiative to solve ambiguous problems."
Other Views of Heroesu A hero is someone endowed with great courage or strength, celebrated for bold exploits, and favored by the gods.u A hero is a vain, unreliable hacker.u A hero is a normal person who does extraordinary things.u A hero is someone who finds a way.u A hero is someone who goes beyond their programming. Why Talk About Heroes? For one thing, there is so much innovation in any software project that we are forced to confront the human element. Besides, You are a hero.
The Hero’s Journey The Known World The Unknown Separation Hard Problem Initiation Solution Return See: The Hero With A Thousand Faces, by Joseph Campbell Pathologies of Heroism Unecessary heroism EscapismThoughtless solution Overcommitment Separation Burnout Hard Problem Initiation Solution No solution Return Perfectionism New problems Idealism created Unfinished solution Elitism
What is Quality?u Aesthetic view Quality is emergent excellence.u Manufacturing view Quality is conformance to requirements.u Customer view Quality is whatever the customer says it is.u Utilitarian view Quality is happy consequences. Utilitarian Quality Problems observed in the product. + - Utilitarian Problems Products (perceived risk ) SQA (perceived quality) (risk assessment) - + Quality observed in the product.
Utilitarian Quality Measurement is Heroic1. Objective measurement of quality is impossible.2. Many quality factors can be objectively measured, but comprehensive assessment of those factors in software is not feasible.3. Many other quality factors are situational or subjective.4. Therefore, quality assessment is subjective. Bug Review Meeting: Heroic Quality Consensus u Formal meeting of project leaders u Purpose 4Change control 4Quality consensus u Agenda 4Review all high priority bugs 4Determine which ones must be fixed 4Revisit those decisions, later on u Method 4Discussion until consensus
Task/Products Paradigm Management Tasks Problems ProductsIn complex projects, tasks explode and problems distract. Traditional Project Cycle Defects TestRequirements Oriented around Definition Defects tasks and products. Requirements Test Document Design Defects Test Design Document Code Defects Program System Test
Adaptive Project Cycle Customers New New or changed or changed problems product Problems Products Staff Time Processes Materials Project Adaptive Project Paradigm Values & Roles, Tasks & Commitment Goals Project Problems Team Products Talent & Facilities & Skill SupportIn complex projects, tasks are pruned and problems solved.
Achieving a Heroic Environment Factor Symptoms Solutions Teamwork Lack of communication Face conflicts and resolve them Defensiveness & escapism Forge a team identity Roles, Tasks, Poor quality Seek clear and relevant mission & Goals No sense of progress Align roles with talent & skills No improvement Encourage creative exploration Skill & Talent Sloppiness Train & mentor Missed deadlines Align goals w/ abilities Values & Sloppiness Look for hidden agendas Commitment Missed deadlines Seek active commitment Facilities & Frustration & cynicism Gain management attention Support Lack of commitment Spend money Problem & Project gridlock Maintain issues list Product Features out of control Maintain evolving feature list Tracking Schedule slippage Maintain evolving schedule Being a Professional Herou Serve your teamu Be visibleu Master your craft Some of theseu Grow colleagues ideas were inspired by the work ofu Take the initiative Norm Kerthu Be respectful in dissentu Honor diversityu Use win-win tacticsu Take care of your health