The software/enterprise architect job is an important one. The duties of an architect are numerous and require specific leadership, communication and technical skills to be fulfilled.
In a recent post, Gabriel Morgan wrote about the qualities of an enterprise software architect starting from Daniel Goleman's Emotional Intelligence (EI) abilities: Self-Awareness, Self-Management, Social Awareness and Relationship Management.
Self-Awareness
- Emotional self-awareness
- Accurate self-assessment
Self-Management
- Self-control
- Transparency
- Adaptability
- Achievement
- Initiative
- Optimism
Social Awareness
- Empathy
- Organizational awareness
- Service
Relationship Management
- Inspiration
- Influence
- Developing others
- Change catalyst
- Conflict management
- Teamwork and collaboration
The Software Engineering Institute has collected a large number of opinions regarding the duties, the skills and the knowledge of a software architect as seen by various software engineers. A few of the opinions regarding an architect’s required skills are:
David Cornish (Technical Architect, JPMorgan, London, UK):
Strong communication with both technical and business teams
Strong design experience and technical knowledge
Analytical and 'joined-up' thinking
Conflict resolution
Theo Gantos (Consultant, TEKA, Flint, MI, USA):
A renaissance person. Consulting, diplomacy, organization, conceptualization, abstract thinking, logical reasoning, data modeling skills in several methodologies, ability to self-evaluate and adapt quickly, presentation and communication skills, programming expertise, writing skills, sales skills, charisma, finance and return on investment calculation skills, dealing with difficult and change-resistant people, sense of humor.
Venkatesh Krishnamurthy (Technical Architect, Valtech India, Bangalore, KA, India):
- Creative
- An Artist
- Politician
- Strong willed
- Excellent communication skills
- Excellent presentation skills
- People person
- Matured
- Articulative
- Courageous to make decisions and stand by it
- Risk taker
- Good observer
- Negotiator
Victor Alejandro Baez Puente (Chief Technology Officer, Grupo Nacional Provincial, Mexico City, DF, Mexico):
- Experience designing an enterprise application with financial auditing, contract management, enterprise workflow, business process integration, and perhaps asset management components
- Experience with Service Oriented Architecture (SOA).
- Experience as a chief architect on inception-to-delivery of J2EE projects.
- Experience with deploying J2EE rich and/or web client applications in a high-availability, clustered environment
- Expertise in the Unified Modeling Language (UML) for constructing, and documenting the artifacts of software systems
- Exemplary general IT knowledge (applications development, testing, deployment, operations, documentation, standards, best practices, security, hardware, networking, OS, DBMS, middleware, etc.)
- Expertise and experience in lightweight, rapid development, agile methodologies.
- Experience in estimating and measuring project velocity
- Experience with interaction with legacy systems and phased application integration
- Exquisite attention to detail
- Written, verbal, and diagrammatic communication skills
The examples are numerous. Some put an emphasis on leadership/communicator skills while others take specific technical skills into account. What is your opinion on the skills required of a software/enterprise architect?