Methods, methodologies and mindset

These definitions are from the book Wild West To Agile book by Jim Highsmith. I liked them much, so I'm resharing them here and I'll be reusing them across notes.

Method: The detailed steps to deliver artifacts identified by your chosen methodology. For example, refactoring is a technique (method) for improving code quality. Methods might include DFD, refactoring, or data modeling.

Methodology: Your strategy for software work. It divides software work into activities or steps, which may include the definition of specific deliverables (like a requirements document) and artifacts. Traditional examples include Method/1, STRADIS, and DSSD; agile examples include Scrum, Extreme Programming, and Crystal.

Mindset: An attitude, a set of beliefs we use in making sense of the world. It causes us to think about issues from a certain perspective, to have feelings about events, and to act accordingly. In software development, a person with a cautious mindset will interpret an event differently from a person with an adventurous mindset.

These concepts evolved over time to solve the problems of each era of software engineering, and were both enabled and constrained by the technology of each time. See The increasing in uncertainty drove each era of software development practices and Slow feedback loops and expensive computing forced optimization for machines over people.

The distinction between complicated and complex systems fundamentally shapes which methodologies work. See Software development is complex, not complicated, The correct response to complexity is probe, sense, respond, and There are no best practices in complex systems.

References

Wild West To Agile - Jim Highsmith