What Are the Duties, Skills, and Knowledge of a Software Architect?
For the past few years, the SEI has been gathering your comments on the duties of a chief software architect. You can see all of the responses. We are now asking for your opinions about the
- duties of an architect
- skills of an architect
- knowledge required by an architect
- duties of an organization to its architects and architecture-based development projects
Crafting the right architecture to solve the problem at hand is only part of an architect's responsibilities. He or she must also
- get it defined and documented and communicated;
- make sure everyone is using it, and using it correctly;
- make sure that it comes out in stages in a timely way so that the overall organization can make progress before it's complete;
- make sure the software and system architectures are in synchronization;
- act as the emissary of the architecture;
- make sure management understands it (to the detail necessary);
- make sure the right modeling is being done, to know that qualities like performance are going to be met;
- give input as needed to issues like tool and environment selection;
- identify and interact with stakeholders to make sure their needs are being met;
- make sure that the architecture is not only the right one for operations, but also for deployment and sustainment;
- resolve disputes and make tradeoffs;
- resolve technical problems;
- maintain morale, both within the architecture group, and externally as well. The latter is done by providing a sound design, when needed, and providing good presentations and materials to let everyone know the organization is on the right track.
- understand and plan for evolutionary paths. plan for new technology insertion.
- manage risk identification and risk mitigation strategies associated with the architecture.
Do you agree or disagree with this list? Submit what you think are the most important duties, skills, and knowledge areas of a software architect, and what duties an organization has to its architects and architecture-based development projects.
Newly Submitted Duties, Skills, etc. of a Chief Software Architect
There is currently 1 new submission to the Duties, Skills, etc. of a Chief Software Architect.
- Mayank Sugandhi (Sr. Software Engineer, Pyxis System, Pune, MH, India):
Duties:
I usually confuse between duties of Project Manager. Some duties are common between them only difference is about orientation. In which Project Manager aligned more toward Client interaction, People, Time & cost management.
A architect can be of any type based on organization structure and its hierarchy.
- Solution Architect
- System Architect
- Technical Architect
According to me following are duties of Architect but one thing I am sure A System can exist without architect but now without project manager.
- Show right path to team
- Decide bit and pieces and communication channel between them
- Decide technology, tools and process guidelines
- Design high level view of System
- Focus on scalability, maintainability, performance and modularity
- Adopt, understand new technology to apply in business
In some organization .Contact CXO to suggest new path for creating business by use of technology
- Negotiate with clients
- Lead team under his vision and aligned team in that direction
- Apply right process, design and technology based on project to accomplish task
- Guide Team to solve challenges during development
Skills:
- Politically sound to resist internal issues
- Good Presentation and Communication skills along with convincing power
- Good vision and experience to handle conflicts
- Good technical and process exposure as depth and breadth
- Good learner to adopt new technology quickly
- Good problem solver and initiator
- Good listner for team to understand their problem and ideas
Knowledge:
A Architect must be good learner as Software Industry changing trands frequently. He must have sound knowledge of programing and it's concept.
He must has solid approach to figure out solution and creative for new ideas. He should posses skil to communicate and convince that properly.
Previously Submitted Duties, Skills, etc. of a Chief Software Architect
Duties, Skills, etc. of a Chief Software Architect are
alphabetized by submitter's last name.
| A | B | C | D | E
| F | G | H | I | J | K | L |
M | N | O | P | Q | R | S | T | U | V | W |
X | Y | Z |
Christopher Brandt
(Systems Architect, Moneris Solutions, Burnaby, BC, Canada):
Duties:
In
my experience, an architect brings together the pieces of an architecture for
all aspects of the system and then communicates the architecture to the
stakeholders. By aspects of the system I mean everything from software
development tools to the high level design to the "off-the-shelf" components
and services required for the system to function. A good architect provides a
development team with all of the tools they need to put together a great
system.
Skills:
An architect must be technically competent and a
strong communicator (written, verbal, presentation...).
Knowledge:
An architect should be competent in the core
frameworks used or to be used, however they need not be an expert programmer in
that framework. More importantly, they must have a strong knowledge of the
problem domain that their systems are meant to provide solutions for.
Organizational Support:
Architects need time and leeway to
experiment and learn. Software methods are continually changing, thus an
architect must be given time to learn, communicate with peers and try out new
stuff.
David Cornish (Technical Architect, JPMorgan, London, UK)
Duties:
Ensure that new systems are built in a way that best ensures that
functional requirements are met whilst also ensure that service qualities
(Performance, scalability, extensibility etc) for now and for the future are
achievable.
Review and improve on existing systems, making use of new technologies and methodologies to seek continual improvement for existing systems.
Provide high level guidance and direction on project work, making sure tha new projects fit in with an overall strategic vision.
Skills:
Strong communication with both technical and business
teams
Strong design experience and technical knowledge
Analytical and
'joined-up' thinking
Conflict resolution
Knowledge:
Business process knowledge
Technical knowledge
Strategic view of where the business are going and how technology will be
used to attain that vision
Organizational Support:
Provide clear guidance on project
requirements
Provide a clear business strategy
Provide training to
allow architects to stay up to speed with new technology developments
Huub van Dijk (Quality Manager, Independent, Amsterdam, Netherlands):
Duties:
Now: same as system designer. Architecture is
generally so loosely defined that it is virtually indistinguishable from design.
This situation has been deteriorating for many years. Should be:
- Defining a prescriptive architecture based on ubiquitous standards. However, appropriate models are still scarce. An example of an excellent model is OSI. Its layers cater to the needs of many stakeholders and are completely transparent (it surpassed ubiquity and reached the status of user oblivion). Like OSI, architectural models should be layered. Any telescopic or hierarchic model is disastrous. Hence the relentless SE crisis.
- Staying absolutely clear of anything that reeks of implementation.
- Conforming to IEEE 1471 I.e. starting with stakeholders! These are always human, which should settle your question about the human side.
Skills:
Too many. I am afraid that a SA must be detected
rather than selected.
Knowledge:
Equivalent to: MSc Computer Science and MBA.
Applicable standards (IT and domain specific).
Available solutions and
models for re-use.
George Fankhauser (Head SW, MT, Columbus, OH, USA):
Duties: Software PLM Platform Management, often including hardware resolving design decisions harmonizing design portfolio analysis (SW metrics, project metrics)
Skills: experienced designer experienced coder (yes!) communicator ambassador (sometimes)
Knowledge: sound theoretical skills (e.g. complexity measures) algorithm & data structures 101
Organizational Support: management backup veto right in projects
Theo Gantos (Consultant, TEKA, Flint, MI, USA):
Duties:
A software architect must manage a constellation of issues, ranging from:
- Consulting; gathering artifacts, conducting interviews, communicating with stakeholders, selling the NEED for architecture
- Systems analysis; understanding and representing the various disparate views of information, documenting actual or probable structural issues; reverse-engineering architectures from existing structures
- Data modeling; representing the various views and representations of information in their various layers...conceptual,logical,physical; abstracting elements of information and relations to develop alternative unified database models; working with application developers to understand physical IDE limitations
- Architect-foreman-"Sage/mentor" or "cantankerous crackpot"; work hard to stay involved during the development process to modify the architecture to make adjustments for various outside forces; communicate and articulate the architectural vision in terms that each person can comprehend
Skills:
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.
Knowledge:
The knowledge requirement is so staggering and extensive that there are very few persons capable of performing in an above average capacity. I cannot envision how one could possibly through strictly academic coursework, acquire this knowledge without perilous and untiring pursuit. There is much mis-information, vendor ax-grinding, self-serving, and uncritically reviewed published material that the chances of building a thorough understanding of the fundamentals is daunting.
Organizational Support:
Appreciate the value of the contributions they can make , especially not in the short run, but over time. Build a recognition that architecture is vital to the life cycle of the information, does not exist solely to serve the application, and may well surpass several generations of application development. Recognize that like building a solid bridge, the value is not in how quickly and cheaply it can be built, but how ultimately useful, flexible, and durable it is over it's expected life.
Stefan Grasmann (Manager
Competence Center Microsoft, Zühlke,
Eschborn, Germany):
Duties:
Create a common technical vision, which
fulfills quality requirements. Maintain and explain this vision to anybody
interested in it or those who are not, but should be. Technical quality
assurance (before, during and after development). Create partnership with
project manager to give him technical assistance regarding important decisions.
Elaborate quality requirements and urge to test them early. Drive technical
evaluation of brilliant ideas.
Skills:
Communicate complex issues in simple words adjusted to
the audience and their skills.
Endurance in repeating the same idea again
and again and again.
Creativity to find simple solutions to complex issues.
Ability to feel like a developer.
Knowledge:
Experienced development know-how in different
areas. Architectural styles and design patterns - from a practical point of
view. Deep understanding of underlying technologies and future trends. Software
Factories and productivity aspects. Domain knowledge. Understanding of
potential customer base.
Organizational Support:
Trust him, but control results.
Durga Srinivas Gudimetla (Associate Consultant, Tata Consultancy Services, Hyderabad, AP, India):
Duties:
- Create an organizational IT roadmap, closely interact with CXOs in defining the IT objectives
- Understand the business processes, Create a visionary roadmap to align business vision to IT vision,
- Create a robust IT architecture framework and enforce across IT systems,
- Decision authority/signoff authority on application architecture
- Ambassador between Business organization and IT organization
- Oversee platform selection, HW, SW selection processes, Pilot studies across all IT
Skills:
- Should have extremely good knowledge on SDLC processes
- Should posses sound knowledge on IT Application architecture, Design methodologies across multiple platforms
- Should have good grip on non-functional areas like performance, scalability studies, human interaction, software ergonomics
- Commitment to quality
- Should have clarity on what business wants and ability to transform wants to results
- Thought provocative leader
- Critical reasoning skills, Decision making skills
- ROI calculation skills
Knowledge:
- Modelling skills
- Data modelling skills
- Inter modular interaction and necessary middleware skills for distributed components
- Project management skills
- Selling/Marketing skills
Organizational Support:
- Create innovation environment
- Risk reward based environment
- Encourage innovative thinking
- Encourage certification, sponsorships for higher studies
Moonesh Kachroo (Technical Manager, WNS, Gurgaon, Haryana, India)
Duties:
Undermentioned are some points (other than already mentioned)
which are also important duties of an Architect:
1) Should know how to
strike a right balance between the "major four" -time, scope, cost and quality.
2) To enforce and monitor the "agreed upon" policies and best practices
through out the organization.
3) To manage the perception of various
stakeholders (parties) and try to bring them on the same page and under the
same thought umbrella.
4) Needs to keep himself updated on all the
relevant subjects.
Skills:
Should have an ability to switch between "macro" and "micro" visions effectively and efficiently, as time demands; Should have an excellent analytical skills for obvious reasons; Decision making is also one of the "must haves"; Should have an ability to foresee, plan and mitigate any type of "risk".
Rajesh Kanna (Development Manager, PT. 1rstWAP, Jakarta, Indonesia):
Duties:
- Strong Communication Skills
- Should be able to understand the BRDs(Business Requirement Document)
- Stick on to simpler, cost effective and less error prone frameworks
- Need to understand the right framework/software components and use them in right place.
- Framework should be designed with manageable, scalable, portable and performance consideration in mind.
- Should have a deep workable knowledge in OOAD and implement the same in terms of standards and policies within the architecture.
- Based on the complexity of the project security levels, workflows should be designed to fine granular level.
- Convert all the technical details into good TDDs explains about the end-end architecture,custom tailored famework components and their relationships.
- Performance considerations, profiling techniques
Skills:
- Should possess excellent english knowledge
- Need not be a programmer but should be able to understand every code programmer codes and identify loop holes in the coding standards being followed.
- Should monitor the code written very closely.
- Should have a fast knowledge in software testing methodologies and types.
- Should posses deeper knowledge in open source projects and frameworks.
- Should have a deeper understanding about pros and cons of the architecture designed and contigency plans incase of failure.
- Should understand to the team member inputs
Knowledge:
- Frameworks Spring, Struts
- Knowledge in Industrial Standard Profiling Tools
- Knowledge in Unit Testing
- Knowledge in Mobile Technology and frameworks being used.
- Working knowledge in High-End databases
- TIBCO, web methods, web services
Organizational Support:
- Organizations might sometimes need to understand the importance of best software architecture and support indeed.
- Should encourage architects to attend conferences, certifications if necessary and self update on the latest frameworks and products either in open source or commercial community.
- Encouraging architects to certify in Project Management will be an added advantage for the company.
Venkatesh Krishnamurthy (Technical Architect, Valtech India, Bangalore, KA, India):
Duties:
- Understand the business requirements from the customer and convert them to technical design.
- Be available to the team members, stake holders
- Drive the product development
- Provide design and architecture and explain this in detail to the team members
- Be hands on with programming. The architect with no programming skills cannot make a good decision
- Keep updating knowledge with latest and greatest tools and technologies
- Bring the best tools and his past experience into the organization
- Create a low coupled-extensible architecture
- Be aware of the process in place
- Make quick decisions and stand by it
- Be open for suggestions from all the team members
- He should provide good configuration plan
- Review the test cases
- Make decisions to reduce waste in software development.
- Keep a close watch on developers code, and review it to ensure there are no extra features added to the code.
- Develop a good coding practice
- Mentor and coach the team on latest tools and technology
- Not try to become a PowerPoint architect
- Ability to extract the non-functional requirements from the user. He needs to keep an eye on this all the time
- Performance optimization
Skills:
Architect needs to be
- 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
Knowledge:
- He is supposed to know "end to end" design. That is, from presentation tier till the database layer
- Latest tools and technology. It could be Java/J2EE, .NET, Eclipse, Visual Studio, CVS/Subversion, TIBCO, Security related like encryption, decryption, and session management
- Strong in OOAD/OOP/UML
- Domain knowledge is required but not mandatory
- Principles of TDD, Refactoring
Organizational Support:
- An organization should provide resources (tools, technology and human resource) as and when needed. The organization should not sacrifice the code quality by cutting costs and not listening to architects
- It is becoming a de-facto standard that, an architect is highly necessary for each and every project. No project can be executed without a proper architecture. It is like building a house. Whether it is a small house or big house, one needs to build a good plan, good foundation and then construct it.
- Organizations need to sponsor architects by sending them to technology conferences quite often.
Other thoughts: see http://agilearchitect.blogspot.com
Donna Maskell (Principal Software Engineer, Raytheon, Fort Wayne, IN, USA):
Duties:
The SA is responsible for defining the overall
structure of the system based on the forces driving the system (e.g.
"ilities"). It has to be robust, effective, and maintainable. It does not have
to be optimal, much less perfect, or there would be very few software projects.
The SA has to decide what the most important drivers are in order to justify
his approach, because there will be questions. The SA has to be able to
communicate the architecture intelligibly to the stakeholders at a level of
detail that becomes progressively more refined as the comprehension of the
audience becomes more sophisticated. An architecture created by one person will
be limited to what one person can think of, so the SA has to be open-minded
about criticism and treat it as constructive. The SA should seek buy-in from
the stakeholders, including the people who have to implement it all the way
down to the code.
Skills:
An SA needs a thick skin and an open mind;
communication skills to articulate the architecture and respond instructively
to questions about the architecture; the ability to recognize that the
architecture quality is more important than the architect's ego; leadership
qualities, because software engineers are an independent lot who cannot be
herded; courtesy, since you can't give everyone everything they want, but you
can listen fairly and be courteous in saying no.
Knowledge:
Patterns of analysis and design; architectural
archetypes; available tools and notations for representing architecture
artifacts; presentation skills to convey information with clarity and
conciseness.
Organizational Support:
Document all the requirements,
including the corporate business goals to be supported. See the architect gets
the training he/she requests. Provide opportunities for the architect to
flowdown the current state of the architecture to lower-level stakeholders
(e.g. implementers). Have multiple architects, with one lead POC, and decisions
by consensus.
Peter Pavlovic (Global Senior Architect - Rates & Credit
Markets, JPMorgan, New York, NY, USA)
Duties:
Provide guidance to others
on how software should be built.
Oversee development in build mgmt role to
ensure successful delivery.
Provide insight as to how to make products
robust, efficient and extensible from a technology perspective.
Be
accountable for what is going on in the firm.
Skills:
Programming in common languages (C,C++,C#,Java)
Ability to produce QUALITY docs & illustrations
Ability to impart
knowledge to others
Knowledge:
Latest technology trends, up & coming
languages, products, initiatives, language optimizations, etc.
Organizational Support:
Trust their architects to deliver
quality product (not just opine on how things should be done).
Provide
enough authority to ensure their accountability is warranted and able to be
supported.
Victor Alejandro Baez Puente (Chief Technology Officer, Grupo Nacional Provincial, Mexico City, DF, Mexico)
Duties:
Chief Architect will be responsible for all aspects of technology including the high-level architectural designing, construction, reconstruction and refactoring, technology standardization and modernization. The Chief Architect will establish the strategic technical direction for the enterprise products. They will also serve as the evangelist of the architectural vision, strategy, and principles to internal staff, customers, industry analysts, and throughout their peer groups.
The main areas of responsibility include the following:
- Technology Oversight: Maintain an ongoing awareness of emerging developments and trends in technology that could impact current projects and influence new projects
- Industry Participation: Participate in external standards organizations, industry groups, panels etc. that could enhance company's image and reputation as well as provide vital information on technology trends and best practices
- Vendor / Tool Analysis: Lead the evaluation of software vendors targeted for possible integration into the systems or environment, including strategic applications, tools and utilities
- Evangelism of architectural vision, strategy, and principles
- Creation and delivery of detailed technical presentations
- Leadership of architectural alignment implementation efforts
- High-level technical consultation and developer mentoring
- Plan and implement the technical Enterprise Architecture, including both short and long term strategies for retiring certain legacy systems, integrating existing systems and new systems implementation recommendations
- Refinement, documentation and communication of architectural principles
- Oversight and guidance of new product initiatives ensuring adherence to architectural principles
- Customer Technical Resource: Serve as the chief technical resource and reference for the new product, and help define appropriate customer support responses, as well as dealing directly with customers on high-level issues
Skills:
- 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
Required Technologies Experience:
- Operating Systems example: Windows NT, Windows Server 2000, Windows Server 2003, Linux and other unix flavors, z/Os
- Java (core), J2EE (Servlets,JSP,EJB,JMS,and related), JavaBeans, Enterprise JavaBeans, J2EEXML(DOM, SAX, XSL, XSLT, DTD, Schema), COBOL
- Web Services: SOAP, XML, WSDL
- Middleware examples: JMS, Apache/Tomcat, BEA Weblogic, JBoss, Webshpere, MQ series CICS
- Databases examples: MS SQL Server, Oracle, MySQL, DB2
- Business Intelligence
- Business Process Integration: Java based rules engines and workflow engines
- EAI/Legacy extension: experience with common tools
- ETL Tools: experience with common tools
Knowledge: Computational and technical knowledge, deep process definition knowledge, project management.
Organizational Support: observe the methodology phases in which architects must participate in order to align the proposed solutions to the general architectural framework
Murugesan R (Lead Analyst,
Saksoft Limited, Chennai State, TN,
India):
Duties:
- Identifying stakeholders
- Communicate with stakeholders and understand what each wants
- Understand business requirements
- Creating architecture and validate it
- Consulting and educating on the use of Architecture
Skills:
MUST have the following qualities:
- Innovative & Creative
- Analyzes
- Leadership
- Excellent business communication
Knowledge:
- Aware of different technologies & tools up-to-date
- Knowledge on Architectural patterns Knowledge on Design patterns
Organizational Support: Learn! Think!! Create!!!
Poornachandra Sarang (Practicing Solution Architect, ABCOM Information Systems Pvt Ltd, Mumbai, India)
Duties:
An architect role should not be restricted to creating an architecture document, but should be extended to cover the various responsibilities until the project is delivered and deployed. An architect must be well versed on various technologies and should have zest for learning emerging technologies at all times. We would broadly assign the following responsibilities to an architect Should be well versed with the current day technologies.
- Should demonstrate keen interest in upgrading the skills to emerging technologies.
- Should be prepared to do some hands-on coding for understanding the intricacies of new and emerging technologies.
- Should make presentations on emerging technologies and his/her own project experiences to user groups and conferences. Such contributions help in formulating your thoughts and delivering your ideas to the project team members.
- Should assist the domain expert in creating the business case.
- Should overlook the process of requirements gathering.
- Should assist analysts and designers to create design artifacts
- Should be familiar to the various tools available in the market for creating design artifacts and give recommendations on this to the project team.
- Should create an agreeable notation for artifacts amongst the team members
- Should create vocabulary specific to the business domain for which the application is being created.
- Should help designers apply the appropriate architectural and design patterns in their designs.
- Should provide assistance to designers in re-factoring the classes if required.
- Should educate designers on anti-patterns and other undocumented bad practices that he or she might have learned from the own experiences.
- Should perform random code reviews to ensure that the developers adhere to the specified guidelines.
- Should provide test points in the software being developed and assist testers in creating test cases for evaluating the software.
- Should assist developers in creating prototypes.
- Should be able to create and demonstrate proof-of-concepts (POC) on newer technologies.
- Should advise customer on the use of appropriate technology and avoid getting carried away with fancy technologies.
- Should accept the onus of success/failure of the system.
- Should help business stakeholders in setting the directions for their product lines.
Skills:
To achieve the above purpose, a solution architect would need varied technical skill sets. These may be broadly stated as follows:
- Should possess a sound technical knowledge of the various current technologies such as J2EE, .NET, Open Source, Messaging infrastructures and so on.
- Should have a good understanding of various technological architectures such as CORBA, J2EE, .NET, JMS, MSMQ, MQ series and so on.
- Should be well acquainted to several EAI integration technologies such as J2EE connectors, COM-TI components, TIBCO and so on.
- Should possess good knowledge of several database products available in the market.
- Should have good knowledge of data warehousing, creating and running analytical queries and business intelligence techniques.
- Should be able to compare and contrast several tools and products available on the various technologies mentioned above. Should be able to create artifacts using available tools.
- Should be able to re-factor the code to apply design patterns and also ensuring appropriate applicability of anti-patterns.
- Should be able to do a code walk-through on sample code selected at random.
- Should possess good knowledge of various testing tools.
- Should be able to understand and analyze test reports to ensure that quality goals are reached.
- Should be able to assist developers in resolving the technical issues and providing proof-of-concepts on newer technologies.
- Should provide advice on selection of appropriate hardware and deployment architectures.
- Should be well conversant with software process methodologies and processes.
- Should be good in team building.
- Should be able to create architectural documentation.
- Should possess good communication skills.
Knowledge:
The above technical skills requirements can easily deter anyone from aspiring to become a solution architect. Though a deep technical knowledge in each of the above areas is not expected, architect should possess a good conceptual clarity on each. Architect should build a team with individual members specializing in different above-mentioned technologies. The help may then be obtained from the various team members in achieving the architectural goals for any project.
Organizational Support:
The organization that is creating and maintaining an architectural team should provide support to the chief architect in building and retaining the team. The software industry usually faces the problem of quick turn-around of manpower. The organization should provide enough incentives and facilities to retain the trained manpower. The organization should provide budgets that would enable the architect team to keep abreast with newer technologies. The organization should be willing to budget Research and Development (R&D) expenditures for experimentation, learning technologies, obtaining software licenses and acquiring test hardware platforms. Organization may opt for CMMI certifications to ensure quality processes and building customer confidence in the architectural processes deployed on the customers projects.
Ramakrishnan
Subramanian (Technical Specialist, Cybernet Software, Chennai, TN,
India):
Duties:
- Keep it Simple.
- Architect to Scale by feature
and for change.
- Mentoring Dev team
- Keeping all stake holders happy
with an excellent balance.
Skills:
- Performance Improvement Skills.
- Refactoring
Skills.
- Mentoring.
- Excellent Communication.
- Understanding
Organisation need.
Knowledge:
- Technical knowledge.
- Domain knowledge.
Organizational Support:
- Keep politics away.
- Freedom to
the Architects.
- Encourage Arch-based development.
- Provide a play
area to play / tryout and fail with no threat of consequences!
Mayank Sugandhi (Sr. Software Engineer, Pyxis System, Pune, MH, India):
Duties:
I usually confuse between duties of Project Manager. Some duties are common between them only difference is about orientation. In which Project Manager aligned more toward Client interaction, People, Time & cost management.
A architect can be of any type based on organization structure and it's herarchy.
- Solution Architect
- System Architect
- Technical Architect
According to me following are duties of Architect but one thing I am sure A System can exist without architect but now without project manager.
- Show right path to team
- Decide bit and pieces and communication channel between them
- Decide technology, tools and process guidelines
- Design high level view of System
- Focus on scalability, maintainability, performance and modularity
- Adopt, understand new technology to apply in business
In some organization .Contact CXO to suggest new path for creating business by use of technology
- Negotiate with clients
- Lead team under his vision and aligned team in that direction
- Apply right process, design and technology based on project to accomplish task
- Guide Team to solve challenges during development
Skills:
-
Politically sound to resist internal issues
- Good Presentation and Communication skills along with convincing power
- Good vision and experience to handle conflicts
- Good technical and process exposure as depth and breadth
- Good learner to adopt new technology quickly
- Good problem solver and initiator
- Good listner for team to understand their problem and ideas
Knowledge:
A Architect must be good learner as Software Industry changing trands frequently. He must have sound knowledge of programing and it's concept.
He must has solid approach to figure out solution and creative for new ideas. He should posses skil to communicate and convince that properly.