Architecture is a broadly used term and can mean different things to different people. Therefore, it is important to first define it so that we can establish a common understanding of this term before proceeding further. The term architecture is defined as the practice of designing systems, buildings, or things. In the context of technology, it refers to the practice of designing structures or systems with individual components with the intention of optimizing the function, cost, and performance of the overall structure.
Thinking in physical terms, a construction architect designing a home will architect how large each room is going to be, as well as decide on the number of windows and their placement in the room. This may also include planning where each room should be located to maximize the use of space and what direction the windows should be facing to maximize sunlight. In a nutshell, a building architect aims to maximize the use of space while keeping optimal functionality and costs in mind.
Similarly, a technology architect designs solutions by making use of the available components, considering the pros and cons of each component, overall costs, and the overall performance of the system. Of course, the desired functionality needed from the overall system and its ability to meet the business objectives will also be a critical factor in determining what individual components to use for the system. The key difference between physical and technology architecture is that most technology architecture used to be based on the waterfall methodology and, as such, required extensive upfront planning, requirements gathering, and documentation. The waterfall methodology is a linear project methodology where a project is broken down into phases, and in most cases, the next phase cannot start until the previous phase has been completed with deliverables signed off. With the advent of Agile and other methodologies, the focus has now turned toward designing solutions that are scalable and can be quickly adapted to changing market conditions. This is important because in order for a business to stay competitive in the global economy, they cannot afford to spend weeks and months updating their systems.
For enterprises, architectural needs vary depending on the needs and stage of the issue the enterprise is trying to solve. Over several years, technology professionals have realized this and have delineated architecture into multiple domains. Since our discussion topic is the role of a data architect, it would be prudent to discuss the various domains of architecture because they are interlinked and exert constraints over each other.
In the subsequent sections, we will look at why data architecture is important as well as explore the different types of architects, their roles, and some of the deliverables they are responsible for producing and maintaining. This will give us a greater understanding of the differences in responsibilities and an appreciation of how the type of architect fits into the architectural puzzle of an enterprise.