As the Internet of Things takes hold and more common appliances are run by software, people will be increasingly reliant on programmers’ ability to write good code. But how do we define “good code” or “good software”—and how do we get there? Stefano Rizzo explains eight requirements he thinks are essential.