
 
development are pursued for facilitating the software 
project. For example, a state government wants to 
install imaging systems at government controlled 
toll gates, that accurately capture graphic images of 
license plates of cars that pass through toll gates 
without paying the toll, which would then be used 
for generating letters sent to the person under whose 
name the car is registered with a statement of fines 
that the person of the car must pay to the 
government, in order to avoid charges of breaking 
the law purposefully. It is important that such a 
system have a near zero rate of false positives and 
false negatives and would have to be engineered 
using conservative approaches before being put in 
production. The project team implementing such a 
project should use conservative techniques given 
that the risks associated with system not working per 
the goal is unacceptable and that the architecture 
supporting the implementation has not been in use 
long enough to qualify as a mature design pattern.   
2.1.3 Ceremonious 
When the architecture maturity is high, i.e. the 
architecture is known to be robust in multiple 
instances of software development projects and 
when agile methods are conscientiously not 
employed and practitioners choose the traditional 
methods for software development, then the project 
observes a high degree of ceremony – a practice 
which can be revisited and re-assessed in the face of 
high architecture maturity to determine whether 
wastage of time and resources is occurring. 
Conservative projects can also be ceremonious and 
certainly vice versa, but conservatism in the former 
case is driven primarily by low risk tolerance 
associated with a little used design pattern and in the 
latter case can be more attitudinal and cultural 
however this may not necessarily always be the case. 
For example, with the Sarbanes Oxley Act of 2002, 
which applies to all organizations publicly traded on 
any one of the US stock exchanges, firms are 
expected to enforce detailed processes and extensive 
documentation for all software projects implemented 
within the organization and hence a culture of 
conducting software projects ceremoniously is the 
norm for these organizations.
 
2.1.4 Optimizing 
Software development projects that make use of 
mature architectures and deploy agile software 
development methods are optimizing projects. These 
projects leverage architecture maturity to eliminate 
associated technical risks and make use of agile 
methodology to adapt to and respond to changing 
customer requirements. Software is developed 
incrementally on a sound architectural foundation 
with focus on implementing on-demand solutions in 
short periods of time. Optimizing projects are thus 
the result of high architecture maturity and high 
degree of agility observed during software 
development. Consider the case of context-aware IT 
solutions, such as PeopleSoft that are created to 
implement business processes relevant to a specific 
domain – that of payroll processing.  
2.2  Characteristics of the Project Types 
Having discussed the four quadrants of the 
architecture maturity and agility matrix, the question 
is - is one quadrant superior to others when it comes 
to deploying a project type that teams ought to 
engage in, given a software development endeavour? 
The answer is, it depends. Mature architectures were 
also once nascent structural frameworks which 
emerged borne out of the creative endeavours of 
practitioners and with use over a period of time 
proved to be mature enough to gain widespread 
adoption in endeavours of a similar nature. At the 
same time, different industries are subject to 
different government policies and often legal and 
compliance risks play a factor in choosing the more 
traditional, conservative and ceremonious approach 
to software development over agile methods. On the 
other hand, experimental projects can yield highly 
creative solutions and should not be discouraged if 
the team is aware of the risks they are taking when 
engaging in experimental software projects and the 
fact that there is a possibility that such projects can 
turn out to be of the “hit-or-miss” variety over the 
long term.  
The optimizing solution does tend to leverage 
mature architectures – making use of agility in a 
calculated manner, thereby being able to deliver 
software in short cycles of time – a strong value 
proposition for the customer or end users of the 
software. It also leverages the maturity of the 
underlying architecture which plays a fundamental 
role in delivering reliable solutions. In fact, if the 
underlying architecture is known to exhibit a high 
degree of maturity, then agile methods should be 
considered the best practice for software 
development, unless there are other pressures or 
forces in play that leave the team with no choice but 
to adopt the ceremonious way of doing software 
projects. It is also worthwhile noting, that as the 
architecture maturity increases over a period of time, 
development teams potentially first engage in 
AGILITY BY VIRTUE OF ARCHITECTURE MATURITY
345