The Laws of Software Process

Book description

The Laws of Software Process: A New Model for the Production and Management of Software reveals a novel structure for software development that redefines the nature of software. It explains how software systems are not products in the classical sense, but a medium for information conveyance.

Table of contents

  1. Contents (1/2)
  2. Contents (2/2)
  3. Preface
  4. Chapter 1
    1. A Brief History of Knowledge
    2. The Characteristics of Knowledge-Storage Media
    3. The Nature of Software Development
    4. The Laws of Software Process
    5. The Five Orders of Ignorance
    6. The Laws of Software Process
    7. The First Law of Software Process
    8. The Corollary to the First Law of Software Process
      1. Explanation and Observations
    9. The Reflexive Creation of Systems and Processes
      1. Explanation and Observations
    10. The Lemma of Eternal Lateness
      1. Explanation and Observations
    11. The Second Law of Software Process (see also The Rule of Process Bifurcation)
      1. Explanation and Observations
    12. The Rule of Process Bifurcation
      1. Explanation and Observations
    13. The Dual Hypotheses of Knowledge Discovery
      1. Explanation and Observations
    14. Armour’s Observation on Software Process
      1. Explanation and Observations
    15. The Third Law of Software Process (also known as the Footwear Manufacturer’s Minor Dependent’s Law)
      1. Explanation and Observations
    16. The Twin Goals of Optimal Termination
      1. Explanation and Observations
    17. Summary
  5. Chapter 2
    1. Types of Teams
      1. Tactical
      2. Problem Solving
      3. Creative
      4. Learning
    2. Software Teams Are All Types at the Same Time
    3. A Range of Unknowns, a Range of Processes
    4. Inventing Processes
    5. The Purpose of Process
    6. The Problems of Process
      1. The Usefulness Dilemma
      2. The Process Value Paradox
      3. Using Systems to Build Processes
      4. Other Problems with Process
        1. How Do We Get Process?
        2. Who Devises Processes?
        3. Where Do We Put Process?
    7. The Purpose of Process
    8. Summary
  6. Chapter 3
    1. Third Order of Ignorance Processes
    2. The Job of Methodology
    3. A Test System
    4. The Maturity of Testing
    5. Summary
  7. Chapter 4
    1. The Assembly Line
    2. Shooting Down Zeppelins
    3. Shooting Down Jet Planes
    4. The True Life Cycle
    5. A More-Complex, Generalized Model
      1. Range of Unknown Unknowns
      2. Knowledge Variability with Time
      3. Design Dependence of Knowledge
      4. Variable Rate of Learning
      5. All Variables
    6. Summary
  8. Chapter 5
    1. Models of Convention
    2. Models of Numbers
    3. Counting
    4. Chunking (1/2)
    5. Chunking (2/2)
    6. The Physical Nature of Models
    7. The Logical Nature of Models
    8. Map onto Problem and Solution Space
      1. Requirements
      2. Interfaces
    9. Methods and Models
    10. Minds
    11. Summary
  9. Chapter 6
    1. It Has always Been Agile
      1. Test Phases with Embedded Life Cycles and Test Phases
      2. The “Construct Phases” also Have Feedback
      3. The Feedback Activities Generate Feedback Activities
    2. The Problems of “Big” Process
    3. Agile Methods
      1. Change Is Expected
      2. Feedback Is Managed
      3. Stepwise Development
      4. Human Factors
      5. Customer-Centric
      6. Agile Is Event Driven
    4. Extreme Programming (XP)
      1. The Planning Game
      2. Small Releases
      3. The Use of Metaphor
      4. Simple Design
      5. Refactoring
      6. Testing
      7. Pair Programming
      8. Collective Ownership
      9. Continuous Integration
      10. Intentionally Limited Work Week
      11. On-Site Customer
      12. Coding Standards
    5. Code Science
    6. Crystal Methods
      1. Crystal Clear
    7. Scrum
      1. Pre-Sprint
      2. The Sprint
      3. Post-Sprint
    8. Dynamic Systems Development Method (DSDM)
    9. Feature-Driven Development (FDD)
    10. Lean Development
    11. Adaptive Software Development (ASD)
      1. Speculate
      2. Collaborate
      3. Learn
    12. Why Agile? Why Now?
    13. Summary
  10. Chapter 7
    1. Agile and the Orders of Ignorance
    2. Subdividing the Orders of Ignorance
      1. Zeroth Order Ignorance (0OI): I have 0OI when I (provably) know something … That is, I have the answer
        1. 0OI - Fully Factored Knowledge: The Self-Actualized Answer.
        2. 1/3OI - Applying the Factoring Knowledge: Switch It on.
        3. 2/3OI - Get the Factoring Knowledge: How to Switch It on.
      2. First Order Ignorance (1OI): I have 1OI when I do not know something
        1. 1OI: We’ve Got the Question, Now Get the Answer: Just Gimme the Facts
        2. 1.1/3OI: We’ve Got the Question but How to Get the Answer: Who to Ask?
        3. 1.2/3OI: We’ve Kind of Got the Question but Where’s the Ballpark?
      3. Second Order Ignorance (2OI): I Have 2OI When I Don’t Know That I Don’t Know Something
        1. 2OI - General, Unintentional Lack of Awareness: Maybe We Don’t Know
        2. 2.1/3OI - Nonculpable Lack of Awareness: Blissful Ignorance.
      4. Third Order Ignorance: Lack of Process
        1. 3OI: General Lack of Process.
        2. 3.1/3OI: Unintentional Process Ignorance.
        3. 3.2/3OI: Intentional Process Ignorance.
      5. Fourth Order Ignorance: Meta-Ignorance
    3. Agile and Zeroth Order Ignorance
      1. Identical Repetition
      2. Minor Variation
      3. Major Variation
      4. Contextual Variation
        1. Operational Variation
    4. Agile and First Order Ignorance
    5. Agile and Second Order Ignorance
    6. Agile and Third Order Ignorance
    7. Agile and the Fourth Order of Ignorance
    8. Summary
  11. Chapter 8
    1. The Execution of Knowledge
    2. The Demise of “Software Engineering”
    3. The End of Code
    4. The Death of CASE, the Death of Method
    5. The Incubator of Knowledge Engineering
      1. Model Based
      2. Anthropomorphic Models
      3. Programmable Interface
      4. Variable Rule Based
      5. Executable
      6. Translatable
      7. Domain Specific
      8. Object Oriented
      9. Domain Variable
      10. Domain Interdependent
      11. Model Interdependent
      12. Meta-Models and Meta-Languages
      13. A Radically Different Project Setup
    6. Software Development as an Educational Activity
      1. How Do We Train People?
      2. Levels of Learning
      3. How Do We Learn Most Efficiently for this System?
      4. Controlled Failure
    7. The Project
      1. Praveen’s Morning
      2. Mayank’s Morning
      3. Hafsa’s Morning
      4. Maria’s Morning
      5. Jill’s Morning
      6. The Meeting
    8. Summary
  12. Appendix A
    1. Knowledge
    2. A Brief History of Knowledge Storage
      1. DNA
      2. Brains
      3. Hardware
      4. Books
      5. Software
    3. The Characteristics of the Knowledge Storage Media
      1. DNA
        1. Persistency
        2. Update Frequency
        3. Intentionality
        4. Self-Modification
        5. Modify Surroundings
      2. Brain
        1. Persistency
        2. Update Frequency
        3. Intentionality
        4. Self-Modification
        5. Modify Surroundings
      3. Hardware Design
        1. Persistency
        2. Update Frequency
        3. Intentionality
        4. Self-Modification
        5. Modify Surroundings
      4. Books
        1. Persistency
        2. Update Frequency
        3. Intentionality
        4. Self-Modification
        5. Modify Surroundings
      5. Software
        1. Persistency
        2. Update Frequency
        3. Intentionality
        4. Self-Modification
        5. Modify Surroundings
    4. Building on Knowledge
    5. Brains, Books, and Software
    6. Summary
  13. Appendix B
    1. A Walk in the Woods
    2. A Path Less Traveled
    3. Tracks
    4. Prototyping
    5. The Expectation of Product
    6. Kinds of Knowledge
    7. The Five Orders of Ignorance
      1. Zeroth Order Ignorance (0OI): Lack of Ignorance
      2. First Order Ignorance (1OI): Lack of Knowledge
      3. Second Order Ignorance (2OI): Lack of Awareness
      4. Third Order Ignorance (3OI): Lack of Process
      5. Fourth Order Ignorance (4OI): Meta Ignorance
    8. The Five Orders of Ignorance in Systems Development
      1. 0OI
      2. 1OI
      3. 2OI
      4. 3OI
      5. 4OI
    9. The 3OI Cycle
    10. The Inability to Measure Knowledge
    11. Summary
  14. Index (1/2)
  15. Index (2/2)

Product information

  • Title: The Laws of Software Process
  • Author(s): Phillip G. Armour
  • Release date: September 2003
  • Publisher(s): Auerbach Publications
  • ISBN: 9780203505649