Traditional software design can dictate layers of abstraction that can challenge teams striving for agility. Often companies trying to adopt agile have years invested in both architecture and supporting organizational infrastructures that don’t readily lend themselves to adoption of agile.