Tag Archives: History of Software Engineering

Unit test: you keep using this word.

There’s an idea doing the rounds that the “unit” in “unit test” means the unity of the test, rather than a test of a software unit. Moreover, that it originally meant this, and that anyone who says “unit test” to … Continue reading

Posted in test, unittest | Tagged | Leave a comment

When to “address” “technical debt”?

The phrase “technical debt” appears in scare quotes here because, as observed in The Unreasonable Ineffectiveness of Considering Things Harmful, technical debt has quite a specific meaning and I’m talking about something broader here. Quoting Ward Cunningham: Shipping first time … Continue reading

Posted in process | Tagged | 3 Comments

Having the right data

In the beginning there was the relational database, and it was…OK, I guess. It was based on the relational model, and allowed operations that were within the relational algebra. I mean it actually didn’t. The usual standard for relational databases … Continue reading

Posted in software-engineering | Tagged | Leave a comment

Aphorism Considered Harmful

Recently Dan North asked the origin of the software design aphorism “make it work, make it right, make it fast”. Before delving into that story, it’s important to note that I had already heard this phrase. I don’t know where, … Continue reading

Posted in whatevs | Tagged | 3 Comments

What is software engineering?

I suppose if I’m going to have a tagline like “from programming to software engineering”, we ought to have some kind of shared understanding of what that journey entails. It would be particularly useful to agree on the destination. The … Continue reading

Posted in software-engineering | Tagged | Leave a comment

Halloween is Over

Back in 2016, I sent the following letter to Linux Voice, and it was published in issue 24 as the star letter. LV came to an end (and made all of their content available as Creative Commons) when they merged … Continue reading

Posted in AAPL, FLOSS, msft | Tagged | Leave a comment

Design Patterns On Trial

Back in 1999, the OOPSLA conference held a show trial for the “Gang of Four”: Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Five years earlier, they had released their book “Design Patterns: Elements of Reusable Object-Oriented Software” at … Continue reading

Posted in whatevs | Tagged | 1 Comment

Explicitly considering subtyping in inheritance

By far the post on this blog that gains the most long-term interest and attention is why inheritance never made any sense. In this post, I explain that there are three different ways to think about inheritance—ontological inheritance (this sort … Continue reading

Posted in OOP | Tagged | Leave a comment

I have some small idea of what I’m doing

I feel partly to blame for the current minor internet shitstorm. But first, some scene-setting. There have long been associations between the programmer community and particular subcultures, some of which have become—not monocultural—at least dominant cultures within the world of … Continue reading

Posted in advancement of the self, edjercashun | Tagged | Leave a comment

An Imagined History of Agile Software Development

Having benefited from the imagined history of Object-Oriented Programming, it’s time to turn our flawed retelling toolset to Agile. This history is as inaccurate and biased as it is illuminating. In the beginning, there was no software. This was considered … Continue reading

Posted in agile | Tagged | 1 Comment