BT

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

| by Daniel Bryant Follow 766 Followers on Mar 05, 2015. Estimated reading time: 3 minutes | NOTICE: The next QCon is in San Francisco Nov 5 - 9, 2018. Save an extra $100 with INFOQSF18!

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 Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT