I am often asked what it takes to be a software architect. The simple answer is time. Anyone contemplating being a software architect will need to be willing to invest time toward understanding the many facets of what an architect does.
Beyond a college education, the real work of becoming a software architect begins with the first day on the job. The software architect job can be a senior position and one on which C-suite businesspeople may rely upon for decisions. Gaining the standing and credibility so others rely comfortably on you in important matters takes many years.
A senior architect is in a position where C-suite executives and board members must sometimes bet their careers on the correctness of their judgment. Errors can result in millions of dollars misspent. The only way that you will become trusted is through a track record earned over time, in several different positions, with extensive experience in a wide-ranging array of topics and technologies.
To do that, work within a developer community at your employer. Becoming a trusted advisor to your colleagues might persuade others to listen to you more carefully. Thus, you will gain stature within your company. Again, this takes time. Become adept at the art of asking why. We want to make sure that an architectural solution will answer a real business scenario within the system, such as, “Do we need to provide fault-tolerance or 99.999 percent uptime?”
Critical thinking is not just a good idea, it is a requirement and may sometimes place the architect in the position of defending an unpopular decision. You will need standing to be both listened to and have your advice acted upon, instead of ignored. This is where it becomes important to be recognized as a trusted resource.
A good architect must also get out of their comfort zone; problems must be understood in terms of multiple levels of abstraction. That means an architect must become familiar with many technologies and techniques. As an architect does the work of creating architecture, they will be called upon to act in many different roles.
Software architects work with non-technical business managers and employees. They must be able to translate technical jargon into terms users of the software understand. They must also be able to understand end-user needs and requirements. When working with designers and developers, architects will need to understand the implications of their architecture upon platforms and languages that implement the architecture they propose. This is another place, which will require a devotion of time.
Learn a new computer language at least once a year. Many community colleges and learning institutions have continuing education programs that can provide opportunities for learning a new computer language. Set aside time to learn about new trends, directions, platforms and technologies. Investing time to understand what is in the IT universe will be important to an architect when planning new designs.
Take advantage of user groups such as SHARE and of conferences sponsored by vendors. When you go to these events, listen to what others are saying and how they are approaching problems, particularly if they are in the same type of business as your company. Consider speaking at such events as well. By doing so, you demonstrate both leadership and knowledge, which will be to your advantage in furthering your work as an architect.
The goal of this is to have a high-level understanding of as many technologies as possible. It is also helpful to have some depth in many areas as well. An architect is called upon to select components used across a whole project to achieve a project's goals. The architect will also need to understand what interactions there are between those components. It is also required that the architect be able to describe the components and the interactions to those with the responsibility to carry out that architecture. If it is so complex that it cannot be understood or described, then the project would be in jeopardy of failing. Thus it is that the architect will need all their skills and experience to break down complex problems into understandable blocks and work with others to insure the success of a project.
Which brings us back to time. Time is required to build skills, gain knowledge and build the trust of those business people who authorize projects. An architect’s career is built from time invested wisely.
Ellis Holman is an IBM Client Technical Architect with an emphasis on large scale computing. His career spans 36 years working for commercial companies, governmental agencies and consulting firms.