Agility and the essence of software architecture