Pragmatic Designer

A collection of articles from the 'Pragmatic Designer' column (2019-), edited by George Fairbanks.

"My intent with this column is to make it easier to talk about intellectual control and connect it with practices we already use on our projects. It’s difficult to talk about the kind of control we have over our software and more difficult still to talk about different approaches like intellectual control and statistical control." -George Fairbanks

This collections includes 14 articles published between 2019 and 2022.

(stats / articles)
(stats / downloads)
(top articles)




2022 (1)

2022
Two Kinds of Iteration
IEEE Software 2022 (1); by G. Fairbanks

TODO: There are two kinds of iteration, but they are commonly conflated.

2021 (2)

2021
Garbage Collect Your Technical Debt
IEEE Software 2021 (5); by M. Keeling, T. Halloran, G. Fairbanks

There is a kind of design distortion that happens when a team chooses to build iteratively instead of looking at all of the requirements at once.

2021
Why Is It Getting Harder To Apply Software Architecture?
IEEE Software 2021 (4); by G. Fairbanks

We currently find ourselves in a surprising situation: we understand software architecture fairly well, but we find it difficult to put it into practice.

2020 (5)

2020
The Rituals of Iterations and Tests
IEEE Software 2020 (6); by G. Fairbanks

Presents effective strategies for software development and management processes.

2020
Code Is Your Partner in Thought
IEEE Software 2020 (5); by G. Fairbanks

Writing about the buildup of technical debt, Ward Cunningham said, Although immature code may work fine and be completely acceptable to the customer, excess…

2020
Ur-Technical Debt
IEEE Software 2020 (4); by G. Fairbanks

Discusses the term "technical debt". Its so prevalent that we shorten it to tech debt or even just TD.

2020
Testing Numbs Us to Our Loss of Intellectual Control
IEEE Software 2020 (3); by G. Fairbanks

I've been reflecting on how we used to develop software in the 1990s compared to what I see today.

2020
Between the Waterfall Wasteland and the Agile Outback
IEEE Software 2020 (1); by E. Poort

In the past decade, we have seen a significant shift in attitudes toward the architects role.

2019 (6)

2019
Better Code Reviews With Design by Contract
IEEE Software 2019 (6); by G. Fairbanks

Design by contract DBC is a technique that improves the quality of your team's code.

2019
Healthy Code Reveals the Problem and Solution
IEEE Software 2019 (5); by G. Fairbanks

Source code reveals abstractions from two places: the problem and the solution.

2019
Scale Your Team Horizontally
IEEE Software 2019 (4); by G. Fairbanks

Not long ago, when your company became successful, you bought a bigger computer to run your software.

2019
Principle of Least Expressiveness
IEEE Software 2019 (3); by G. Fairbanks

I'm always delighted to discover a connection between two ideas that I'm already fond of on their own, so I'd like to share a connection I found recently.

2019
Ignore, Refactor, or Rewrite
IEEE Software 2019 (2); by G. Fairbanks

Imagine that you have some code written, but it has problems.

2019
Intellectual Control
IEEE Software 2019 (1); by G. Fairbanks

In the early days of software engineering, Edsger Dijkstra warned us not to let the size and complexity of our programs cause us to lose intellectual…