Agile is about usability. So is Clean Code.

Maybe it’s because usability was such a strong focus of mine for such a long time but I feel like most good ideas boil down to usability. It’s kind of my “grand unifying theory of good practices”. To me, Agile Software Development is about providing good usability to the customer (not necessarily the user). Clean Code is about good usability for other developers. They’re both about going the extra mile to make someone else’s life easier.

Agile Software Development is about providing good usability to the customer

Not convinced? Well, I hope it’s easy to see how Clean Code will make code more usable for its future maintainers. That’s why I’ll concentrate on making the case that agile software development is for product development what usability is for product.

For starters, the first agile principle says

Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.

There are a number of ways in which common agile practices coincide with usability best practices:

  • You’ve got no idea what is going to work unless you’ve tested it with users -> You’ve got no idea what the customer really wanted until you demo it to them. Short feedback loops and frequent reviews win the day.
  • Don’t make people second-guess where they are. Always show them where they are in the flow. -> Be very clear about progress and status of the work. Visualize everything.
  • The user should be in control -> The customer should be in control, i.e. able to change their priorities. Again, frequent reviews with the customer are a really good idea.
  • Provide clear entries and exits -> E.g. Scrum does this nicely with the Sprint Planning and Review framing sprints. (Unfortunaly Scrum sucks at speaking the customer’s language with its abundance of jargon.)

That’s the parallels I’ve got so far. That’s why to me agile is not about freeing developers from the clutches of evil managers or so. Not primarily anyway. Primarily it’s about self-discipline and caring about someone else’s experience more than your own.

PS: What’s your great unifying theory? What can you trace everything back to?

Share this article:

2 Comments Agile is about usability. So is Clean Code.

  1. John Grimm

    My unifying theory is that the trend toward lack of management engagement in the development process is increasing year after year.

    Cookie cutter development methodologies are being implemented that remove the expense of thoughtful design and even thinking in general. These managers or execs tell themselves ‘If experts or so called ‘best practices’ say to do it this way, then it must be right for us also!’ I say ‘How about some simple common sense?’

    I have developed software for 35 years. Every project is different. Every client base and every team is different.

    Just sailing along with the current is not the answer. Steering a thoughtful course and careful management of your resources will win the day more often than not.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *