Programming for pleasure
2021-06-02, 09:15–10:00 (Europe/Paris), Main Room

As programmers, we’re very lucky - our work is often creative and enjoyable, and the culture of programming itself is inventive and playful. Programming can be a pleasure in itself. What we don’t usually recognise is that the effect of this is to make the software we create worse rather better. If we want to make better software, we need to start programming not for pleasure, but for pain.

Why is so much software so bad? And why is so much of it made by really excellent programmers? It's a puzzle to users, who are baffled by the way their software behaves. It's a cause of grief to customer support teams, who have to deal with users' pain. It's exhausting for product managers, who expend vast amounts of energy interacting with engineering teams.

It's not just a matter of individual frustration though. Bad software emits a kind of pollution that damages working environments, and is expensive to clean up after. It's a drag on the progress of companies that use it, and harms the reputation and success of the companies that make it.

So, why do software engineering teams make bad software, when of course they sincerely believe that they are making the best possible software, employing the best possible programmers, following the best processes?

I argue that there is a reason for it: programmers are condemned, by the nature of programming itself, to make bad software, that we make bad software because programming is pleasurable.

I'll discuss the consequences of this, and consider what we can do about it. And I will argue that the only way out of this fate is to embrace pain.

Daniele works at Divio, where he helps customers automate cloud deployment of large Python applications. He’s a Django core developer and an enthusiastic supporter of the international Python community and its events.