Why Do Humans Break Software Projects? and How Can We Fix It? Andrew Brown
Total Page:16
File Type:pdf, Size:1020Kb
Why do humans break software projects? And how can we fix it? Andrew Brown Prediction: Software development in 2031 • ~20% of projects failed • Many others late, over budget • Some projects took crazy risks • Silos • Too much technical debt • Add processes, but quality did not improve • Our regression packs are full of junk tests Software development in 2021 • ~20% of projects failed • Many others late, over budget • Some projects took crazy risks • Silos • Too much technical debt • Add processes, but quality did not improve • Our regression packs are full of junk tests Software development in 1971 • ~20% of projects failed • Many others late, over budget • Some projects took crazy risks • Silos • Too much technical debt • Add processes, but quality did not improve • Our regression packs are full of junk tests Software development in 1971 • ~20% of projects failed • Many others late, over budget • Some projects took crazy risks • Silos • Too much technical debt • Add processes, but quality did not improve • Our regression packs are full of junk tests Why do problems remain? • Have we not tried to solve them? • Have we missed something? Why do problems remain? 1. Software problems have 2 parts: • Technical • Human 2. Software tool Software development’s most important tool • Our mind • Developed to solve different set of problems • Evolved in different environment What was our mind developed for? Generation 1 Generation 2 Generation 3 What was our mind developed for? Survival Reproduction Survival Predation Disease Conflict Starvation Accident Balance Trade-off Successful Reproduction Extended Attract a mate Mate selection parental care Demonstrate Resource gene quality provision Peacock tail Resources Status Show-off hypothesis Commitment Survival Reproduction Software development Avoid Mate Estimate Planning Predation Attraction Avoid Collaborate Create Disease Mate Selection Successful Extended Monitor Evaluate Conflict parental care Avoid Demonstrate Decide Adjust Starvation gene quality Avoid Resource Accident control & Balance provision Trade-off Survival Reproduction Software development Avoid Mate Predation Attraction • ~20% of projects failed Avoid • Many others late, over Disease Mate Selection budget Successful Extended • Some projects took crazy Conflict parental care risks Avoid Demonstrate • Silos Starvation gene quality • Too much technical debt Avoid Resource Accident control & Balance provision Trade-off Projects are late and over budget Estimate Actual • Error in project estimation is not noise • Systematic underestimation Projects are late and over budget • Biases present • Anchoring • Overconfidence effect • Show-off hypothesis • Optimism bias Anchoring ‘Anchored’ to first value • Evolutionary reasons for anchoring • Need for estimation in hunting, trekking… • Do not adjust far enough away • Why Low? • Business suggest a low value Overconfidence effect An excessive confidence in our own judgement, not warranted by objective accuracy. • Causes those estimating to be overly confident of: • Own skill • Influence over others • Ability to deliver • Despite evidence of own and others previous failures Successful Reproduction Extended Attract a mate Mate selection parental care Demonstrate Resource gene quality provision Beauty Resources Status Show-off hypothesis Commitment Evolutionary benefits of overconfidence • Competitions (fights) for mating and resources • Fighting is dangerous and costly • Preceded by display of strength and fighting prowess • Game theory • Better to lose by forfeit than injury • Avoid forfeiting a fight you would have won • Overconfidence helps convince rival to abandon An overconfident population is the stable situation Show-off hypothesis Engage in unnecessarily risky activities • Attract a mate • Furnish proof of good genes Photo by Thomas Bormans on Unsplash Show-off hypothesis Engage in unnecessarily risky activities • Engage (and survive) a dangerous activity • Modern-day: risky project Optimism bias We believe we are going to get lucky • Smokers and cancer • Our project will be lucky • Evolutionary benefits: • Overestimate our chances of winning • Encourage participation • Deception and self-deception is more effective Projects are late and over budget • Biases present • Anchoring • Overconfidence effect • Show-off hypothesis • Optimism bias Overdue projects take crazy risks • Risk switching – from risk adverse to risk seeking • Evolution – avoid starving to death Overdue projects take crazy risks Patricia van den Berg from pixabay. Robin Stickel on Unsplash • Variation in food supply • Maximize survival chances • Risk adverse when lots of food • Risk seeking when little/no food • Leads to risk seeking behaviour on overdue projects Working in silos • Avoid being killed by rivals and enemies • Male: 10% to 30% chance of being killed in a fight • Greatest source of protection – own group/tribe/team • Develop loyalty to own group Too much technical debt • Avoid predation • Avoid disease • Avoid being killed by rivals and enemies • Avoid starvation • Avoid drowning, freezing, falls and injuries Too much technical debt • Decision-making process that is: • Rapid • Simple • Works with poor quality, conflicting data • Wide range of conditions • Little cognitive load • Gut feel/emotion (affect heuristic) Too much technical debt • Technical debt does not touch our emotion • New features do Software problems • Projects failed, late, over budget • Anchoring, overconfidence… • Crazy risks • Food scarcity • Silo working • Survival against enemies • Too much technical debt • Affect heuristic • Add processes, but quality did • Risk compensation not improve . • Regression packs full of junk tests • Endowment effect • Go-live disasters • Plan continuation bias • Zombie projects • Sunk cost effect Software problems • Projects failed, late, over budget • Anchoring, overconfidence… • Crazy risks • Risk switching • Silo working • In-group survival. • Too much technical debt • Affect heuristic • Add processes, but quality did • Risk compensation not improve . • Regression packs full of junk tests • Endowment effect • Go-live disasters • Plan continuation bias • Zombie projects • Sunk cost effect How can we fix it? 1. Training 2. Nudges (Tools. Alter the decision environment) 3. (Incentives) Training through questionnaires You are flying to an unfamiliar airport. Heavy coastal fog is forecast. You continue as planned instead of returning home. Why? 1. You hate to admit you cannot complete your plan. 2. You resent the suggestion you should change your mind. 3. You feel sure things will turn out safely 4. You reason your actions would make no real difference. 5. You feel the need to decide quickly. Training through questionnaires You are flying to an unfamiliar airport. Heavy coastal fog is forecast. You continue as planned instead of returning home. Why? 1. You hate to admit you cannot complete your plan Macho 2. You resent the suggestion to change your mind Anti-Authority 3. You feel sure things will turn out safely Invulnerability 4. You reason your actions would make no real difference Resignation 5. You feel the need to decide quickly Impulsiveness Survey Feedback Scenarios Antidotes Exercises Estimate Actual • Biases present • Anchoring • Overconfidence effect • Show-off hypothesis • Optimism bias Training through questionnaires You are doing a live upload, when you find files are missing. Standard procedure is to abandon the deployment. You continue whilst a colleague searches for the files. Why? 1. You want to prove you can complete your plan Show-off Hypothesis 2. You are confident you can deal with this Overconfidence effect 3. You feel sure nothing bad will happen Optimism bias How to solve underestimation External Observer • Independent, trained • Easier to spot other’s mistakes How to solve underestimation Checklists • Series of questions, designed to reveal biases • When does the business want the software? (Anchoring) • How long did similar projects take? (Overconfidence) • What are potential impediments (Optimism) How to stop projects taking crazy risks Stop underestimation How to solve technical debt Too much technical debt • Decision-making process that is: • Rapid • Simple • Works with poor quality, conflicting data • Wide range of conditions • Little cognitive load • Gut feel/emotion (affect heuristic) Photo by Timothy Paul Smith on Unsplash Health authority concern • Health authorities concerned about health • Health message • But message aimed to people’s RATIONAL SYSTEM Smoking Benefits of smoking: Disadvantages of smoking • Social acceptance – ‘Cool’ • Potential hazard to future health • Enjoyment • Addiction • Immediate • Future • Definite • Uncertain • Concrete • Intangible • Emotional • Rational • Enjoyed by us • Enjoyed by others Smoking and Technical Debt Benefits of smoking: Disadvantages of smoking Benefits of new features: Benefits of avoiding tech debt • Immediate • Future • Definite • Uncertain • Concrete • Intangible • Emotional • Rational • Enjoyed by us • Enjoyed by others How to solve technical debt • Shift the message from LOGIC to EMOTION Software problems • Projects failed, late, over budget • Anchoring, overconfidence… • Crazy risks • Risk switching • Silo working • In-group bias • Add processes, but quality did • Risk compensation not improve . • Too much technical debt • Affect heuristic • Regression packs full of junk tests • Endowment effect • Go-live disasters • Plan continuation bias • Zombie projects • Sunk cost effect Thank you! [email protected] [email protected] Contact me to take part in a survey.