Tag Archives: History of Software Engineering

So, what’s the plan? Part 1: what WAS the plan?

No CEO dominated a market without a plan, but no market was dominated by following the plan. — I made this quote up. Let’s say it was Rockefeller or someone. In Accidental Tech Podcast 385: Temporal Smear, John Siracusa muses … Continue reading

Posted in AAPL, Java, WebObjects | Tagged | 1 Comment

SICPers podcast episode 10

This episode is all about build systems! Mostly about the problems associated with the venerable ./configure; make; make install process. This expands on a section I wrote in APPropriate Behaviour. The history of UNIX make Why Johnny Can’t Build [portable … Continue reading

Posted in podcast | Tagged | Leave a comment

SICPers podcast episode 9

In this episode I talk about Design by Contract. Episode RSS feed – also available in Apple and Google Podcasts. A Discipline of Programming Go to statement considered harmful Z Notation, and Object-Z CocoaByContract, and JavaByContract CLU Programming Language

Posted in code-level, design, podcast | Tagged | Leave a comment

Mature Optimization

This comment on why NetNewsWire is fast brings up one of the famous tropes of computer science: The line between [performance considerations pervading software design] and premature optimization isn’t clearly defined. If only someone had written a whole paper about … Continue reading

Posted in performance | Tagged | 1 Comment

First, Consider no Harmful.

Yesterday, we observed that the goal of considering the go to statement harmful was so that a programmer could write a correct program and have done with it. We noticed that this is never how computering works: many programs are … Continue reading

Posted in code-level | Tagged | Leave a comment

The unreasonable ineffectiveness of considering things harmful

Dijkstra didn’t claim to consider the go to statement harmful, not in those words. The title of his letter to CACM was provided by the editor, Niklaus Wirth, who did such a great job that the entire industry knows that … Continue reading

Posted in code-level | Tagged | 2 Comments

Everyone rejecting everyone else

It’s common in our cooler-than-Agile, post-Agile community to say that Agile teams who “didn’t get it” eschewed good existing practices in their rush to adopt new ways of thinking. We don’t need UML, we’re Agile! Working software over comprehensive documentation! … Continue reading

Posted in agile, architecture of sorts, process | Tagged | 1 Comment

On exploding boilers

Throughout our history, it has always been standardisation of components that has enabled creations of greater complexity. This quote, from Simon Wardley’s finding a path, reminded me of the software industry’s relationship with interchangeable parts. Brad Cox, in both Object-Oriented … Continue reading

Posted in architecture of sorts | Tagged | Leave a comment

The value of the things on the left

With the rise of critical writing like Bertand Meyer’s Agile! The Good, the Hype, and the Ugly, Daniel Mezick’s Agile-Industrial Complex, and my own Fragile Manifesto, it’s easy to conclude the this Agile thing is getting tired. We’re comfortable enough … Continue reading

Posted in process | Tagged | Leave a comment

Applications and Spelling of Boole

While Alan Turing is regarded by many as the grandfather of Artificial Intelligence, George Boole should be entitled to some claim to that epithet too. His Investigation of the Laws of Thought is nothing other than a systematisation of “those … Continue reading

Posted in whatevs | Tagged | Leave a comment