A Software Architect
In Perspective - by Brandon
In this document, I will discuss the software architect, both in relation to philosophical perspective and technical prowess. I intend to encapsulate the purpose of the role with regards to software development, business processes, standardization and leadership among other topics. The goal of a architect is simple: create a blueprint to develop a software suite that will be durable, dependable, scalable, and ever evolving.
A defining attribute of an architect is the philosophy of the role. It is one of balance. Maintaining a balanced role means understanding that anything is possible and still having the ability and wisdom to say “no”. It is imperative that a standard is set and strongly enforced, while it is also imperative that the evolution of the standard is at the forefront. An ever-evolving standard of practices is what an architect is responsible for, and the architect must embrace this concept.
The architect for an organization does not have a constraint on size. The role of architect could be of any size, so long as it is able to scale to the environment. An important thing to remember is that when good minds are put together and given the opportunity to think and work through hurdles, the results are usually tenfold that of an individual.
The architect takes the term Team to a new level. To truly fill the role of architect, the position must be on the team of the organization as a whole, regardless of those in the same group or department. While the architect is closely teamed with the developers to help mentor, coach, and guide in the software structure; the architect is also a part of the business team tasked with helping mentor, coach, and guide that team through understanding the actual need of the architecture. It is also imperative that the architect lead by example: this behavior, on its own, shows what is required by the architect’s plans are possible and/or plausible.
As stated in the philosophy section, Architecture is a style of life, much more than just a position requiring the ability to code. The architect must have a drive to exceed excellence at an ever-changing rate. The drive is usually far greater than the job or title, but rather a personal drive to continue to make improvements to their own knowledge and apply their learning to the position, and in such the organization.
While the drive to be better than they were yesterday is important, doing so also requires the ability to grow. An architect must have the personal ability to change and evolve. They must allow themselves to productively expose their own setbacks and detriments and evaluate how to overcome these hurdles. Then they have to accept the opportunity that this innately presents to grow.
While specific technical knowledge is relative low in priority, it is very important that they have firsthand experience in building all aspects of an architecture. Whether it be from the perspective of a Project Manager, a Developer, or an Analyst the experience needs to be there so the scope of the architecture can be conceptualized.
The architect must have an understanding of the software development lifecycle, as they will be directing the building and implementation of things that will need to follow these practices. The role should have both a concept of existing organizational SDLC and best practices, which will help build a better work flow.
When dealing with the production of architecture one must always choose the better of each situation. Usually this is done by comparing the pros and cons of each. For example, the solution to one requirement might save time, but increase the cost associated with the requirement.
The position of architect must be able to make the decision that will not just kick the technical debt down the road, and be able to definitively show the reason why.
To enhance the confidence section, it is imperative that the architect is conscious of the source of power of an organization. The political aspect of an architect can not be overlooked. To be successful in the architect role, a person needs to have an innate ability to determine the correct business contact person to include in communications to assist in reaching the current goal. They must also be willing and capable of communicating with all layers of an organization as the need arises.
There are a lot of principles, patterns, styles, requirements, layers, and tools when looking at a topographical view of a business and all of its software needs. To be able to effectively direct the building of such architectures, an architect must have a good understanding of design. These concepts of design could include, naming conventions, pathing/routing, database structuring, practices, patterns, as well as UI design. Having experience with design is invaluable as an architect.
The architecture should be viewed as something that is applied across the board, so if a method of doing something is specified in the architecture, it will have broad and lasting effects. Such decisions need be from someone with the appropriate vision.
As mentioned in the Political section, communication is where architecture begins. Determining a need and then turning that need into a global implementation is a major task of an architect. The architect must be good at outward presentation of a concept. The architect also needs to be an exceptional listener.
The architect needs to be extremely capable of continuously presenting the goal of the system, and this is accomplished through listening for concerns and applying those concerns to the architecture. In presenting the application of concern and addressing them specifically, the architect in turn reduces the concern.
Let’s be frank, this does not list every required or beneficial trait of an architect. To attempt to do so would be much like building an architecture, ever changing. There are a ton of technical requirements that are expected from an architect, most of which can be learned. Rather than focusing on these learnable traits, in this writing I discussed the role as the person. And much like an architecture, the person that would fill the role of architect would also be ever changing. That is what makes an architect and an architecture: evolution.
© A long time ago in a galaxy far, far away through 2018 Copyright Brandon Korous