Phy-gital Roundtable: Breakfast Roundup from Germany and Netherlands

02 May '15 | Debjyoti Paul

German Shoppers: Meet Them in the Fast Lane to Phy-gital

15 January '15 | Ralf Reich

Shoppers Will Share Personal Information (But They Don’t Want to be “Friends”)

15 January '15 | Anil Venkat

Modernize or Perish: Property and Casualty Insurers and IT Solutions

14 January '15 | Manesh Rajendran

Benelux Reaches the Phy-gital Tipping Point: Omnichannel Readiness is Crucial

13 January '15 | Anil Gandharve

The New Omnichannel Dynamic: Finding Core Principles Across Industries

13 January '15 | Debjyoti Paul

Technology does not disrupt business – CIO day 2014 Roundup

02 December '14 | Anshuman Singh

Apple Pay – The Best Is Yet To Come

02 December '14 | Indy Sawhney

Digital transformation is a business transformation enabled by technology

01 December '14 | Amit Varma

3 Stages of FATCA Testing and Quality Assurance

06 October '14 | Raman Suprajarama

3 Reasons why Apple Pay could dominate the payments space

18 September '14 | Gaurav Johri

Beacon of Hope: Serving Growth and Customer Satisfaction

05 August '14 | Debjyoti Paul

The Dos and Don’ts of Emerging Technologies Like iBeacon

30 July '14 | Debjyoti Paul

What You Sold Us On – eCommerce Award Finalist Selections

17 July '14 | Anshuman Singh

3 Steps to Getting Started with Microsoft Azure Cloud Services

04 June '14 | Koushik Ramani

8 Steps to Building a Successful Self Service Portal

03 June '14 | Giridhar LV

Innovation outsourced – a myth or a mirage or a truth staring at us?

13 January '14 | Ramesh Hosahalli

What does a mobile user want?

03 January '14 | Gopikrishna Aravindan

Software Architects – An Evolving Breed of Software Professionals!

Posted on: 11 November '10

The term ‘Software Architecture’, which originated long ago, has become predominant in the industry during the last couple of decades and this coincides with the evolution of new technologies such as Web Technologies and evolutionary methodologies such as Rational Unified Process and Agile Software Development in the IT industry. Software Architectures are the backbone of software products and hence software architects are very crucial to the success of software projects. Depending on its size, project teams consist of one or more architects who are responsible for providing a sound architecture for the proposed software system. Projects that involve cross-functional solutions based on multiple technologies, platforms and user groups need a dedicated team of architects in addition to a typical design team. The characteristics of software architects and their role have evolved over a period of time. Whether we follow distributed agile or traditional methodologies the role of an architect continues to be significant.

A myth about the term ‘Architect’ in both Software Engineering and Civil Engineering is that an architect is an individual who brings just a good amount of technical experience in the respective engineering discipline. Though this is the fundamental requirement, an architect needs more than the technical skills specific to the project he or she has been hired for. The definition of ‘Software Architecture’ would help us identify the desired characteristics of ‘Software Architects’ – the not-so-new but, evolving breed of software professionals.

Software Architecture has been defined by various organizations and professionals. Here is a definition that consolidates many such definitions:

“Software Architecture is based on strong architectural principles and guidelines. It provides the blue print of the proposed software system and such a blue print consists of all necessary views of the software system, its components, their interaction and addresses the requirements (both functional and non-functional). Besides, it exploits the available technology with a clear strategy in order to reduce the impact on existing systems in an enterprise, remains cost-effective and delights the stakeholders.”

Evidently, it is not enough if software architecture addresses the functional and non-functional requirements of a project or product. The architecture itself has to be based on strong principles, guidelines and it must address the long-term requirements related to the structure of the software system itself. The long-term requirements related to the structure of the software are derivable from the best case requirements, long-term focus of the IT organization, reuse considerations, technology preference, proposed budget, wish lists and other emerging technologies that could benefit the organization.

This makes it clear that all user requirements mapped into an excellent set of use cases is just one of the inputs to the architect or architecture team. An architect need not wait until all detailed requirements are documented and use cases are identified. The architect can start his activity with initial requirements, high-level use cases, based on a set of organizational standard (or project specific) architecture goals, principles (typically a set of Dos and Don’ts) and guidelines, keeping in mind the clear picture of the customer’s IT infrastructure, mission and vision. This is because an architecture that is not aligned to customer’s IT infrastructure, mission and vision would prove itself to be fruitless and evolve as a major risk for the project as well as the organization as a whole.

In my opinion, Software Architect is a professional who is not only broadly technical with deep experience in certain technologies but also very good at soft skills especially in the areas of business communication, conflict resolution, self-expression, emotional intelligence, and team skills. When an architect or a team of technical architects meets a project team to present product architecture there could be conflicting issues, interests and alternative solutions. The architect needs to have strong skills in putting his architecture across by means of presentations or discussions. He has to be open-minded to encourage, understand and appreciate suggestions. Meanwhile, he must be time-bound and decisive to make his team as well as his stakeholders understand the rational behind the proposed or renewed architecture. And he must carry the right level of self-esteem and feel proud of the final decision and exhibit ownership throughout the product life cycle.

In summary, software architects need to be experienced in various areas including core technologies, peripheral technologies, application development & implementation and a variety of soft skills. Software architects need to hone their skills and build expertise to research and understand emerging technologies, technology trends, as well as client’s IT infrastructure, mission and vision. Finally, they need to have necessary expertise in identifying and using software processes, tools and techniques in order to architect the software system, document the architecture with required granularity (with APIs and code samples), communicate it to the project team and be a mentor for the team in implementing the system. With these qualities, this new breed of software professionals can definitely be identified and admired as visionaries for the software project and team they are working with!

What is your view of a Software Architect?

Mindtree Blog Archives

Mindtree blog Archives are a collection of blogs by various authors who have independently contributed as thought leaders in the past. We may or may not be in a position to get the authors to respond to your comments.