John’s Software Architecture Week 8

John Grieco
Invisible College
Published in
2 min readMar 3, 2015

The roles of a software architect.

Designing software:

Designing software is a big part of a software architect’s job and creating the overall structure of the software system. A key part of this structure is figuring out what technologies will be used on each particular project. A software architect must take ownership of the technology selection process and make sure that they fall under the required list of technologies often set by stakeholders.

Technical Risks:

The software architect is in charge of making sure that the technologies that have been selected actually work. There is great risk in making the wrong decision about technologies to use that is why an architect must ask themselves the following questions to make sure that there is little technical risk; Does this architecture satisfy non-functional requirements? Works within the given project constraints? Will solve the business problem and provide a foundation for the code to be written?

Basically, a software architect must be proactive in managing high risk technical issues, making sure to test the chosen architecture as soon as possible to know if it will work or not and to minimize risk.

Architecture Evolution:

Often people think that the software architects job ends when they hand the project over to the development team to begin development. This is not good practice because someone needs to look after the project and make architectural changes if needed, either from feedback from the development team or evolving problems that may come up. Software architects should not just be involved at the beginning of a project but work with the development team through the projects entirety.

Coding:

The best software architects have a software development background. You should practice “hands on” architecture whenever you can by engaging in the daily coding of the development team and keeping your coding skills sharp with the newest technologies and techniques. In order for an architect to make sure each project is using the right technologies he/she must be up to date on the current technologies and coding techniques. Also, a software architect that codes is generally more effective at his/her job.

Quality Assurance:

It is important to make sure that the architecture is being implemented consistently throughout the team working on the project. Also, code reviews should be done on the regular to ensure quality code is being written to the standard set.

--

--