Preface

 

I don’t like bad software. I don’t want to make it, and I don’t want others to make it. It’s not just that I don’t want to use it; I don’t think anyone should have to use it. Unfortunately, what constitutes bad software is often difficult to define, which makes it hard to avoid creating it.

More than a decade ago, I set about trying to learn how to make better software so I could avoid contributing to the body of bad software that exists. As a developer, this meant learning about a lot of new topics, especially design. As I learned more, I started to share what I’d discovered with other developers at conferences and in user groups. Developers couldn’t understand or relate to the language and terminology of design, and they often weren’t interested in learning it, but they were interested in making better software.

It was at this time I developed the idea of the six components of an app that form the six parts of this book. These components allow developers to think about software (particularly mobile apps) in a way that goes beyond just the writing of code, but without needing to become a designer. This book aims to bring these ideas to a wider audience to help more developers improve their apps.