旧一篇: 100 Interview Questions for Software Developers
软件/企业架构师是一项很重要的工作。架构师的职责很多,要胜任的话,需要具备特定的领导、沟通、技术技能。Gabriel Morgan在最近的一篇帖子里从Daniel Goleman的情感智能(EI)——自我意识、自我管理、社会意识和关系管理——切入,谈论了企业软件架构师应该具备的素质。
自我意识
* 情绪自我觉察
* 准确的自我评估
自我管理
* 自控
* 透明度
* 适应性
* 成就
* 主动
* 乐观
社会意识
* 同理心
* 组织意识
* 服务
关系管理
* 感召力
* 影响力
* 发展他人
* 变革催化剂
* 冲突管理
* 团队精神与合作
卡内基·梅隆大学软件工程研究所从不同软件工程师那里收集了很多他们对软件架构师的职责、技能及知识所持的观点。对于架构师必备的技能,一部分观点如下:
David Cornish(英国伦敦摩根大通公司的技术架构师):
跟技术团队和商务团队都有良好的沟通
丰富的设计经验和技术知识
分析思维和整合思维
冲突解决
Theo Gantos(美国密歇根弗林特TEKA公司的咨询师):
架构师是一位博学多才的人。在各种方法学领域都要有咨询、交际、组织、概念化、抽象思维、逻辑推理、数据建模的能力,自我检讨的能力,快速适应,演讲和沟通技巧,编程知识,写作技巧,销售技巧,个人魅力,金融和投资回报率计算技能,对付难弄、安于现状的人,有幽默感。
Venkatesh Krishnamurthy(印度班加罗尔市Valtech印度公司的技术架构师):
* 有创造力
* 艺术家
* 政治家
* 强有力的意志
* 优秀的沟通技巧
* 出色的演讲技巧
* 有人缘
* 成熟
* 表达能力强
* 勇于决策,并能坚持
* 挑战者
* 好的观察者
* 协商者
Victor Alejandro Baez Puente(墨西哥墨西哥城Grupo Nacional Provincial公司的CTO):
* 对带有财务审计、合同管理、企业工作流、业务流程整合、资产管理组件的企业应用,有设计经验。
* 有SOA相关经验。
* 作为首席架构师参与过J2EE项目成立到交付的整个过程。
* 有在高可用、集群化环境部署J2EE(富)Web客户端应用的经验。
* 专长于针对软件系统工件构建和文档化的UML。
* 宽泛的IT知识(应用开发、测试、部署、操作、文档、标准、最佳实践、安全、硬件、网络、操作系统、数据库管理系统、中间件等)。
* 擅长轻量级、快速开发、敏捷方法学,并有相关经验。
* 有估算、度量项目速度的经验。
* 有处理遗留系统和分阶段应用集成的经验。
* 对细节有敏锐的注意力。
* 书面、口头、图示沟通的技巧。
例子有很多。有些人把重点放在领导/沟通技巧上,而另一些人则重视具体的技术技能。亲爱的InfoQ读者,你认为软件/企业架构师应该必须具备哪些技能?
Enterprise Solution Architects and Leadership I strongly believe that Leadership is a critical competency for successful Enterprise Solution Architects.To some, that statement may seem bold. To others, its obvious. forthose that this seems bold, I hope this blog post helps explain whyEnterprise Solution Architects have strong Leadership competencies. Forthose that this statement seems obvious, I hope I'm simply attemptingrefining this concept to bring it to a more mature level.
A bit of my background leading to thoughts on strengthening Leadership competencies as an Enterprise Solution Architect
During my career as an IT guy, I've always been laser focused on mycareer mission "Improve IT's business value proposition". This is mypassion and it is my guiding principle for making career choices. It'sworked well for me probably because there always seems to be newopportunities to explore and deliver more business value such as;exploring different software delivery models, exploring differentsoftware design processes and techniques, implementing new and excitingtechnologies, engineering business architecture, and scalingto enterprise-level constructs like enterprise architecture frameworksand organizational dynamics. In fact, I feel lucky to have been able toachieve so much and still be totally inspired to learn and grow more.My career has taken me through many IT roles gaining experience asan IT software engineer, tester, business analyst, project/programmanager, and solution architect. I've carried pagers while in IToperations support roles. I've spent time in sales selling softwaresolutions and I've spent time as a consultant delivering softwaresolutions and coaching customers and partners how to deliver softwaresolutions. Because I've always had a hankering to make bigger, broader,enterprise-wide business value from IT, my career has led me to where Isit today, an Enterprise Solution Architect.
Enterprise Solution Architects require Leadership skills the most
I think that all Architects require Leadershipcompetencies to some degree but one Architect type that stands out asbeing the most dependent on Leadership is the Enterprise SolutionArchitect. Because I haven't seen an attempt to articulate theLeadership abilities in the context of the Enterprise SolutionArchitect role, I thought I'd share my opinion of what they might be.
So, here's how I think of Leadership. Leadership is a competency andit can be decomposed in a number of ways; leadership principles,habits, values, emotional intelligence abilities, leadershipimperatives, et al. All are valid and often share the same semanticmeaning but conveyed in different terms and constructs giving us lotsof choices to find the one that resonates with each of us individually.Daniel Goleman's Leadership model as the base construct
One such Leadership model that resonates with me is Daniel Goleman'sEmotional Intelligence (EI) abilities organized by the domainsSelf-Awareness, Self-Management, Social Awareness and RelationshipManagement. The complete list of Goleman's EI abilities withdefinitions are located at the end of this blog.This is an Architect's blog post, so I created some views of the EIdomain model as well as the actual model using UML notation for thosewho like to read models:
Leadership Domain Model |
|
Leadership Object Model |
Relating Goleman's Leadership Competencies to the Enterprise Solution Architect
So, how does this all relate to the Enterprise SolutionArchitect role you say? Well, I think that this is where things getfascinating. Below is an attempt to describe how Goleman's Leadershipabilities relate to the Enterprise Solution Architect role. It is veryrough but my hope is to mature the thinking to the point we can manageLeadership abilities like we can with other Architect skills like I described in this blog post regarding growing Solution Architects.
It should be noted that the Enterprise SolutionArchitect's Leadership competencies are required or be the highestmaturity achievable. The aim of this blog post is simply to describethe relationship between Leadership competencies and the EnterpriseSolution Architect role.
Leadership Competency | Narrative description how Enterprise Solution Architects use the Leadership Competency |
Self-Awareness | |
Emotional self-awareness | This is one of the more criticalcompetencies that Enterprise Solution Architects have. We are oftenengaged in discussions that are extremely complex with very seniorleaders when suggestions are asserted which unintentionally break theintegrity of the enterprise architecture we have so carefully nurtured.Enterprise Solution Architects must have self-awareness competency toinject architectural integrity back into the discussion withoutsacrificing relationships or, as Goleman might say, "emotionalcapital". Take for example the situation of enterpriseplanning. There are times when senior leaders suggest major platformconsolidation decisions while, unintentionally, grossly oversimplifiedthe engineering rigor involved in defining shared software platforms.Instead of bursting aloud and delivering 'an education' to the group,Enterprise Solution Architects might choose another route. Perhaps s/hemight respectfully acknowledge the leadership's role and compliment thesuggestion with the option of off-lining that decision to allow time toreview impacts and return with their analysis results. |
Accurate self-assessment. | Because Enterprise Solution Architects interact at all organizationlevels in the business and IT organizations, they become acutely awarewhere they must grow and improve in order to be more effective. Thebest Enterprise Solutions Architects, therefore, seek mentors andcoaches, join networking clubs with a passion for self-improvement.This is one of the reasons why find themselves at networking events andsharing experiences at enterprise architecture conferences. |
Self-Management | |
[b] Self-control[/b] | Enterprise Solution Architects are some of the most psychologicallymature Architects an organization has. They are often "the rocks"within the most complex, high-profile IT projects a company has. Theyare masters of self-control for the project team and in planning teams.Their decisions carry weight both in the eyes of the business and ITand any wavering can cause ripple effects strong enough to cause doubtand ultimately shake the foundational confidence of a project. |
Transparency | Transparency is a major part forgaining a Trusted Advisor relationship with senior businessstakeholders and engineering teams. Often, the Enterprise SolutionArchitect must deliver messages that are not what stakeholders want tohear so setting expectations early and being transparent to thedecision-making stakeholders is critical. Take for example thesituation where Enterprise Solution Architects coordinate the supportfor a shared enterprise-wide software platform. Enterprise SolutionArchitects must be able to gain support from several Lines of Businessand engineering organizations to commit to the software platform. Thisis a tremendously complicated task that can be thwarted from severalangles. Enterprise Solution Architects provide a Leadership rolethrough this process and the great ones build Trusted Advisorrelationships through transparency. |
Adaptability | Adaptability is a core competence of the Enterprise SolutionArchitect because of the diverse situations and audiences they arefaced with on a daily basis. As an example, I once led a highly complex software designdiscussion with highly-talented and, should I dare, 'critical'engineers involving system integration modeling of our Microsoft OnlineOrder Management systems in the morning, sat with business leads tobrainstorm licensing business logic for our to-be-released OnlineProducts over lunch, and delivered an architectural brief to a group ofBusiness and IT Vice Presidents on the impacts to our enterprise forour S+S company strategy all in the same day. |
Achievement | Enterprise Solution Architects are measured by adoption.Everything they are set out to accomplish is carefully prioritized andburned into the forefront of their consciousness. Think of StephenCovey's second habit of highly effective people"Begin with the End In Mind". The 'end' for an Enterprise SolutionArchitect is the delivery of change whether it be decisions on whichsoftware platforms are to be built and how they are designed, deliveryof enterprise-class software solutions, optimization of the applicationportfolio, enabling IT with the right architect to deliver faster,efficiently and cost-effectively. |
Initiative | Enterprise Solution Architectshave the opportunity to view broadly across the company and often arequick to see opportunities for progressing the advancement of theenterprise architecture. They look for ways to gain adoption quicklyand often are able to provide feedback to IT process owners ororganization designers on observations made that potentially canimprove the organizational effectiveness in terms of improved deliveryto the business. |
Optimism | Enterprise Solution Architectsknow that no one want's to work with pessimistic wet blanket. Gainingmomentum is critical to the success of delivering large-scaleinitiatives and, therefore, optimistic leaders help carry the momentum.Not all Architects can perform the Enterprise Solution Architect role.It is mostly a thankless job and often highly criticized. I'm sorry ifthis sounds like a bleak picture for the Enterprise Architect but to behonest, we must be optimistic to try, try again. |
Social Awareness | |
Empathy | I just love this Leadership ability because it is often so sorelylacking in the IT industry, thus representing a great opportunity toapply focus and get huge improvements. Engineers often don't have thetraining or basic social skills to have a positive dialogue. All themore reason why the Enterprise Solution Architect has very matureempathy abilities so as to resonate and get decisions made to rapidlyenable change. I can't put it better than Jack Welch's "Three S"approach to Leadership; Self-Confidence, Simple, Speed. I've created aconceptual model of the "Three Ss" concepts and added a couple of newone's taken from anecdotal mentions from Goleman for another View tohelp describe the concepts. Here's how to relate Empathy to the Three Ss concept. ThroughEmpathy, an Enterprise Solution Architect can identify a Simple messagethat resonates with allowing them to act on the message with speed. |
Organizational awareness | Enterprise Solution Architects often find themselves inorganizations that lack fluid understanding for involvingenterprise-wide concerns. This is common and natural. For example,large companies often have several business strategies that are notin-sync eventuating in siloed supporting IT systems. EnterpriseSolution Architects must be able to understand who to influence inorder to contribute due diligence efforts for deliver solutions toenterprise concerns such as application rationalization, delivery ofshared enterprise software platforms, software platform designs builtfor flexibility, reusability and availability. Now, I would like to make a distinction between Organizationalawareness from a Machiavellian politician who studies organizationaldynamics and manipulates and drives their self-interests. Like Goleman,Stephen Covey and Jack Welch note often, "those individuals are a boreand bring down organizations." I'm in complete agreement. |
Service | Service is one of the mostimportant competencies Enterprise Solution Architects have. We arehumble and serve our business partners and teammates to achieve ourgoal, adoption. I described tips for gaining adoption in a previousblog - see here.Enterprise Solution Architects fill the gaps and complement the team'splan directly or indirectly through encouraging the appropriate roleowner to pick it up. |
Relationship Management | |
Inspiration | When Enterprise SolutionArchitects discover business problems that cross several Lines ofBusiness and engineering teams, they have a tough challenge ahead ofthem. Often, Enterprise Solution Architects make all groups aware ofthe problem and inspire them to collaborate on solving the problemtogether, thus bringing synergy to the organization. |
Influence | In the software industry, if youare not directly writing source code you are in an influencer role. Icannot stress the importance Enterprise Solution Architects place onthis leadership competency. It is critical to the success of gainingmomentum for software initiatives and truly delivering in a TrustedAdvisor capacity. |
Developing others | Goleman often cites statisticsthat the IT Business sorely lacks this competency. Goleman believesthat this is likely due to the fact that engineers focus on improvingone's technical skills rather than focusing on improving other people'sskills. He's got a great point. Enterprise SolutionArchitect's understand that no single role will be responsible forimproving IT's value proposition to their business stakeholders. Wespend a lot of time growing an organization's competence. The bestEnterprise Solution Architects I know, dedicate time to mentor others,contribute to skills discussions and often express their ideas in broadaudiences all with the intention of helping grow the discipline in thedirection of improving IT's value proposition to the business. Infact, Developing others is why I blog (and I wish I blogged moreoften), mentor aspiring Architects in and outside of Microsoft and oneof the sole reasons I choose to be an Enterprise Solution Architectwithin Microsoft. With this blog, my hope is that I catch theattention of another Architect to investigate and learn more aboutleadership competencies and contribute to their growth and success. |
Change catalyst | Many esteemed thinkers in thespace of Enterprise Architecture often evangelize the role ofEnterprise Solution Architects as 'change agents'. This is true. Like Idiscussed in the Initiative item above, Enterprise Solution Architectsdo have an unusual position of seeing an impartial view of the 'bigpicture' and when opportunities for gaining efficiencies regardingre-prioritization of our business needs, tweaking our delivery process,restructuring governance models, identifying skill gaps, to drivechange for improving the IT organization's effectiveness to delivermore value to the business, we do it. |
Conflict management | I love this competency! In the ITindustry there is so much social insecurity that it impairs even themost trivial discussions resulting in relationship destruction. Theseoutcomes are unacceptable to Enterprise Solution Architects and wemitigate these outcomes by leaning heavily on our Conflict Managementskills. For example, Enterprise Solution Architects often findthemselves facilitating an initiative via a virtual team ofmulti-discipline resources from all over the organization. Inevitably,there are pitfalls to avoid from insecurities that exist with each ofthe team members. Normally, insecurities manifest themselves from teammembers that were part of a failed project they wish to not be remindedof, or senior resources wanting to be recognized for their position bysubordinates, or from highly educated individuals who want to bepublicly recognized for their educational credentials, or for culturalsensitivities typical in the western and eastern cultures and the listgoes on. At the surface, one might say "why do they behave sochildish?" and they'd be right if it weren't for the fact that peopleare very emotionally complex beings - we are not beings from the planetVulcan where logic prevails over all social conflict. :) EnterpriseSolution Architects identify and respect other's underlying personalinsecurities, which are often unsaid, and empathize with them in a verynon-threatening manner, and usually in private. Then, suggest a simpleresolution to the group that a) can progress the group's initiative,and b) does not seem threatening to any one person or the group theyrepresent. |
Teamwork and collaboration | Enterprise Solution Architects,by necessity, have experience managing project teams, virtual teams,relationships "owners" with other organizations on behalf of theirorganization to deliver planning and delivery functions. We often exudethe ability to create an environment with strong collaboration and dothis by leveraging our Teamwork and Collaboration competency. |
Just some closing notes
There is nothing new described in this blog other than an attempt toarticulate a relationship between two concepts. It is my interpretationof the fantastic work already delivered by Leadership thought-leadersin the context of the Enterprise Solution Architect role.Acknowledgements: One of the great pleasures fromworking at Microsoft is the opportunity to work with unbelievablytalented people. One such person is Harry Tuckerand a few others whom I'm not sure I have the right to publiclyidentify...Jeremy, Mike, Chad and Gray. ;) Anyway, much of what I'vewritten below was directly triggered by their coaching and I'm verygrateful to have crossed paths with these individuals.
Here are Daniel Goleman's Leadership Competencies:
Self-Awareness
|
Self-Management
|
Social Awareness
|
Relationship Management
|