The Best software architects are creative

Vasu Rangachary, senior manager (projects) Cognizant Technology Solutions India Ltd., has around fifteen years of experience in the IT industry. At Cognizant, Vasu is actively involved in providing consulting services to various customers on business application and software and guiding the team to develop products. He is instrumental in identifying opportunities, developing solutions, and ensuring the delivery of these solutions. 

Prior to joining Cognizant, Vasu was with HCL-Hewlett-Packard R&D Lab and has also worked at SYBASE and Informix in the US. Some excerpts from an interview with him follow:

Who are software architects and what role do they play in the industry?
Architects create architectures, and their responsibilities encompass all that is involved in doing so. This would include articulating the architectural vision, conceptualising and experimenting with alternative architectural approaches, creating models, and validating the architecture against requirements and assumptions. 

The role goes beyond technical activities to strategic and sometimes consulting. A sound sense of business and technical strategy is required to envision the "right" architectural approach to the customer's problem set. Activities in this area include the creation of technology roadmaps, making assertions about technology directions and determining their consequences for technical strategy and hence architectural approach.

What are the qualities and qualifications that a Software Architect needs to possess?
The best architects, command respect in the technical community, are good strategists, organisational consultants and leaders. Above all, they should be highly creative.

An analogy that software architects use to describe what they do, is that of architects in construction. Do you agree?
I recommend that you look at the article mentioned here for an in depth discussion on this subject. The author disagrees with this analogy. “Are Software Architects Like Building Architecs?”(http:// interactive.sei.cmu.edu/news@sei/columns/the_architect/1998/September/
architect-sep98.htm).

What is the importance of architecting software - say business solutions software?
Architecture plays an important role in dealing with complexity of the system in the following ways.

  • Understanding of the system at a fairly high-level, by all the stakeholders
  • Detailed understanding of the portions of the system that they work on, by all the developers.
  • Partitioning work effectively across all the developers.
  • Evaluating and make tradeoffs among requirements of differing priority.
  • Anticipating major changes that will occur and designing a system that accommodates such changes flexibly and minimises maintenance cost.
  • Facilitating the re-use of existing components, frameworks, libraries or third-party applications.

How does the process of architecting software occur? What are the steps and where does it lead to?
Software architects have a role to play in all the phases of SDLC. At Cognizant, the senior management has acknowledged the strategic nature of architecture by committing permanent resources to TASC (Technology Architecture and Systems Consulting) an independent group which provides consultancy services to all projects and customers. 

Where does Software Architecture start and where does it end in a typical software product/project scenario?
Software architecture extends from the initial understanding of customer requirements to the final delivery of the product. Beyond delivery, the architect can play a consultant's role in the evolution of subsequent versions of the product.

What are the different schools of thought in Software Architecture?
The main schools of thought are oriented toward:

  • Pattern
  • Functionality
  • Reference Model

The pattern-oriented model works with the aim of collecting and reusing different architectural patterns. As software architecture evolves in the organization, it will leave a collection of architectural patterns, which can be reused to tackle similar issues. The functionality-oriented model identifies individual components of the problem domain, their functionality and their communication patterns with other components. The reference model view uses existing reference models like RM-ODP. A total architecting solution derives from all these views.

How has software architecture evolved over the years and where is it going?
In the early days, software architecture was largely an ad hoc affair. Descriptions relied on informal flowchart diagrams, which were never maintained. Over the years, software architecture has evolved as the complexity of the system has been increasing. The emergence of architecture description languages (ADLs) needs to find acceptance.

What kinds of associations or peer groups exist for Software Architecture?
The major association for Software Architecture is World Wide Institute of Software Architects (http://www.wwisa.org). 

How do development methodologies, and factors like speed affect architecture?
In an ideal case, none of these should affect software architecture.

Is the level of importance given to software architecture a measure of a company's maturity?
Software architecture needs to be given high importance in any organization. SEI conducts architecture evaluation of customer systems. For further information look at http://www.sei.cmu.edu/ata. 

Are there no true Software Architects in Indian companies?
Indian software professionals have been donning these roles in addition to the development and management roles. As awareness of complexity increases, there is a need to define more succinctly the role of architects in software.

How can a typical Indian software professional evolve into a Software Architect? 
An architect needs a thorough knowledge of the product and service domain, relevant technologies, development processes, business strategy, organizational politics and also possess consulting and leadership skills. From a technical role he or she needs to acquire all the necessary skills (technology, business strategy, consulting, leadership) to evolve into a software architect.

How do you see the Indian software industry heading in terms of adopting Software Architecture as a standard? 
All top Indian IT companies are recruiting software architects. The Indian software industry has been adopting software architecture as a standard element. This allows Indian companies to focus on understanding the business strategy of its customers. From a service delivery model, Indian companies are aspiring to provide consultancy services to their customers in a bid to move up the value chain. Software architecture enables Indian companies to achieve this.

 




Added on April 26, 2007 Comment

Comments

Post a comment