BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News An Architect's World View: A Guide to Values, Principles and Practices

An Architect's World View: A Guide to Values, Principles and Practices

Bookmarks

At QCon London 2015, Colin Garlick presented “An Architect’s World View”, which provided a set of values, principles and practices to act as guidance for a software architect. The core values included people, the big picture, teamwork and integrity. Garlick proposed that these values are essentially characteristics that can be prioritised in order to work as a successful software architect.

Garlick, a senior knowledge engineer at Software Education, opened the presentation by stating the the Manifesto for Agile Software Development has added value to the process of software development. The stated preference for items such as individuals and interactions over lesser valued items like processes and tool has enabled developers to make better decisions when designing and creating software.

The values stated in the Agile Manifesto lead to the creation of the twelve principles of agile software, which in turn directly drove the creation of beneficial agile development practices. Garlick proposed that software architects would benefit from a similar set of values, practices and principles.

Garlick began by suggesting that people are the most important part of a business, and should be set as a primary value. People within both the business and IT can be seen as customers of architecture, and accordingly a successful architect should value people and meeting their requirements.

An architect must also have a holistic understanding of the high-level concepts, or ‘big picture’, of a complex system, and should have a strong vision for a system’s architecture. Garlick quoted Grady Booch in respect to this:

The presence (or absence) of a strong architectural vision is a key predictor in the success (or failure) of a complex system.

Garlick continued by paraphrasing Fred Brooks, stating that the presence of a system architect is the most important single step toward conceptual integrity of a software system, and conceptual integrity is central to product quality.

Humility is also an important value for software architects, and architects should act as both technical and social leaders within the software team. Architects should see themselves as enablers, and their primary role should be the removal of barriers that are preventing their team from progressing. Effective teamwork is also vital, as is having a diverse team with differing strengths and weaknesses, which allows solutions with different approaches to be generated and evaluated.

Garlick concluded the value-driven section of the talk by suggesting that integrity is also an essential characteristic of an architect. An architect must have the trust of their team, in matters both small and big, in order to be effective.

Garlick continued by stating that principles can be used as a guide when applying values, and for software architects core principles include: communication, involving everyone, simplicity, just-in-time, good design, deliver working solutions, constant learning, quality, and successful change and complexity management.

Good communication throughout the software development team is vital, and architects must seek to understand challenges and problems before attempting to formulate and make others understand how to apply the proposed solutions. Simplicity is also a prerequisite for reliability, and often ‘less means more’. Garlick stated that systems designed for testing typically have higher quality than those that were not, and architects should enable decisions to be made for defining what level of quality is ‘good enough’.

The concluding section of the talk introduced a series of anti-patterns, which demonstrated the practices that should and should not be applied when carrying out the aforementioned principles.

The anti-patterns presented included; ‘ivory tower’ architecture, where tools and standards are dictated without proper consideration of the people or problems affected by the decisions; ‘30,000 feet and climbing’ and ‘real-world disconnect’, where architecture becomes overly abstract or meaningless; ‘buzzword-driven’ and ‘ego-driven’ architectures, in which architects include inappropriate technologies and practices without consideration of their team; and ‘tester can’t draw the design’, stating that if a tester cannot draw the high-level architecture then there is most likely a lack of conceptual integrity and a failure of communication.

The slides for Colin Garlick’s talk “An Architect’s World View” can be found on the QCon London 2015 website schedule page.

Rate this Article

Adoption
Style

BT