你是否在功能工厂工作?

你来到公司,坐在办公桌前,为公司的软件产品开发功能。对于您的工作对整个解决方案的影响,没有视图。与其他团队的互动很少。你已经有一段时间没有考虑到终端客户了。当你完成一个功能时,你就会开始下一个功能。

无限重复。

如果这听起来很熟悉,那么你的开发办公室可能已经变成了一个功能工厂。但这是什么意思,你怎么知道,你应该怎么做?


在特性工厂工作

对于开发人员来说,在一个长期存在的功能工厂工作很快就会变得单调乏味。总是千篇一律——炮制出一个又一个的功能,却不知道他们的工作做得有多好。

除了单调之外,更多的麻烦正在酝酿之中。功能工厂的特点是团队之间缺乏沟通。功能被交给下一个团队,然后是下一个团队,没有任何反馈。

因此,开发人员发现自己与客户脱节了。客户服务不确定开发者在想什么,等等。

遭受损失的也不仅仅是球队。软件产品也受到了影响。如果不考虑价值或影响,解决方案就会成为功能蔓延的牺牲品。用户会被他们不一定想要的附加功能所包围。而且,重要的产品维护和用户体验微调往往会被搁置一边。

长期存在的功能工厂不利于士气,不利于软件,也不利于业务。


为什么会这样

有很多原因可以解释为什么开发办公室会时不时陷入功能工厂的境地。

一个常见的原因仅仅是缺乏经验或缺乏实践。一开始,平衡创建软件、发布软件、适应新技术和适应不断变化的客户需求是很棘手的。专注于制作功能更自然——如果这种方法成为常态,办公室就会变成功能工厂。

技术沟通的清晰度是特性工厂的另一个常见原因。使用像“客户”和“用户”这样的术语是过于简化了软件和功能所针对的人的观点。因此,开发者在创造功能时并不清楚他们是为谁创造功能(或者为什么创造功能)。

最后一个可能导致开发办公室成为功能工厂的例子是闪亮对象综合症。这就是项目经理、团队领导或决策者对新事物感到兴奋的地方。新技术意味着新功能。闪亮对象综合症意味着追逐那些新功能——即使它们不需要。


怎么分辨呢?

那么,有哪些迹象表明开发办公室已经变成了功能工厂?

  • 没有明确的度量或标准

在功能工厂中,开发人员不知道他们的工作有多有效(或无效)。换句话说,目前还不清楚该功能是否对最终用户有用。是否有任何后期问题,等等。

更深入地说,开发者可能甚至不知道他们的功能是针对谁的。没有列出或讨论期望的客户。

  • 非协作团队动力学

团队交互的方式也可以表明一个具有特性工厂的业务。特色工厂有各自为营的团队。也就是说,团队和部门之间几乎没有沟通。每个人都做自己的一部分,然后把他们的工作送到工厂的流水线上给下一个人。

  • 大型发布实践

专注于发布大量功能的批量发布也可能表明向功能工厂思维模式的转变。在这种情况下,所有的改进都将立即启动,而不是逐步发布。

因此,我们的重点是在一次大型发布中添加许多功能。没有(或很少)调整或微调。

  • 倾斜的优先级

在功能工厂中,重点往往在于你能做什么,而不是你应该做什么才能最好地为客户提供价值。这通常表现为追逐最新技术而不分析其适用性,重视功能和代码的数量而不是质量。


如何提高

当你认为你是在一个功能工厂工作时,自然会问你可以做些什么来改进。

答案在于解决迹象和原因。例如,你可以:

  • 促进团队和部门之间的沟通。这让开发者能够发现什么是流行的,什么是不流行的。
  • 确保你正在编写有效的用户故事。这有助于开发团队与客户建立联系,并思考每个功能的价值。
  • 留出时间来清理技术债务。当你不去消除bug和对抗糟糕的代码时,你可以花更多的时间关注客户。

这些是你开始的一些想法。但是有很多不同的方法可以促进对软件的更大的了解。这样做的目的是为了避免大量推出毫无规律或理由的功能。


不仅仅是功能

对于软件工程来说,除了大量生产功能之外,还有更多的事情要做。但有时,它会觉得这些元素被搁置一边。

所以,记得时不时地盘点一下。你的工作有什么价值和影响?你在追逐闪亮的物体吗?你与销售和客服沟通吗?

抬头看看更大的图景,可以帮助您创建更有凝聚力的软件解决方案,以用户为核心。


有用的链接

功能蔓延:除了厨房水槽之外的一切。你的软件有问题吗?

客户、用户和技术沟通的清晰度问题

软件开发中的闪亮对象综合症