Software teams, in the broader sense, are complex adaptive systems. They live within organizations populated by many actors, influenced by the methods, practices and behaviors that coexist with them. Most of all, they have the capability to learn and adapt to each new entrant into their world. It is for this reason that, we tend to avoid recommending ‘best practices’ that all software teams can follow for success, let alone ‘agility’.
At Thoughtworks Studios, we have defined our ideal state as being one of continuous delivery: one in which the customers and users of software have maximum ownership and influence of the development process.