代码人生

Shearing Layers in Software Design

代码人生 http://www.she9.com 2018-11-06 14:24 出处:网络 编辑:@技术狂热粉
在软件设计中使用架构理论 剪切层(Shearinglayers)是FrankDuffy引入的概念,StewardBrant开发的。这里的基本实现是,建筑不是静态的概念,而是与生活环境相连接的不断发展的实体。随着时间的推移,建筑会发生变化和

在软件设计中使用架构理论


剪切层(Shearing layers)是Frank Duffy引入的概念,Steward Brant开发的。这里的基本实现是,建筑不是静态的概念,而是与生活环境相连接的不断发展的实体。随着时间的推移,建筑会发生变化和增长——这种变化可能是由于环境的损耗、用户的喜好、市政法规或其他一些人和环境因素造成的。


这个概念在软件开发中也得到了认可,并且可能对敏捷宣言的出现做出了很大的贡献。Gene Hughson在他的博客中也探讨了这种特定的关系,他将建筑架构的概念与软件架构联系起来。


我们看看剪切层对软件开发和软件组织的意义。

Shearing Layers in Software Design

设计软件时考虑剪切层


这里的基本思想是生命周期以及在一个产品中支持不同周期的生命周期的能力。迫使基础设施层(网站结构级别)的速度变化和发展客户端代码,或API契约,或迫使API契约发展基础设施的步伐我们注定失败的软件和我们的团队——在前我们的软件变得不可靠,在后者变得无关紧要。


理解层是对软件设计的一种探索,当我提出一些建议时,这些建议应该被看作是对话的开始。软件团队需要在他们的过程中识别剪切层,并创建帮助特定层茁壮成长的过程和检查与平衡。

跨职能团队和层


在敏捷团队中经常听到的一个叫嚣是,一些X团队或一些基础设施Y无法以足够快的速度升级,从而使A团队获得成功。层之间的对话应该有助于防止和引导冲突。


相邻的层应该以相似的速度工作,而面对客户的层自然会发展得更快,并被驱使更频繁地改变。当这样一个快速移动的层最终碰到一堵墙时,它需要一个深入核心的基本开关,这项工作需要从理解它需要时间开始。出于安全或历史原因,投资于内部基础设施的组织不能简单地张开双臂拥抱运行在Amazon上的无服务器功能。


在组织上,较低的层,比如site,需要被认为是战略性的,并与长期的组织愿景保持一致,而较高的层则是战略性的,可能会受到一些异想天开的变化的影响。这意味着改变,甚至战术上的改变,都需要适应组织战略——任何不符合当前战略的改变,都需要战略上的转变。


这并不是什么新信息,但是认识到战略基础架构中的共享层,无论您积极属于哪个团队,都可以让您深入了解哪些更改必须是昂贵的,哪些更改需要高层领导的配合,哪些更改可以相对较快地实现。

时间步骤和故事点


在考虑剪切层时,考虑时间步长的概念是有帮助的。我们不应该说,在某一层上,有时移动得快或慢,这似乎是判断性的,我们应该考虑不同的层有不同的时间流逝。一个“站点”层将有一个年的时间步长——最小的变化将需要一年的时间才能转移到生产中;而UI将有小时的时间步长。为了在团队之间建立平等,我们需要一个衡量标准,该标准着眼于在给定的时间步骤中交付的故事点。如果UI团队可以在单个时间步中管理10个故事点,那么所有团队都应该管理这些点,而时间步的值是特定于该层的,而一个故事点则是组织复杂度的度量。这自然打破了故事点应该是相对度量而不是用来比较团队的观点。然而,如果他们可以用相对的,预先确定的,时间步骤度量的概念来比较团队,那就太好了。交付3个故事点的两个团队并不相同,但是在相同的时间步长的交付3个故事点的两个团队以相同的速度交付。


采用时间步骤是跨剪切层对齐团队的一种方法,并且允许在对齐方面进行更实际的对话。


请关注公众号:程序你好
0

精彩评论

暂无评论...
验证码 换一张
取 消