1 / 76

Contributors to SW Project Failure - Survey, Conjecture

Contributors to SW Project Failure - Survey, Conjecture. How do software projects fail? Why do software projects fail? Contributions of People, Methods, and Style Effect of failure on society. The main issues. Software often fails due to errors in design and testing

joy-bray
Download Presentation

Contributors to SW Project Failure - Survey, Conjecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Contributors to SW Project Failure - Survey, Conjecture How do software projects fail? Why do software projects fail? Contributions of People, Methods, and Style Effect of failure on society

  2. The main issues • Software often fails due to errors in design and testing • Software often fails due to errors in People and Management • Software misuse is often the result of one of two factors: • Design flaws ignored or presented as benign to the user • Overtrust of technology by the user

  3. Software Errors grieving parents: http://www.manchestereveningnews.co.uk/news/s/1104477_letter_shock_for_grieving_parents INCORRECTLY BLAMES THE SOFTWARE Radiation: http://www.nytimes.com/2010/01/24/health/24radiation.html CORRECTLY BLAMES THE PEOPLE

  4. Errors in Use http://www.youtube.com/watch?v=BIakZtDmMgo “The machine knows.” http://www.youtube.com/watch?v=a2QIH2uz3p8 "...blaming bad GPS for leading them into danger..." http://www.wired.com/gadgetlab/2008/07/gps-causes-3000/ http://www.engadget.com/2007/07/21/driver-follows-gps-onto-pedestrian-walkway-into-cherry-tree/

  5. How (not WHY) do Software-based Projects Fail? • Unhappy Customer – do not get what they expect or expect what they get • Ran out of time and/or $$ • Unhappy user • Safety compromised, including death • Technically inadequate or over-built • Does not contribute to the company business case • Burned out employees • Menace to Society

  6. advice to SW developers • Never lose the customer’s point of view • Never lose the user’s point of view • Never lose the business and financial point of view • Never lose the team-member point of view Of those 4, where is a SW manager's loyalty?

  7. Sometimes we risk schedule • 85% of SW projects are either late or delivered under-spec. source: SEI Web Site • Sometimes essay question - Should Microsoft name their software after the year it is supposed to be released? Why or why not?

  8. Sometimes we risk budget • If the entire budget for the Denver Airport Automated Baggage System had been converted to cash, it could have paid wages for a manual system for 1000 years. source: Modern Materials Handling Magazine Actual calculation: 907 years, 5.2x original projected costs see next slide

  9. Denver Calculation "No programming, just algorithms and science..." http://www.youtube.com/watch?v=uoITmtqrW-g

  10. ... we lose money • ATMs in Mexico City were processing debits as credits, but only at the user account level(i.e. bank and machine settlements were accurate) • lines at the ATMs sometimes totaled 1200 people • ATM use increased 400% • users managed to keep it an underground secret for 2 weeks • misappropriated credits totaled $4 million, a small percentage was never recovered source: I was there

  11. A Classic Error what they wrote: if (A = B) B = C; return; what they wanted: if (A == B) { B = C; return; } what they got: A = B; if (A != 0) { B = C; } return;

  12. Don’t think coding standards are useful? #include <stdio.h> main($,_,__)char*__;{return !0<$?$<3?main(-79,-13,__+main(-87,1-_,main( -86,0,__+1)+__)):1,$<_?main($+1,_,__):3,main(-94,-27+$,__)&&$==2?_<13?main(2,_+1,"%s %d %d\\n"):9:16:$<0?$<-72?main(_,$,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#\n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#\!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#';\ r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :\{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#\w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/"):$<-50?_==*__?putchar(31[__]):main(-65,_,__+1):main((*__=='/')+$,_,__+1):0<$?main(2,2,"%s"):*__=='/'||main(0,main(-61,*__,"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),__+1);}

  13. Sometimes we are too eager to technologize • The Puget Sound ferry system had been using mechanical and hydraulic controls since 1875. After converting to computers and electronics, it began bumping docks, switching from forward to reverse by itself, injuring passengers, and dumping cars, and caused more damage in its next 90 days than in its previous 100 years. source: Digital Woes

  14. Sometimes we risk function • Long distance services for every state east of the Mississippi went down for two days due to a software change made 1 day before shipping a switching computer, that had just passed 19 weeks of tests.http://catless.ncl.ac.uk/Risks/12.65.html#subj1 • The change was made to the machine code, in 1s and 0s, without benefit of source code and compilation. • The manager had to appear before a Congressional committee (Committee on Common Sense?) source: this guy was later my boss

  15. Killer Apps • The Therac 25 cancer radiation system killed 4 patients on the table, due to a software error that misjudged the appropriate dosage level based on the position of a mechanical filter. • The company first regarded it as a user issue, because it was precipitated by an odd start-up sequence • A fuel-saving computer on the DC-10 attempted to save fuel by cutting the engines during landing. • The pilot restarted manually in time. source: Software Woes

  16. Computer and human interaction • At Chernobyl, technicians tried to run an experiment to feed power to backup generators, as the system was shutting down (combining two operations into one sequence). • Technicians needed to send control rods into the reactor core (usually a “run” process), during shutdown. • The control system was not programmed to do anything during shutdown, except shut down. • Control rods did not respond, power spiraled, the core overheated. source: Inviting Disaster

  17. Killer Apps • An intravenous medication pump ran dry and injected air into the patient. • the design RELIED ON manual intervention • A digital display combined the name of one patient with medication information from another. Staff thought they had mis-medicated the patients. • A heart monitor was designed to sound an alarm when the patient’s heart rate dropped below a certain threshold, but shut off when the heart stopped, thereby missing entirely any cardiac arrest.

  18. Technology Misapplied • The first robot to kill a human happened 25 years ago, and 4 times since (in industry). • robots are primarily software • GM’s first attempt at robotic assembly resulted in 100% robot failure within 40 hrs. The solution? • “As much of a failure as a bug.” source: Scientific American “The Mechanization of Work”

  19. Survey of Working Software Developers “Give the top ten reasons why software projects fail” • 472 students, representing 104 companies. • 28% management • 61% contributing staff • 11% full time students • No item was included that did not have 5+ mentions in the survey. • Categories include People & Management, Process, and Style • Only slightly listed in order of impact. References: “Code Complete”, Steve McConnell, Microsoft Press

  20. identifying problems Why do software projects fail? - People problems - Methodology steps omitted - Programming style (unintentionally injecting problems into the system)

  21. People / Management • #1 - Territoriality, on the part of all participants, at all levels, in all categories. examples: “marketing was always interfering” “the customer kept asking for more” “my engineers kept trying new things” “everyone wanted it their own way

  22. The people involved • Customers / Clients • Users • Contributing Engineers • SW Project Management Staff • Other Engineering (EE, ME, etc.) • Marketing • Corporate Financial & Accounting • Corporate Management

  23. advice “Disagree, concede, compromise, but build the best system possible.” "Understand group and people dynamics"

  24. Books on People

  25. People / Management • Weak Personnel and Problem Employees (see McConnell) - spoiling an otherwise jelled team - includes management above the team. • Reducing a person’s contribution, by not managing the whole person – treating a person as “not a person” because he/she’s at work - 15% of injuries treated at a Bethlehem Steel plant were from kicking and punching time clocks. source: Trouble in Bethlehem

  26. advice #3 “Why do we choose the jobs that we do?” Self worth The Golden Rule: Treat others as you want to be treated. The Platinum Rule: Treat others as THEY want to be treated. http://vimeo.com/22575125 http://www.youtube.com/watch?v=Cpbpx3j0EdU&feature=related

  27. People / Management • Team member burnout. • Undermined Motivation (McConnell) - • Office Gossip • Office Politics • Unrealistic Expectations and Wishful Thinking (McConnell) - planning to catch up later. • Lack of project sponsorship from above and buy-in from below (McConnell)

  28. People / Management • Inadequate, uninformed budgets and schedules – • There is a minimum, but no maximum, of what a project will take. Admit to that minimum. Set up realistic groundrules, track and control the project from beginning to end. • Stupid estimates • Knowingly omitting tasks from the budget and schedule • No contingency plan - starting out with 60 hr. weeks.

  29. People / Management • Using unpaid overtime in the schedule baseline. • Insufficient basic management - risk management, planning, reporting, and controls (McConnell) - cross your fingers and wait for surprises. • Abandonment of planning under pressure (McConnell).

  30. People / Management • Abandonment of common sense under pressure - testing, quality assurance, personal hygiene. • Hero based projects – • Reliance on one person’s mania and drive. • The truck factor.

  31. The Wrong/Right List • Arbitrary Deadlines / Honest Deadlines • Threatening / Teaching • Time Clocks / Autonomy • Employee of the Month / Team-oriented Rewards • E-mail / Face to face

  32. The Wrong/Right List • Experts / Generalists • Temporal bonuses / Bonuses based on performance • No personal calls / Home at work & Work at Home • One big goal / Incremental goals • Bureaucracy - don’t use that credit card / Find a way • Copied software / Legal software

  33. The Wrong/Right List • 1-person Jobs (Heroes) / Teams (Leaders) • Casual Overtime / Compensation • Sarcasm / Honesty • Calculated Deception / Honesty • Management by Intimidation / Delegation of Responsibility • Annual Performance Reviews – ambush / Monthly Performance Reviews

  34. The Wrong/Right List • Mandatory Overtime / Goal Oriented - interesting work, realistic schedules, or else staff it correctly • Status Meetings / Issues Meetings • Hands-off / Hands-On • Misplaced Recognition / Knowing your team • 5-O’clock walk-arounds / All-day walk arounds • Management by Cliché / Management of Reality

  35. Process % of time spent The Dream Curve Spec Analysis Design Code Integration Test Maintenance

  36. Process • Omission of Lifecycle Steps - • Lack of a requirements specification. • Inadequate (or omission of) Design • Lack of a test plan. • Coding too quickly. Designing at the terminal. • Overspecification and too-rigid specification and design. • Some details are better decided incrementally. • Designing for flexibility is different than designing for function.

  37. Process • Requirements creep, feature creep, developer gold-plating (McConnell). • Out of control, unmanaged customer. • Lack of financial accounting.

  38. The SEI Capability Maturity Model • Chaos: At the initial level, processes are disorganized, even chaotic. Success is likely to depend on individual efforts, and is not considered to be repeatable, because processes would not be sufficiently defined and documented to allow them to be replicated. • Basic Management: At the repeatable level, basic project management techniques are established, and successes could be repeated, because the requisite processes would have been made established, defined, and documented. • SW Subculture: At the defined level, an organization has developed its own standard software process through greater attention to documentation, standardization, and integration. • Measured: At the managed level, an organization monitors and controls its own processes through data collection and analysis. • Improvements: At the optimizing level, processes are constantly being improved through monitoring feedback from current processes and introducing innovative processes to better serve the organization's particular needs.

  39. about the levels • In 1995, there were 3 companies at Level 5: two in India, one in Japan. • In 2010: • 1: 10% • 2: 15% • 3: 60% • 4: 10% • 5: 5% • You cannot skip Levels or start at Level 3

  40. Managing the Customer (actual quotes) • “We’re adopted a corporate policy where we only pay 85% of our invoices. Sue us.” • “Since you changed our network, our copier keeps getting “out of toner” errors.” • “We don’t want you to finish the project, we only needed you for design. We’ll pay you for what you did, but you won’t be needing all that staff you hired.”

  41. Managing the Customer (actual quotes) • “We need some technology. How much will it cost?” • “Is your software “information superhighway” compatible?” • “Is your software Y2K compliant? (this was in 2008)”

  42. Managing the Customer • “Requirements spec? We don’t actually like to write anything down. We’re afraid of industrial espionage.” • “Give us a quote for $24K just to get the purchase order signed, and you can add more later.” • “We can’t agree to a contract to do the job until the job is completed.”

  43. Managing the Customer • “You’re not allowed to talk to the users. Only we can talk to the users.” Then: “The users aren’t happy so we’re not paying you.”

More Related