IT architects are people who have the ability to engineer and design solutions across the architecture stack and across diverse technologies.
While many architecture roles are more specific and require expert knowledge of one or several particular aspects of a larger enterprise environment, architects who intend to work across a broader range of projects need to possess a common set of foundational skills. The top 10 foundational skill sets for IT architects are as follows:
- Data modeling: Data modeling and data flow diagrams are an excellent starting point for understanding IT design principles and issues. The data of a system defines that system, and the data flow is essentially a parallel for most business processes. More importantly however, the process of working with stakeholders, experts and users to define data entities, elements and schemas as well as the data flows provides an excellent view into how architects perform many of their most important duties.
- Understanding of frameworks: Architecture frameworks (such as ToGAG, DoDAF, FEAF, Zachman, etc.) are essentially giant meta-models or representations of an enterprise environment. The framework is the template, based upon industry-wide expectations and standards, from which you can build customized views of your own instantiated enterprise. Not all architects are expected to use frameworks; however, exploring them provides a great deal of insight into the practice of architecture. Frameworks also do a good job of helping to highlight the key challenges or problem sets facing most enterprises.
- Ability to use a variety of design tools: A good architect is never limited to one toolset. There are literally dozens of design and architecture-related tools out there, and they constantly evolve and continue to proliferate. Most of these tools, however, share a set of common functions. It is those functions—such as the ability to model data or design in UML—that are critical.
- Knowledge of UML: Unified modeling language was developed to facilitate software design by providing common notation and diagrammatic views for various types of design issues. UML (and variations of it) have proven to be more flexible than that, though, and support a wide variety of systems engineering tasks. Getting to know UML will come in handy in virtually all types of architecture projects.
- Requirements analysis and management: This is a skill not always associated with architects, but in fact it is critical to all other architecture tasks. There are tools, techniques and processes associated with effective requirements management (viewed both from traditional and Agile perspectives) that every architect ought to become familiar with. This is a topic we will explore in greater depth in the Dice.com IT Architecture talent community.
- The ability to visualize complex issues: Most good architects learn to take advantage of “visual shorthand” techniques. This can take the form of standard notations like UML but often involves the ability to create non-standard visual representations. Why is this important? Because IT is a field that rewards brevity; a place of acronyms and pragmatic innovation. If we can see it, we can build it….
- The ability to communicate across communities: The IT industry is composed of a vast number of subcultures or communities. In order for solutions to succeed, someone needs to be able to bridge those communities. Many people think this is the role of a program manager, and sometimes it is. More often than not, though, it is the architect—a person who must, by the nature of his or her job, work at both the high level and detail level across those communities to solve problems.
- The ability to understand boundaries: This skill may sound a bit strange, but it is in fact one of the most important ones an architect will ever develop. This is important because too often architects take their responsibility as solution designer beyond what it truly represents. The organization and not the architect is the entity actually responsible for the solution (that is, it is a team effort). The architect cannot make up for issues that extend beyond their power to control, yet some architects attempt to take on “non-assigned” roles and responsibilities in order to realize their vision. Understanding the boundaries of the architect’s role will lead to more successful projects and a more healthy working experience.
- Analytic problem solving: Architects must use both sides of their brain. I know it sounds a bit painful, but that’s one of the reasons architects are able to do what they do. Architects use their left brains to apply scientific reason and methodological exactness.
- Creative problem solving: On the other hand, Architects also rely heavily on intuition and creative problem-solving from the right brain. This is especially important on projects and in domains where relatively new problems and technologies are being tackled. Knowing when to apply intuition and when to apply rigorous methodology is something architects learn over time. When both sides of the brain can work together, the results tend to improve.
Image: Gears inside head [Bigstockphoto]