When you talk to software professionals, you come away with the idea that we have a case of feature-itis. An enormous number of people evaluate software in terms of the length of feature lists and functionality. People dismiss software with fewer features as “underpowered”. And how many times have you heard software devalued because “I could build that”?
And yet, intuitively we know that’s not always true. urllib3 has more features than requests, but people overwhelmingly prefer to use requests. Android has more features than iOS, but Android hasn’t demolished iOS.
The reason for this is that simplicity is a powerful advantage. This talk will explain what is meant by simplicity, how to judge software simplicity, and how to approach building simple tools. It’ll also talk about how to structure your code to give the optimum balance of simplicity and flexibility, to keep yourself and your users happy down the line.