Mike's Notes
An ACM Tech Talk interview yesterday with Kent Beck, author of Tidy First.
Resources
References
- Reference
Repository
- Home > Handbook >
Last Updated
18/04/2025
Kent Beck on Empirical Software Design: When & Why
Kent Beck is an American software engineer and the creator of Extreme Programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process. Beck was one of the 17 original signatories of the Agile Manifesto.
Beck pioneered Test-Driven Development, its successor TCR: Test && Commit || Revert, software design patterns, and 3X: Explore/Expand/Extract. He wrote the SUnit unit testing framework for Smalltalk, which spawned the xUnit series of frameworks, notably JUnit for Java, which Beck wrote with Erich Gamma. Beck popularized CRC cards with Ward Cunningham, the inventor of the wiki.
Margaret-Anne Storey is a Professor of Computer Science and a Canada Research Chair in Human and Social Aspects of Software Engineering at the University of Victoria. Together with her students and collaborators, she seeks to understand how software tools, communication media, data visualizations, and social theories can be leveraged to improve how software engineers and knowledge workers explore, understand, analyze, and share complex information and knowledge. She has published widely on these topics and collaborates extensively with high-tech companies and non-profit organizations to ensure real-world applicability of her research contributions and tools.
Since the publication of Parnas' "On the Criteria to Be Used in Decomposing Systems into Modules" we have had good advice on how to design software. However, most software is more difficult to change than it should be and that friction compounds over time. The Empirical Design Project seeks to resolve the seemingly-irresolvable tradeoff between short-term feature progress and long-term optionality, focusing on:
- How is software actually designed? What can we learn from data about how software is designed?
- When should software design decisions be made? What is the optimal moment given unclear and changing information & priorities?
- How can we enhance the survival of software projects while expanding optionality?
Spoiler alert: make design decisions later and in small, safe steps.
Other talks
Tidy First? A Daily Exercise in Empirical Design • Kent Beck • GOTO 2024
No comments:
Post a Comment