How Google solves complex problems