ON THE ROLE OF METHODOLOGY: ADVICE TO THE ADVISORS

Similar documents
Academic argument does not mean conflict or competition; an argument is a set of reasons which support, or lead to, a conclusion.

Critical Thinking 5.7 Validity in inductive, conductive, and abductive arguments

Introducing Our New Faculty

Logic Appendix: More detailed instruction in deductive logic

GMAT ANALYTICAL WRITING ASSESSMENT

The Critical Mind is A Questioning Mind

In general, the simplest of argument maps will take the form of something like this:

JUDICIAL OPINION WRITING

Canadian Anglican Cursillo

This document consists of 10 printed pages.

Limited Intervention

MANUAL ON MINISTRY. Student in Care of Association. United Church of Christ. Section 2 of 10

Petitionary Prayer page 2

KEEP THIS COPY FOR REPRODUCTION Pý:RPCS.15i )OCUMENTATION PAGE 0 ''.1-AC7..<Z C. in;2re PORT DATE JPOTTYPE AND DATES COVERID

Chapter 3 PHILOSOPHICAL ETHICS AND BUSINESS CHAPTER OBJECTIVES. After exploring this chapter, you will be able to:

NELSON MOTIVATIONAL SPIRITUAL GIFTS INVENTORY

Basic Concepts and Skills!

Students will make a quick reference sheet of the inductive Bible study method.

What would count as Ibn Sīnā (11th century Persia) having first order logic?

Study Guides. Chapter 1 - Basic Training

2nd International Workshop on Argument for Agreement and Assurance (AAA 2015), Kanagawa Japan, November 2015

Experimental Design. Introduction

Does Deduction really rest on a more secure epistemological footing than Induction?

Ignorance, Humility and Vice

Semantic Foundations for Deductive Methods

INTEGRITY: The foundation virtue in leadership

SYSTEMATIC RESEARCH IN PHILOSOPHY. Contents

God s Goodness Is an Anchor in Mystery, Tragedy, and Disappointment

Biblical Literacy in Schools Survey - Underground Story

Best Practices For Motions Brief Writing: Part 2

Formatted & Outlined. By Fred Young

Statistics, Politics, and Policy

Positions 1 and 2 are rarely useful in academic discourse Issues, evidence, underpinning assumptions, context etc. make arguments complex and nuanced

CONTENTS PRINCIPLES INFORMING PLANNING AND PROGRAMMING

The UU Society for Community Ministries Code of Professional Practice Adopted December 31, 2004 Revised September 1, 2010

Step Three. Made a decision to turn our will and our lives over to the care of this Power of our own understanding.

Unit 2. WoK 1 - Perception. Tuesday, October 7, 14

STEP THREE WE MADE A DECISION TO TURN OUR WILL AND LIVES OVER TO THE CARE OF GOD AS WE UNDERSTOOD HIM

This course is designed specifically for advanced transfer students - if you are not an advanced transfer student, you should take Religion 100.

A-level Religious Studies

Introduction Questions to Ask in Judging Whether A Really Causes B

5.6.1 Formal validity in categorical deductive arguments

The SAT Essay: An Argument-Centered Strategy

You may view, copy, print, download, and adapt copies of this Social Science Bites transcript provided that all such use is in accordance with the

The problems of induction in scientific inquiry: Challenges and solutions. Table of Contents 1.0 Introduction Defining induction...

Colossians 1:9-14 Friday 3/05/13

Since Michael so neatly summarized his objections in the form of three questions, all I need to do now is to answer these questions.

II Plenary discussion of Expertise and the Global Warming debate.

Truth and Evidence in Validity Theory

P REPARING FOR THE S EMINAR. Using the Spiritual Gifts Kit. Implementing in a Local Congregation or Christian Ministry

CRITICAL REASONING DAY : 04 BOLD-FACED QUESTIONS

BE6603 Preaching and Culture Course Syllabus

1 Clarion Logic Notes Chapter 4

Freedom of Religion and Law Schools: Trinity Western University

Attachment C-4 Appendix C Manual of Operations. Ending Ministry Well

Commentary on Sample Test (May 2005)

PROSPECTIVE TEACHERS UNDERSTANDING OF PROOF: WHAT IF THE TRUTH SET OF AN OPEN SENTENCE IS BROADER THAN THAT COVERED BY THE PROOF?

Chapter 8 - Sentential Truth Tables and Argument Forms

Community and the Catholic School

Jeu-Jenq Yuann Professor of Philosophy Department of Philosophy, National Taiwan University,

The goal of this workshop is

21 Laws of Leadership Self-Evaluation

Artificial Intelligence By Paul Golata

B. C. Johnson. General Problem

Professional and Ethical Expectations for Clergy. General Assembly of the Church of God in Michigan

SHARERS OF THE VISION Expectations associated with working at the Catholic Education Office Northern Territory

HANDBOOK. IV. Argument Construction Determine the Ultimate Conclusion Construct the Chain of Reasoning Communicate the Argument 13

HANDBOOK (New or substantially modified material appears in boxes.)

Spiritual Gifts Inventory Statements

Genre Guide for Argumentative Essays in Social Science


Illustrating Deduction. A Didactic Sequence for Secondary School

Semantic Entailment and Natural Deduction

Testing Fairmindedness

a video companion study guide a movement for wholeness in a fragmented world Christian Church (Disciples of Christ) in the united states and canada

The Practice of Holiness: Modeling Jesus

A Great Coach in Action

Name: Date Handed In: Scripture Project. This project, along with your 10 hours of volunteer time, is due.

GUIDELINES FOR ESTABLISHING AN INTERFAITH STUDIES PROGRAM ON A UNIVERSITY OR COLLEGE CAMPUS

2.1 Review. 2.2 Inference and justifications

The Question of Metaphysics

Quine: Quantifiers and Propositional Attitudes

Postgraduate Diploma in Theology, Imagination & Culture

TO: First Year Legal Writing Students FROM: Professors Chris Soper and Brad Clary DATE: August 1, 2017 RE: Fact Hypothetical for Filippi Exercise

Richard Carrier, Ph.D.

Class Meeting 3 Chapter 3 Learning the Role of the Musician

Brochure of Robin Jeffs Registered Investment Advisor CRD # Ashdown Place Half Moon Bay, CA Telephone (650)

MISSOURI S FRAMEWORK FOR CURRICULAR DEVELOPMENT IN MATH TOPIC I: PROBLEM SOLVING

HANDBOOK (New or substantially modified material appears in boxes.)

2Toward Maturity LESSON

discussion around our country. For the past couple weeks, nearly every news program, columnist, and

DOWNLOAD OR READ : THE ULTIMATE SELF ESTEEM FORMULA PDF EBOOK EPUB MOBI

Argumentation. 2. What should we consider when making (or testing) an argument?

ETHICS IN ENGINEERING. Lecture 2/4

LTJ 27 2 [Start of recorded material] Interviewer: From the University of Leicester in the United Kingdom. This is Glenn Fulcher with the very first

Resolved: The United States should adopt a no first strike policy for cyber warfare.

A Warning about So-Called Rationalists

Let the Light of Christ Shine

Debate Vocabulary 203 terms by mdhamilton25

Islamic Bio-ethics/Online Program

Transcription:

ON THE ROLE OF METHODOLOGY: ADVICE TO THE ADVISORS BERTRAND MEYER Interactive Software Engineering Inc., 270 Storke Road, Suite 7 Goleta, California CA 93117, USA 1. The Need for Methodology Guidelines The field of software development methodology is not new. Its origins may be traced to Dijkstra's famous "Goto" letter [1] and subsequent publications by the same author and his colleagues on structured programming. More recent literature, however, has not always been up to the intellectual standards of that early work. The present discussion was prompted by a critical examination of the currently available methodological work in the object-oriented area. This leads to a number of precepts that all methodologists should follow. Even a casual look at the objectoriented literature yields many counter-examples: rules that are unusable, poorly thought out, or simply wrong. This article focuses on the precepts rather than the counter-examples, if only to avoid the unpleasantness of having to take well-known methodologists to task. 2. Theory and Practice The methodologist is entrusted with a serious responsibility: telling software developers how to write their software, and how not to write it. In a field where religious metaphors come up so often, it is natural to compare methodologists to preachers or to directors of conscience. Such a position, as is well known, is subject to abuse; it is appropriate, then, to define a few rules on rules - advice for the advisors. The first duty of an advisor is to base his advice on a consistent view of the target area: Precept 1 (Theoretical Basis): Software methodology rules must be based on a theory of the underlying domain. Much of the current object-oriented literature, especially in the 0-0 analysis and design area, neglects this rule. To quote a comment made elsewhere [2]: 1

2 B. Meyer Books on analyis and design are full of peremptory statements: Prototype! Avoid multiple inheritance! Underline the nouns! Do not use inheritance Jor implementation! No wonder software developers sometimes feel like soldiers being ordered into battle - and may wonder whether this impression is a harbinger of their eventual fate. Were it always rooted on sound scientific ground, this aplomb would be good. But much of the advice that you will find in the methodological literature - in particular in its object-oriented subset - is based on opinions, on experience from older techniques whose lessons may not be applicable any more, or on implicit and possibly invalid assumptions. Some of it is moot or just wrong. Dijkstra's example is sthl a good guide here. He did not just attack the Goto instruction for reasons of taste or opinion, but supported his suggested ban by a carefully woven chain of reasoning. One may disagree with that argument, but not deny that the conclusion is backed by a well thought-out view of the software development process. To counter Dijkstra's view you must find a flaw in his theory and provide your own replacement for that theory. The theory' is the deductive part of software methodology. But rules that would only be rooted in theory could be dangerous. The inductive component is just as important: Precept 2 (Practical Basis): A software methodologist should have extensive practical experience in the field in which he is giving advice. It is all too apparent that many 0-0 books have not had the benefit of such experience. 3. Reuse In the object-oriented field the Practical Basis precept yields a more specific consequence. It is not enough to have participated in significant projects. The cornerstone of the method is reuse, and the real test of expertise is to have produced a reused 0-0 library; not just components that are claimed to be reusable,

On the Role of M ethodo logy: Advice to the Advisors 3 but a library that has actually been reused by a substantial number of people outside of the original group. Hence the next precept: Precept 3 (Reuse Experience): In the object-oriented field, no one can claim to be an expert who has not played a major role in the design of a reusable class library that has successfully been reused by widely different projects. 4. A Typology of Rules in Software Methodology The next precepts will address the form of the rules given. One may distinguish four kinds of rule in software methodology: Absolute positive ("Always do a"). Absolute negative ("Never use b"). Advisory positive ("Use c whenever possible"). Advisory negative ("Avoid d whenever possible"). 5. Absolute Positives Among the above categories, absolute positive rules are perhaps the most useful for software developers, since they provide precise and unambiguous guidance. Unfortunately, they are also the least common in the methodological literature, partly for a good reason (for such precise advice, it is sometimes possible to write tools that carry out the desired tasks automatically, removing the need for methodological intervention), but mostly because advisors are too cautious to commit themselves, as a lawyer who never quite answers "yes" or "no" to a question for fear of being blamed for the consequences if the client does act on the basis of the answer. Yet such rules are badly needed: Precept 4 (Favoring Absolute Positives): In devising methodological rules, favor absolute positives, and for each such rule examine whether it is possible to enforce the rule automatically through tools or language constructs.

4 B. Meyer 6. Absolute Negatives Absolute negatives are a sensitive area. One wishes that every methodologist who followed in Dijkstra's footsteps had taken the same care to justify his negatives as Dijkstra did with the Goto. The following precept applies to such rules: Precept 5 (Gare in Absolute Negatives): Any absolute negative must be backed by a precise explanation of why the rejected mechanism is considered bad practice, and accompanied by a precise description of how to substitute other mechanisms for it. 1. Advisory Rules Advisory rules, positive or negative, are fraught with the risk of uselessness. It is said that to distinguish between a principle and a platitude you must consider the negation of the property: only if it is a principle does the negation still make sense, whether or not you agree with it. For example the often quoted software methodology advice "Use variable names that are meaningful" is a platitude, not a principle, since no one in his right mind would suggest using meaningless variable names. To turn this rule into a principle, you must define precise standards for naming variables (see [2] for such rules in the case of object-oriented libraries). Of course in so doing you may find that some readers will disagree with those standards, which is why platitudes are so much more comfortable; but as a methodological advisor it is your responsibility to take such risks. Advisory rules, by avoiding absolute injunctions, are particularly prone to becoming platitudes, as especially reflected in qualifications of the form "whenever possible" or, for advisory negatives, "unless you absolutely need to", the most dishonest formula possible in software methodology. The next precept helps avoid this risk by keeping us honest: Precept 6 (Advisory Rules): In devising advisory rules (positive or negative), use principles, not platitudes. To help make the distinction, examine the rules' negation.

On the Role of Methodology: Advice to the Advisors 5 Advisory negatives are often simply a result of bad design for the underlying tool or language. An extreme example can be found in C++ manuals, and even in the official reference book for that language, which includes a large number of rules of the form "Avoid this construct if you can". It may respectfully be remarked in such a case that beyond a certain number of such rules one should abandon trying to give advice, and improve the tool instead. Hence our last precept: Precept 7 (Fixing What Is Broken): If you encounter the need for many advisory negatives, examine the supporting tool or language to determine if some of the burden of methodological advice can be shifted over to an improvement of the underlying design. 8. References 1. Edsger W. Dijkstra: Go to Statement Considered Harmful, Communications of the ACM, 15, 10, October 1972, pages 859-866. 2. Bertrand Meyer: Reusable Software: The Base Object-Oriented Component Libraries, Prentice Hall, 1994.