Over the years, our development teams have evolved, disbanded and been created. Most of the time, each team has been given full autonomy over how they work. We have ended up with is a collection of teams with disparate approaches to the same mission - creating great software.