Passing software monolith and entering into the cloud native era, software architecture has become more important. Because in cloud native application development, we develop self sufficient micro services that are responsible to do exactly one job.
Software is not visible and not tangible. But we want to talk about them, share knowledge and information on software. We want to convince and defend our ideas and we want to discuss them with others. We need an efficient and easy to understand medium for communication and much more.
As per Wiki “Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.” Means software architecture is a blueprint of what runs on a machine, it's a pictorial representation of what we can't touch and see. We can depict the product as a whole with a high level of abstraction and each of its modules in detail. The pictures are called models.
We need a standard that understandable across industry, a common language and graphical notation for communication and visualization.
An Architect needs to understand the target audience. It could be anyone between a developer to a Customer. Architect needs to capture and present information, design a software system and/or part of it. An architect's work is not only limited to creating the designs he/she also needs to help assigning ”who does what?”
Other Architects, Software Developers, Documentation Developers, Customers, Managers.
Draw diagrams, Write documents that explains the diagrams, structure the documents, setup context before jumping into drawings.
Read this blog post for more details.