Skip to content

Instantly share code, notes, and snippets.

@marick
Created December 9, 2017 22:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marick/7b9e7991b11e3b78314089f37dd4b062 to your computer and use it in GitHub Desktop.
Save marick/7b9e7991b11e3b78314089f37dd4b062 to your computer and use it in GitHub Desktop.

...

Like a lot of the early agile advocates, I was programming in the 1980's, when programmers didn’t tend to be people who thought it was a way to become rich. As I thought of it at the time (and it might even be true), programmers were divided into two categories: corporate drones and people with a strong math/physics attitude, including a lot of received wisdom about elegance and simplicity.

I was the latter. So were a lot of people who’ve come to be identified with “Agile”. What we noticed was that when programmers like us had power, we tended to favor our own values over those who were actually paying for the software we were writing. We’d force users to think in terms of our abstractions instead of their own — which tended to be messier, less abstract.

Some of us became “reformed sinners”, became much more inclined to err on the side of letting the users’ needs drive the software. We still had our values, but not at the expense of theirs. Sometimes a magical thing happens: we can find abstractions that satisfy both of us, and they’re not the ones we would have come up with on our own. I like this story of such an episode: http://www.exampler.com/old-blog/2004/08/11/index.html

It’s possible that we agilistas have gone too far, but I’m betting that:

  1. we can surprise ourselves by letting the domain drive us to a type of abstraction we might not have noticed, and:

  2. … even if it doesn’t, it’s better for us to deal with some messiness than to push problems onto our users.

This is, um, rather a minority view among static FP types (as far as I can tell). But it’s my view.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment