No Best Practices: How to Think About Methodology James Bach, Satisfice, Inc.

Slides:



Advertisements
Similar presentations
Presentation Skills: 30 Minute Webinar Series Problem Solving from the Front of the Room or Head of the Table.
Advertisements

Trustworthy: to have belief or confidence in the honesty, goodness, skill or safety of a person, organization or thing.
Tools for Change Plan, Do, Study, Act The PDSA Cycle Explained
System Development Life Cycle (SDLC)
Gallup Q12 Definitions Notes to Managers
ClASS DEBRIEF SESSIONS PROVIDING EFFECTIVE FEEDBACK.
Agile Testing and/or Agility in Testing? Juha Itkonen SoberIT Teknillinen Korkeakoulu Test Summit, , Savonlinna.
Lesson Plan Grade 5 Subject: Language Arts Standard 7 Comprehension—Students understand, interpret, and analyze narrative and informational grade level.
The “Lifecycle” of Software. Chapter 5. Alternatives to the Waterfall Model The “Waterfall” model can mislead: boundaries between phases are not always.
SE 450 Software Processes & Product Metrics 1 Introduction to Quality Engineering.
SOFTWARE QUALITY ASSURANCE Maltepe University Faculty of Engineering SE 410.
Class Discussion Chapter 2 Neural Networks. Top Down vs Bottom Up What are the differences between the approaches to AI in chapter one and chapter two?
Lab/Sessional -CSE-374. SYSTEM DEVELOPMENT LIFE CYCLE.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
SE 555 Software Requirements & Specification Requirements Validation.
Unit 2: Self - Awareness By Dr. David Agnew and Mr. Jim Wendell Arkansas State University.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Becoming a Better Software Tester Bernie Berger Test Assured, Inc. Pace University “Code Detectives” Student.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Managing Large Classes with Group Work
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
Chapter 11 – Grammar: Finding a Balance
Programming Logic and System Analysis
Heuristic Evaluation “Discount” Usability Testing Adapted from material by Marti Hearst, Loren Terveen.
1 Testing – Part 2 Agile Testing In which we talk about nothing, because having unit tests solves all problems forever. Really. It’s not a subtitle balance.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Test Driven Development TDD. Testing ”Testing can never demonstrate the absence of errors in software, only their presence” Edsger W. Dijkstra (but it.
S/W Project Management
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Logic and Problem Solving Advanced Computer Programming.
2 Conduct an After Action Review 3 Action Conduct an after action review.
How Committed Are We To Our Values?. Purpose Statement: “Gain insight into our values and how those values influence and foster a culture of ethical Leadership”
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Research and Instructional Practices National Math Panel Meeting Stanford, CA November 6, 2006 James Hiebert, University of Delaware.
Difficult Employees. SOME OTHER OPTIONS IN DISCIPLINE 1. Demotion 2. Transfer 3. Performance improvement plan.
Making a Great Planning Process Thinking about Outcomes in Four steps:-- new ways of relating to achieve a new relationship and a fully owned personal.
Incorporating Pragmatic Usability Testing Into a Software Test Plan Carla Merrill, Ph.D. Focused Design focuseddesign.com
1 Welcome to CS 362 Applied Software Engineering What happens after (and during) design? Testing, debugging, maintaining programs Lessons for software.
CS 350 – Software Design The Object Paradigm – Chapter 1 If you were tasked to write code to access a description of shapes that were stored in a database.
1 OM2, Supplementary Ch. D Simulation ©2010 Cengage Learning. All Rights Reserved. May not be scanned, copied or duplicated, or posted to a publicly accessible.
TESTING PRINCIPLES BY K.KARTHIKEYAN. PRINCIPLES Principle 1. Testing is the process of exercising a software component using a selected set of test cases,
Introduction The rules of frog eating: If you have to eat two frogs, eat the ugliest one first. If you have to eat a live frog at all, it doesn’t pay.
EXPLORING “BEST PRACTICES” Let’s Test Mission Help me build the closing keynote: “A Critical Look at Best Practices”A Critical Look at Best Practices.
Methodology Lecture # 21. Review of the last lecture 1.Authentic language in real context: sports columns from a recent newspaper 2: Ability to figure.
CHAPTER 1 Understanding RESEARCH
The next generation tester! 1 To Softec – Silicon India attendees With love, Pradeep Soundararajan Moolya Software Testing Private Limited
Copyright © , Satisfice, Inc. V1. James Bach, Satisfice, Inc. (540)
Design Process … and some design inspiration. Course ReCap To make you notice interfaces, good and bad – You’ll never look at doors the same way again.
Session # Rational User Conference 2002 Author Note: To edit Session # go to: View/Master/Title Master ©1998, 1999, 2000, 2001, 2002 Rational Software.
The Case Against Test Cases
From The Academe to Industry: Context-Driven Software Engineering Matthew Heusser Excelon Development – xndev.com - Presented to CS 611.
Slide 1 Improving your Persuasion and Influencing Skills for better negotiated outcomes Presented by Katrena Friel March 2009.
Getting the Interview: Make your Application Stand Out and Get Noticed Matthew Heiydt.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
A BRIEF LOOK AT THE COMPONENTS THAT MAKE UP THE SYSTEM LIFE CYCLE.
CSE SW Measurement and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M15 version 5.09Slide 1 SMU CSE.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Unit II PERFORMANCE FEEDBACK.
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
Teacher Preparation & Effectiveness Unit 1. Brainstorm A list of words or phrases that identify the best teacher you’ve ever had.
Week # 4 Quality Assurance Software Quality Engineering 1.
Presented by The Solutions Group Decision Making Tools.
THE BIG INTERVIEW NICOLE AURINGER EDU650: Teaching Learning and Leading in the 21st Century Instructor: Jackie Kyger July 21, 2014.
Unit 5: Hypothesis Testing
Reviewing your Program
The Systems Engineering Context
^ About the.
Analysis and Understanding
that focus first on areas of risk.
Manage testing by time boxes
Presentation transcript:

No Best Practices: How to Think About Methodology James Bach, Satisfice, Inc.

best (bĕst) adjective Superlative of good 1. Surpassing all others in excellence, achievement, or quality; most excellent: the best performer; the best grade of ore. 2. Most satisfactory, suitable, or useful; most desirable: the best solution; the best time for planting. 3. Greatest; most: He spoke for the best part of an hour.

prac·tice (prăk ʹ tĭs) noun 1.A habitual or customary action or way of doing something: makes a practice of being punctual. a.Repeated performance of an activity in order to learn or perfect a skill: Practice will make you a good musician. b.A session of preparation or performance undertaken to acquire or polish a skill: goes to piano practice weekly; scheduled a soccer practice for Saturday. c.Archaic. The skill so learned or perfected. d.The condition of being skilled through repeated exercise: out of practice. 1.The act or process of doing something; performance or action: a theory that is difficult to put into practice. 2.Exercise of an occupation or profession: the practice of law. 3.The business of a professional person: an obstetrician with her own practice. 4.A habitual or customary action or act. Often used in the plural: That company engages in questionable business practices. Facial tattooing is a standard practice among certain peoples. 5.Law. The methods of procedure used in a court of law. 6.Archaic. a.The act of tricking or scheming, especially with malicious intent. b.A trick, scheme, or intrigue.

Can we agree on this?  There are no “practice” championships; no Olympics to determine which practices to honor.  There is no consensus about what practices are best, unless consensus means “people I respect also say they like it.”  There are practices that are more likely to be considered good and useful than others, within a certain community and assuming a certain context.  But… So what? Good practice is not a matter of popularity. It’s a matter of skill and context.

“Code Freeze” A Best Practice? code freeze end start Change board reviews all changes Pros: reduces testing load and the probability of new bugs. Cons: creates review workload and reduces pace of improvement.

“Code Freeze” A Best Practice? code freeze end start

Methodology Equivocation Beware of the “process” switcharoo source: Total Quality Management for Software, Schulmeyer & McManus Process is what happens Process is what we say happens “The important thing is to have a paradigm that forces a top down structure on the process definition task.” p. 145 “For all practical purposes the following rule applies: Any part of the development process that is not clearly documented does not exist.” p.145 “The focus of TQM for software is on controlling and improving the subprocesses represented by the various software development phases.” p. 123 “This transformation [from inputs to outputs] is called a process.” p.120

Methodology Equivocation A “best practice” may not even be practiced. Process is what happens Process is what we say happens

Aspects of Process How do things happen? Plans Models The World Scientist Engineer Technician actualpercieved actual ideal

What does “best practice” mean?  Someone: Who is it? What do they know?  Believes: What specifically is the basis of their belief?  You: Is their belief applicable to you?  Might: How likely is the suffering to occur?  Suffer: So what? Maybe it’s worth it?  Unless: Really? There’s no alternative?  You do this practice: What does it mean to “do” it? What does it cost? What are the side effects? What if you do it badly? What if you do something else really well?

Beware of…  Numbers: “We cut test time by 94%.”  Documentation: “You must have a written plan.”  Judgments: “That project was chaotic. This project was a success.”  Behavior Claims: “Our testers follow test plans.”  Terminology: Exactly what is a “test plan?”  Contempt for Current Practice: CMM Level 1 (initial) vs. CMM level 2 (repeatable)  Unqualified Claims: “A subjective and unquantifiable requirement is not testable.”

Look For…  Context: “This practice is useful when you want the power of creative testing but you need high accountability, too.”  People: “The test manager must be enthusiastic and a real hands-on leader or this won’t work very well.”  Skill: “This practice requires the ability to tell a complete story about testing: coverage, techniques, and evaluation methods.”  Learning Curve: “It took a good three months for the testers to get good at producing test session reports.”  Caveats: “The metrics are useless unless the test manager holds daily debriefings.”  Alternatives: “If you don’t need the metrics, you ditch the daily debriefings and the specifically formatted reports.”  Agendas: “I run a testing business, specializing in exploratory testing.”

Bug Investigation Practice (reported)  Identify  Notice a problem.  Reproduce  Make it happen again.  Isolate  Cut out non-essential activities. Identify Reproduce Isolate this is what we do

Bug Investigation Practice (more accurate)  Identify  Notice a problem.  Recall what you were doing just prior to the problem.  Examine symptoms of the problem w/o disturbing system state.  Consider possibility of tester error.  Investigate  How can the problem be reproduced?  What are the symptoms of the problem?  How severe could the problem be?  What might be causing the problem?  Reality Check  Do we know enough about the problem to report it?  Is it important to investigate this problem right now?  Is this problem, or any variant of it, already known?  How do we know this is really a problem?  Is there someone else who can help us? Investigate Check Identify

Bug Investigation (even more accurate, but hard to formalize)  Identify  Notice a problem.  Recall what you were doing just prior to the problem.  Examine symptoms of the problem w/o disturbing system state.  Consider possibility of tester error.  Investigate  How can the problem be reproduced?  What are the symptoms of the problem?  How severe could the problem be?  What might be causing the problem?  Reality Check  Do we know enough about the problem to report it?  Is it important to investigate this problem right now?  Is this problem, or any variant of it, already known?  How do we know this is really a problem?  Is there someone else who can help us? Identify InvestigateCheck Continuously Coach Apply Skills

Context-Driven Testing Principles 1. The value of any practice depends on its context. 2. There are good practices in context, but there are no best practices. 3. People, working together, are the most important part of any project's context. 4. Projects unfold over time in ways that are often not predictable. 5. The product is a solution. If the problem isn't solved, the product doesn't work. 6. Good software testing is a challenging intellectual process. 7. Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products. source: Lessons Learned in Software Testing, by Kaner, Bach, Pettichord