自治、架构和敏捷
自治、架构和敏捷
原文:https://medium.com/hackernoon/autonomy-architecture-and-agile-44f3d6645923
我喜欢敏捷的一点是给予团队自主权。团队不应该依赖项目外部的任何人来在质量标准和预算限制内有效地交付软件。
在小系统中,我相信团队可以完全自主,选择他们喜欢的工具、编程语言和架构。但是随着公司的发展会发生什么呢?
还是用现实世界吧。如果你让一小部分人处理一个孤立的问题,他们倾向于就如何解决问题达成一致。如果你住在一栋公寓里,而这栋楼有一些影响到大多数房客的糟糕状况,他们可能会同意解决这个问题。
随着问题变得越来越大,并开始影响不同的人群,解决方案可能不会自然而然地出现。
试图解决全球变暖不是全世界所有人都能做到的。我不是这方面的专家,但我认为原因之一是大多数人没有看到更大的画面。一些国家仍处于发展阶段,他们需要被允许比其他国家有更高水平的污染。其他一些人,降低他们的污染水平会毁掉他们的经济。摧毁他们的经济可能会引发多米诺骨牌效应,影响整个世界。等等。我知道污染会毁灭世界,但战争也一样。战争发生的首要原因是资源匮乏。权衡,权衡…
但是回到软件行业
软件架构有一些主要的存在理由。架构师应该在预算范围内交付一个工作解决方案,满足所有涉众的需求。利益相关者的架构师是参与项目的每个人:经理、软件工程师、QA、支持、项目经理、业务、产品负责人等。最近,软件架构师的名声似乎不太好……"他们什么都不做,只是记录东西","他们水平太高了",等等。“我们是敏捷的,我们不需要架构师”。
【浮现设计】
敏捷的一个特点是前期设计很少。我喜欢。当你扩大一个组织,并试图让每个人都参与决策时——因为人们应该是自治的,我们不应该通过告诉他们需要做什么来挫伤他们的积极性——你可能会以一种我喜欢称之为“委员会设计”的模式结束。
委员会设计是将每个人聚集在一起,开始讨论或辩论与你的架构相关的事情。这似乎是一个惊人的想法,我曾经喜欢它,但它有一个巨大的问题…大声的人会赢。
“我有一个经验丰富且聪明的团队,他们会做出明智的选择”
希特勒当选...我的意思是,如果你面对一个聪明、口才好、论点似乎不错的人,你可能终究不会做出如此明智的选择。每个团队都需要领导、辅导和指导。领导层必须来自管理层认为与你对公司有共同愿景的人。辅导和指导自然会到来。尽快清除那些对你想要实现的目标有害的领导者。忘记我刚才说的话。尽快清除任何有毒人员,不管是不是领导。
请记住,如果你不选择你的领导,有人会…他们可能不同意你的想法。
《但不要创造猴子》
综上所述。你应该有人负责你的架构,有时间和经验来分享和改进你的公司。这是容易的部分。先说最难的一个。
难的是你不应该创造猴子。每个人都应该参与进来,任何想法都应该受到欢迎。
建筑是关于人和交流的。
我所说的参与并不是指委员会设计。获得反馈,并尽快进行评估、决策和沟通。

Agile architecture process
“我看不出有什么不同”
建筑师不是每个领域的专家。架构师是一个知道很多事情的人,一个多面手,理解权衡,理解成本,理解他的团队并做出决定。架构师应该被授权做决定。当产品经理/产品所有者做出关于产品的决策时,架构师做出关于技术的决策。
架构师会告诉你的开发团队关于 X 技术或 Y 语言,但同时会阻止他们直接进入其中。他必须理解和管理变化。改变工具和技术是昂贵的。你最好有一个好的商业案例。建筑师会有一个。
《人是聪明的》
是啊!但是他们需要经验来变得更聪明。如果你有 20 个自认为懂得很多的初级开发人员,给他们发言权,还有一个不喜欢在公共场合说话的有经验的软件工程师,你去参加委员会设计会议,你认为会发生什么?三年级学生的选择会赢,如果他们能争论的话。
有自己的声音很好,我从经验不足的人身上学到了很多,我想我也教会了很多经验丰富的人一些东西。有一个明确的好导师来指导我们也很好。给他们选择的自主权并不意味着公司要亏钱,直到他们学会为止。投资有经验的人,让他们担任领导职务。他们应该能够引导团队朝着公司需要的方向前进。
指南!不是控制!



