Benjamin Van der Veen, Survant James
As engineers and product designers who take pride in our work product, we want to make world-class software and have fun doing it. Software is hard and complex—and mobile software even more so than conventional web applications. How can our product design and engineering processes help us make great software while staying productive and sane?
We identify three major initiatives: minimize user interface implementation complexity, maximize confidence in the correctness of the codebase at any given point in time, and be able to deploy with as few manual steps as
possible. Taken together, this allows teams to quickly bring features to market, maintain the flexibility of the product over time, and deliver simple, usable interfaces that align with platform paradigms users expect. We conclude that a functioning feedback loop between the user interface design process and the engineering process, commitment to both automated and manual testing of the product, and investment in deployment automation all positively impact product quality and engineering productivity, and afford for a predictable and stable release cycle.