Tap a button and get your dog walked. Sounds simple enough, but there's enormous complexity behind this.