20 Mar 2017 by mallyanitin
People like things visually appealing. People use things that fit the purpose. If both come together, and the timing is right, and with some luck added, the innovation takes off.
When something is successful, the architect is usually praised for the appeal, and less for “form follows function or simplicity of internal structure (a.k.a. engineering)”.
In software, the visual appeal is the user interface design and interactions. This is a specialized field of User Experience (UX) designers. Practitioners of this art form, are the front-end architects. The skill can be learnt by any user interface (UI) architect or engineer, however, the combination skill (UI + UX) is much rare. There are specialized UX companies, that offer prototype UI (in a given technology – HTML5 etc.) development with the help of developers. Such prototypes are great for formative testing with customers, however, architects and engineers of UI software have to structure and implement (construct) the software to meet other quality attributes (MVC Pattern, Connecting Data Sources, Re-usability, Modular Designs, Performance, ….).
The role of an architect in software (unlike civil or construction fields), is less about the visual appeal, and more about the internal structures of software. Even in the civil or construction fields, such roles are specialized (interior designers, industrial designers, exterior designers, etc).
A master (software) architect partners with UX designers, to make UX quality attributes a top priority for the project.
Selecting (making the choices) of the patterns and technologies to be used, in agreement with the projects scope (cost, requirements, resources), is where the software architect spends most of his/her time. Specialized art forms (like UX) are executed in partnership with UX specialists.
That said, I don’t intend to say that there is no “art” to architecture. Indeed there is. However, the other side of the coin (selecting, organizing, executing, partnering, modeling, validating, etc) is more significant.
Software Architecture is a Software Engineering Discipline. It’s a creative field in an engineering sense. Given that engineering is itself an artistic (sometimes deliberate) field, with greater emphasis on application of knowledge and professionalism for trade.