Understanding Information Architecture for Developers
What is Information Architecture (IA)? How can it help developers find answers to internal questions more efficiently, and raise the productivity of engineering teams?
June 3, 2020
A key challenge among development teams is to know which tools to use. Whenever a new tool is mentioned, IT leaders would question the need for additional knowledge and collaboration systems.
Enterprises use a variety of systems for content management and knowledge sharing. Information is stored on knowledge platforms, social collaboration tools, wikis, and documentation systems—yet these are just the explicitly created knowledge stores.
There are also the systems with databases which store pieces of information, such as project management systems, code repositories, service management applications, defect tracking, and more. Systems communicate information as well, transmitting messages and sharing knowledge, hence creating a large archive of information.
Despite these many pools of data and knowledge, developers are still working under low information circumstances, simply because the useful and applicable content they require are not easily discoverable, nor do they arise consistently.
In its modern use, Information Architecture (IA) is usually related to the design of information, with practitioners coming from the UX perspective. The history of IA, however, takes us further back to the 1960’s. In an IBM research paper written in 1964 entitled “Architecture of the IBM System/360” (Amdahl et al), architecture is defined as the “conceptual structure and functional behavior, distinguishing the organization of data flows and controls, logical design, and physical implementation”.
IA was vital in Xerox PARC’s design philosophies:
"Perhaps because of the social nature of information creation and use, much of the technical research at PARC has emphasized the human-computer interaction [Card et al.] and social aspects of computing." (Hearst, 1996)
IA is the higher-level thinking of information separate from the physical manifestation of computing, and information has a built-in social layer. As Wikipedia defines in layman's terms:
The art and science of organizing and labeling websites, intranets, online communities, and software to support findability and usability.
This draws us closer to a practical knowledge solution. So, how does IA, specifically, guide developers in finding solutions to internal questions more efficiently, to raise their productivity?
To map out an approach to IA designed for developers:
Code Repositories — System of record for changes over time to code
Community Platform — Trusted market-based store of contextual content
Messaging Application — Real-time communications hub across team
Essentially, code is the first-level content —the raw material and core intellectual capital of the development team. Second-level content include questions centred around that code, which are captured by the Community Platform, and third-level content is the distribution, alerting, and search of code and content in the messaging applications.
Aligning with the conceptual framework that code is what developers dedicate the majority of their time to, there should be a mechanism for capturing and sharing knowledge around code and discussions of the code. This mechanism is known as the Developer Knowledge Architecture.
The Developer Knowledge Architecture addressed the core principles underlying IA:
It focuses on the content, rather than systems.
It adds the social layer via the Community Platform and the Messaging Application which accelerates and furthers adoption and engagement.
This is an agile and intuitive starting point to fulfilling the comprehensive strategy downstream. Monitoring, issues tracking, service desk, project management, and documentation are tackled separately, to avoid over-complicating or overwhelming the project.
Getting started, building value and trust in the content, and addressing the obstacles to productivity which developers encounter frequently is crucial. The goal is not to develop an all-encompassing knowledge base which no one uses. The goal is to provide developers with content which actually concerns them, and which they engage with regularly.
To conclude with a quote by Richard Saul Wurman, founder of the TED Conferences who coined the term “Information Architecture”:
Most of the word information contains the word inform, so I call things information only if they inform me, not if they are just collections of data, of stuff.