Nothing Is Permanent Except Change - How Software Architects Can Embrace Change
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.

Posted by Robert Schwegler on Oct 13, 2009
In any fast moving industry, agility is a key contributor to business success. Agility demands a high level of process efficiency: fast reaction to new and changing customer requirements or incidents is an essential quality of every agile software production. To raise efficiency, bwin concentrated on automation. The prime focus was on configuration management (CM) processes and, in fact, automation led to outstanding efficiency gains.
When continuous fine-tuning signalled that efficiency gains through automation had reached their saturation level, bwin realized that it had to find new ways to raise efficiency beyond the potential of automation.
The solution was human intervention. By formally integrating people from the wider business and IT team into change or incident management bwin cut down the amount of effort it expended on configuration management, it improved process effectiveness, and raised the team's process knowledge and awareness. Stopping an automatic process, calling for human intervention and then resuming the process sounds pretty much counterproductive. However, practical experiences show that human-augmented automatic CM processes can outperform their purely automatic counterparts.
Relating IT components (or configuration items (CIs)) to people gives the opportunity to increase the effectiveness of the configuration management function. bwin realized that the integration of human relationships and responsibilities drives not only business performance of configuration management but also insight and transparency in processes related to incident and change management. With more effective problem prevention and decision-making, faster recovery from problems can be achieved, and more effective root-cause analysis can be performed.
bwin is the world’s largest publicly listed Online Gaming Company. As with most companies, in the past the configuration management function at bwin primarily focussed on IT “asset” tracking. Products and systems were catalogued as semi-abstract lists of physical things, or assets, and changes to those assets were religiously described, tracked, and managed. When human domain knowledge interlaces automatic change control process impacts from incidents or changes became much easier to predict and manage.
Addressing the right people, at the right time, during automatic problem discovery and recovery massively improves the business value delivered by configuration management. bwin capitalized on human-augmented configuration management processes by gaining better understanding of customer requirements and by identifying impacts earlier. This all sums up in remarkable cost-efficiency gains.
The principle of bwin's model is not new: enhanced configuration management services created CI “owners” (the ultimate “business” stakeholders for any CI) as well as “custodians” which were the IT team representatives of the owner. The custodian administers the CI that “belongs” to another actor (the owner).
For instance, the Finance Department may have designed and therefore “owns” the method of currency conversion. The custodian, in turn, realizes the business goals as an IT system. Following this example through, the custodian would be the database administrator responsible for achieving a timely update of the exchange rates.
By recording and representing all the relationships between CIs, and between CI owners and custodians, all the relevant decision makers, and necessary information, can be brought to bear on any issue quickly and effectively. The right people can be informed and consulted, and the dependency chain linking the incident back to the instigating event can be followed. Finding the right pattern of automatic CM processes interlaced with human activities is certainly a challenge, but efficiency gains show that it's worth the effort.
It is hard to clearly separate the impact of the “human factor” from the impact of automation in the overall cost reduction effect. We cannot expect to translate the “human factor” exactly into effort reductions. bwin applied the change rate coefficient as indicator that measures the potential of a particular activity (like automation) to reduce cost increases (resulting from an increasing number of processes). With its focus solely on automation the coefficient of deployment processes, for instance, reflects the cost reduction potential of automation.
To demonstrate the potential, we compared completely automated software deployment processes with human-augmented automatic incident management processes. We observed the development of effort during one year:
However, the pure figures do not sufficiently reflect the effect of the efficiency measures. bwin's change rate coefficient points out the effect more clearly. It is inclined to a change rate coefficient the economists often use in order to express the “energy” a measure exposes when changing the development path of a certain economic factor, like costs, revenues, etc.
bwin's change rate coefficient ranges between 0 (very low) and 1 (very high “energy”).
One of the key ingredients in the bwin's success has been its focus on its customers, and creating - and continuously improving - the best set of products in the industry. The IT team sets itself the strategic goal of enhancing its responsiveness to change requests and software incidents. Analysis showed bwin that a major impediment to increased software product software agility it faced was inefficient configuration management.
The right pattern of automatic processes interlaced with human intervention provided bwin with an instrument to raise process efficiency in CM quite drastically.
One of the less tangible, but very important, successes of the incorporation of human factors into change management was an increased visibility and appreciation of the context and importance of change amongst team members and stakeholders across the company.
Some of the more tangible successes achieved were:
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
Alex Russell talks about the shortcomings of the web platform and how it is evolving in order to adress them. He also explains about how browsers are improving and shares his vision on things to come.
Jeff Lindsay discusses creating distributed and concurrent systems using ZeroMQ – a lightweight message queue-, and gevent – a coroutine-based networking library.
Brian Ketelsen introduces Skynet, a platform for polyglot, distributed and composable services that communicate with each other over RPC/JSON.
Carin Meier tells the story of Alice discovering Monads, meeting three types of monads – Identity, Maybe, State-, and learning how to implement them in Clojure.
The need for agile, queryable, reliable, scalable storage without the pain of SQL schema migration is real. This article uses MongoDB to introduce NoSQL concepts to Java, PHP, and Python developers.
Jérôme Giraud introduces Wink Toolkit, an open source mobile JavaScript framework for HTML5 web or hybrid apps, showing widgets and interactions.
No comments
Watch Thread Reply