Is it better to be agile or flexible ?

change ahead shadowBeing agile is to be able to move quickly and easily [1]. Being flexible is something else, it is the ability to be easily modified to respond to altered circumstances [2][3]. So if agility is about speed, flexibility is about adaptation. In a business solution [4] context, both are needed to respond effectively and efficiently to customer needs.

 

Agile development methodologies [5] are currently trendy, they promote an iterative and incremental solution development approach which allows to render value faster and more regularly to customers. That is fine provided that the customer requirements to be implemented in the next “agile” iteration do not induce a complete redesign of what has been previously built  …

An iteration is basically a full project lifecycle applied to a pre-agreed subset of customer needs for a particular business solution. So it means that while designing a sub-set, the functional and technical architecture strategy of the solution must cater for requirements that future iterations will (potentially) bring. But is that possible without considering the entire sets of requirements from the start, and thus going against the Agile principles ?

To avoid that, flexible functional and technical architectures are needed. But how can this be achieved without knowing future needs ?
Architects can for example make use of “design patterns” [6][7] which are formalized best practices they can use to solve common problems when designing solutions. These patterns result  from their practical experience and know-how, they are valid across iterations and projects – e.g. object oriented design and service oriented architecture – and consequently not directly driven by customer needs !
agility vs flexibility 2

So if agility increases business value and time to market, it must not be at the expense of the organisation by applying additional burden and pressure to it. Flexibility prevents and caters for that. Flexibility is the mandatory companion to agility for efficient business solution delivery processes.

References:

[1] agile, www.oxforddictionaries.com
[2] flexible, www.oxforddictionaries.com
[3] flexibility, wikipedia
[4] business solution
[5] agile software development, wikipedia
[6] design pattern, wikipedia
[7] software design patterns, wikipedia

Related articles

 

Leave a Reply