Critique of Empirical Evidence and Formal Methods in Software Engineering
By
todsacerdoti
Slow-proofed and worth the wait. Worth its weight in flour.
Summary
The article is a critique of the software engineering field's approach to empirical evidence and formal methods. The author, who advocates for both empirical software engineering and formal methods, expresses frustration with the lack of rigorous empirical studies in software engineering. They argue that while formal methods are promoted as beneficial for catching defects early, there's insufficient empirical evidence to support these claims. The piece examines the disconnect between theoretical claims and actual evidence in software engineering practices, highlighting the need for more scientific rigor in the field.
Key quotes
· 4 pulledI'm a big advocate of Empirical Software Engineering. I wrote a talk on it. I wrote a 6000-word post covering one controversy. I spend a lot of time reading papers and talking to software researchers. ESE matters a lot to me.
I'm also a big advocate of formal methods (FM). I wrote a book on it, I'm helping run a conference on it, I professionally teach it for a living.
There's almost no empirical evidence that FM helps us deliver software cheaper, because it's such a niche field and nobody's really studied it.
But we can study a simpler claim: does catching software defects early...
You might also wanna read
Three Years In: A Senior Engineer's Reflection on AI's Impact on the Software Development Role
A senior engineer reflects on the long-term sustainability of AI tools in software development, three years into deep organizational adoptio
Three Years In: A Senior Engineer's Reflection on AI's Impact on the Software Development Role
A senior engineer reflects on the long-term sustainability of AI tools in software development, three years into deep organizational adoptio
Bijou64: A variable-length integer encoding that's both correct and accidentally fast
This article describes the development of bijou64, a variable-length integer (varint) encoding created for the Subduction CRDT sync protocol
Bijou64: A variable-length integer encoding that's both correct and accidentally fast
This article describes the development of bijou64, a variable-length integer (varint) encoding created for the Subduction CRDT sync protocol
Domain Expertise, Not Code, Is the True Competitive Advantage in Software
The article argues that true competitive advantage ("moat") in software has always been domain expertise—deep understanding of the business
A Formal Proof That Jira Is Turing-Complete via Minsky Machine Implementation
This article provides a formal proof that Jira (Atlassian's project-tracking tool) is Turing-complete by demonstrating how to build a Minsky
