务实的软件架构师是什么样?(tpierrain)


软件架构师是一种pragmatic务实的架构师, 是在考虑解决方案之前收集用例和约束的人。更在乎'我们为什么要这样做?”(即基本的业务目标,但往往没有明确地阐明和共享)。他审查并面对了这个初始业务目标的任何选择或行动。他试图交付将产生影响的项目,而不仅仅是交付软件。
软件架构师知道没有绝对的真理或解决方案。他 了解每种选择或权衡取决于上下文 (包括人为因素)。
软件架构师也是 一个务实的程序员和软件工匠。他真的很喜欢编码并在此方面有所进步。如果他在工作时间内无法编写代码(即幻灯片和图表王国),那么他可能会为自己的开源项目做出贡献。
作为每个务实的程序员,他喜欢尽可能地编写脚本并自动执行每一个经常发生的痛苦的事情。他显然是持续交付的忠实粉丝。
务实的软件架构师能够与其他伙伴讨论面向对象编程或函数式编程的优缺点。他喜欢站在一边,对事物有观点,从根本上需要理解每种选择的原因。
他了解模式和反模式,他重视GRASP,GOF和POSA模式,但也关心容量和稳定性。作为每个软件工匠,他还接受SOLID原则。但他最喜欢的是,事情要保持尽可能简单。
他喜欢抽象,但是知道泄漏抽象的规律。他还知道,“教条主义的陷阱是任何抽象努力所固有的”。
他有很多想法,但他只喜欢与他人分享和辩论。但是主要是为了与现实世界对抗他的思想。还有他不怕尝试。他知道失败是成功之母。而且 他通常不会把所有的鸡蛋都放在一个篮子里。他不惧怕风险,他宁愿减轻风险。
务实的架构师仍然是一个乐于了解业务风险的人。总是 根据它带给项目的价值优先考虑工作。这就是为什么她通常会推迟选择要使用的框架或工具(例如db)的决定。
他总是问 五次“为什么?”,以便她可以找到对话者话语背后的真正根源,意图或需求。(保安灵魂三拷问:你是谁?你从哪里来?你去哪里?)
他喜欢揭示各种隐式。使每个人都在同一页面上。她甚至能够提出 已经知道答案的幼稚和愚蠢的问题,只是为了让房间里害羞的人听到。她通常要求人们重新措辞,以检查他们是否理解了所讲的内容。
他是一个热心的团队合作者。她非常喜欢与人和团队合作。他理解:行为驱动设计(BDD)并不是工具问题,而是协作问题以及各个参与者之间的沟通(商务/ BA,运营,质量保证和开发)。
务实的软件架构师很敏捷,但是并不需要将它重复给所有人。现在,她更加关注如何在组织内部扩展敏捷性,以及如何改进当前的实践。
务实的软件架构师能够利用领域驱动设计(DDD)将项目的主要重点放在核心领域,了解所有技术堆栈的技术挑战。她会说多种语言(业务,经理,开发人员,运营人员...)。
务实的软件架构师了解事件溯源不仅是应对诸如高可用性之类的技术挑战的技术,而且还可能带来真正的业务增值。
他不喜欢早期的优化。一个务实的建筑师不会猜测,他会去衡量。
他具有网络和硬件技能。他不仅了解HTTP,而且还精通IP,TCP,UDP...。
他是多线程专家,这就是为什么他试图帮助人们不要玩线程。
他了解面向恢复的计算(ROC),并构建可用于 生产的系统。他 尝试使错误在发生时对系统的影响最小化,而不是相信没有错误的世界(ha,ha,ha ;-)的想法。因此,他希望在投入生产之前设置一些“如果...会怎样”研讨会,并在他构建的系统中的系统集成点处处理异常。
知道并且关心 机械的同情心。由于CAP定理,他还知道您也不能自己有蛋糕(HA)并也自己去吃它(Utter Consistency)! 
喜欢“易进,易出”技术。这是合乎逻辑的,因为她自然不喜欢强大的依赖性和耦合性。这就是为什么她经常提倡六角形架构的原因。
思想开阔,好奇。他喜欢打破筒仓,因此喜欢阅读其他各种学科的知识(不仅限于IT)。
乐于后退,扬起头来。由于他有系统的心态,他通常对工作有益 。
会参加各种IT会议或“极客” 聚会。他的社交能力很强,并且总是乐于与无法参加比赛的队友分享他所学到的知识。然后,他通过Twitter,博客,邮件,演示文稿,茶歇等方式传播这些单词。
他关心人们如何接收和理解他的言语和信息。因此,当对话者出现分歧时,他可以使用技巧将对话者重新集中于核心目标。
喜欢简单。
没有IT信仰,也不是教条主义。他不在乎诸如Java与NET之类的愚蠢辩论。他能够开箱即用地思考,并适应于将要实现系统的上下文和人员。
 在乎别人的观点。
他能够用清晰的讲话说服他人。