Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Keeping Systems "Poised for Change" with Evolutionary Architecture

Keeping Systems "Poised for Change" with Evolutionary Architecture

This item in japanese

At the Agile on the Beach 2016 conference, held in Cornwall, UK, Rebecca Parsons argued that the requirements for improved time-to-market and increased business agility can be achieved by architecting software for real evolvability, keeping systems poised for change, lowering the cost (and risk) of experimentation, maximising visibility and feedback, and aligning the organisation towards the core value proposition.

The second day’s keynote at Agile on the Beach, “Poised for Change”, was presented by Rebecca Parsons, CTO of Thoughtworks. Parsons began the talk by stating that demands in decreasing time-to-market are becoming greater, and although ‘agile’ has been practiced for over twenty years, not all elements of the software delivery process have yet embraced this concept fully. The ability to change quickly and experiment often can be a competitive advantage:

Be prepared to change quickly

Agility at the business level is critical, and the virtuous cycle for reducing time-to-market includes: testing hypothesis, quick delivery and release, and measurement. Parsons pointed out that measurement is vital, but often missed; although much effort is spent planning and budgeting before the project begins, monetary amounts are often not measured after delivery. Organisations must also make it safe to fail, as not every experiment will (or should) succeed.

If you aren’t failing, then you aren’t innovating. Make it safe to fail.

Techniques that can help delivery of valuable software include:

  • Continuous design - creating and modifying the design of a system as it is developed, rather than attempting to specify the systems completely before development starts
  • Continuous delivery (CD) - delivering software in short cycles, ensuring the software can be reliably released at any time. CD makes it safe to release software, and hence enables experimentation
  • Pragmatic software quality - monitoring the trends of core software quality metrics (such as duplication, cyclomatic complexity, and defect rate) is vital
  • Evolutionary architecture - design for incremental change in an architecture as a first principle
  • Properly organised IT - be aware of Conway’s Law, and accordingly introduce agile principles into the design of the organisational structure. Sriram Narayan has written about this in “Agile IT Organization Design

The topic of evolutionary architecture is new to many developers, and accordingly learning about concepts such as the strangler pattern, Postel’s Law, architecting for testability, and prioritising evolvability over maintainability and adaptability, will be beneficial.

The strangler pattern

Paying attention to non-functional requirements are equally as important, and deciding upfront about what matters in terms of performance, security, and reliability, will make design choices easier throughout the lifecycle of the project.

Non-functional requirements are vital [...] To learn more, talk to the people who get hurt when things go wrong, such as the operations team

Parsons began concluding the talk by stating that IT was traditionally thought of as a cost centre, and accordingly prioritised stabilisation and standardisation. Now IT is often seen as core to a business’ value proposition, and therefore experimentation and reactivity should be prioritised. This clash of cost control versus value generation can often lead to organisational rifts, and must be managed accordingly. The organisational differentiators must be considered (what is the core value proposition of the business?), the ‘commodity computing’ must be separated from the areas of IT that require innovation, the whole IT portfolio must be managed, and ‘right-sized’ out-sourcing can be considered.

Summarising the talk, Parsons stated that the goal of business agility can be achieved through the following techniques:

Additional information about ‘Agile on the Beach’ can be found on the conference website, and by following the 'agileotb' Twitter hashtag. The video for Rebecca Parsons day two keynote will soon be uploaded to the Agile on the Beach YouTube channel.

Rate this Article