在公司内部管理IT产品需求

碰巧的是,最近我一直在处理“内部客户”的产品需求,包括来自各个部门和技术团队(公司内部)的同事。 人们不断来找我,以便我们的团队实现某些功能,重做一些事情,添加,删除。

在本文中,我想告诉您如何处理所有传入的混乱情况。

本文是根据工作实践编写的,并不打算涵盖项目管理,需求,团队,开发人员对需求的后续实施质量,实施结果分析等主题的整个主题。
但是它仅涵盖了“愿望清单”和“实现”之间的一小部分,而这恰恰与需求本身有关:任意的愿望清单/需求/愿望/问题等飞入我们的手中,我们与他们合作,最后我们得到了什么适合发展。

找出真正的问题


当有人提出问题,需求,对新功能的想法等时 那么它并不总是为我们带来适合实施的现成产品。 通常,这种或某种“波斯菊”非常大,淘汰,不现实,需要完全重做所有内容以解决一个小问题,而这个小问题的相关性是未知的。 或仅仅是“原始”,难以理解的非特定要求。

例如,有人建议添加新功能。 并以此方式提供某种技术实施。 在这种情况下,不知道要安排什么以及如何实现。 显然,人们不能仅仅接受并实施这些要求。 如果他们这样做了,世界早就陷入混乱和黑社会的黑暗之中。

为了稍微减轻黑社会的混乱和黑暗,我们需要了解这些想法和提议的背后。 来您的人真的想解决什么问题,应该解决什么问题?

图片


这远非总是一目了然。 通常,您必须克服困难,多次问同样的问题。 或不同的问题。 直到最后,人们才明白本质上是什么,问题的本质是什么,以及在一个人的理解中应该如何“如此”。 通常,这种理解与任务/问题的原始陈述有很大不同。 但是,如果没有收到它,就无法继续下一步并满足需要。

理解一个人真正需要的是一门完整的艺术,整个寓言都专门针对这一艺术(例如,“弗拉基米尔·塔拉索夫-靠近鹿”),书籍(例如,“罗伯·菲茨帕特里克-问你的母亲”)和实用强度(例如,自定义开发)。

关于钻头买家的旧自行车

一个男人来到商店,在那里买钻。 但实际上,他不需要钻,他需要在墙壁上钻一个孔。 因此,他买了钻。

但这还不是全部。 不需要一个孔。 需要她将沉重的大画悬挂在沉重的框架中。 这个英雄想挂画,以取悦他的婆婆,他的婆婆长久以来一直要求他挂画,但他仍然没有这样做。

在我们看来,我们已经发现了一个基本问题。 但是没有

实际上,有一天会有一场足球比赛,这是我们的英雄真正希望看到的。 为了让岳母没有理由打扰他,他安排自己有权看足球-他做了很长时间以来一直要求的-他挂了一张照片。

也就是说,买钻子,他真的很想冷静地看足球。
在这里应该注意,有人提出奇怪,难以理解,歪曲的表述,或者从您的角度来看,错误的要求是正常的 。 对于一般人来说,他们想要一些东西是很自然的,但是他们不能总是准确准确地表达他们想要的东西。 通常,人们就是这样-这是自然的。 就是说,重点不是某人是错的,而是您如何知道如何处理这种情况。

在这个特定时刻,与内部客户合作与与外部客户合作并没有太大区别。

对已经存在的功能的要求


间谍自行车。

他们以某种方式派遣间谍到一个城市,找出墨盒厂所在的位置。 他们提供信息以帮助该城市有一座教堂,如果您沿着街道走直走,那么在那个方向上将会有一家工厂。

这里有一个城市间谍。 他遇到了祖母,并问:
-告诉我,怎么去教堂?
-但是您看到墨盒厂了吗? 从他那里直走,然后向右走。 将有一个教堂。
最简单的情况是,当事实证明一个人想要什么时,我们已经拥有了。 也许不是人们期望的,设想的,想象的形式。 仅仅是因为那个人不知道它是什么,或者他不知道如何使用它,或者他对它的工作方式有错误的了解。 或者,您只需要配置/启用某些功能即可获得所需的内容。

当一切都变得如此简单时,剩下的就是给该人提供有关如何利用现有机会获得所需结果的指导。

做完了

重复要求


需求经常是相似的,它们仅在(潜在)设置的细微差别或大致相同的地方有所不同,但用词略有不同。 可以将这些要求组合起来,以了解需要多少灵活性以及在什么地方需要灵活性(或将来需要灵活性)以及不需要的位置。 主要特点是什么? 一次制作一个可以同时满足所有这些需求的系统或功能。 也许具有不同的设置或变体,但是不必每次都分别做几次相同的事情。

一个例子:

几个不同部门的代表来找您(通常彼此独立并且在不同的时间),他们说一个需要从列表中将报告发送给电子邮件给客户,另一个则是通知某些特定地址的某些技术系统工作。 第三个人来了,想要根据客户数据的这种处理结果,将带有处理结果的信件发送给客户。
显而易见,在所有情况下,都需要一个用于发送信件的系统,并且发送任务在不同情况下来自不同的地方。

因此,正在出现一种特定的发送信件的统一系统。 其中的任务可以来自不同的系统。 而且,如果所有上述事件(希望向我们发送信件的人)都在同一系统中发生,那就更好了:这意味着该系统可以变得更加统一和简单。

如果我们不以这种方式处理传入的需求,并且它们以原始形式立即开发,那么一段时间后,我们会发现我们的系统具有几个不同的字母发送者,每个字母发送者都根据自己的逻辑工作,并且具有自己的特殊实现,设置,功能。 为了在这三个发送器中更改一小部分逻辑,或将功能从另一个发送器添加到这些发送器之一,您需要复制粘贴代码,或者重写相当大的一部分,并在实现和操作后进行重构。 尽管从原则上讲,人们可以预先了解一切都会如此。

需求冲突


碰巧任何两个或多个特定要求都相互矛盾。 有时是“完全”的,无法以任何方式组合。 但是,有时仍可以设想“不同的模式”,其中每一个都可以满足,而另一个则不可用。 或以另一种方式解决其中一个问题-矛盾就会消失。

为了寻求解决方案,您需要开始展开“为什么/为什么”的链条。 对于每个需求(如本文第一部分所述)。 也就是说,我们必须从这些要求的确切产生中尽可能深刻地理解,并且提出这些要求的人们都希望“真的”。

然后,我们有机会找到针对这些“实际问题”的其他解决方案,或者了解如何将这些相互矛盾的要求结合起来。

例如,如果实际上仅在某些特定的狭窄条件下需要一个要求,而在其他特定的狭窄条件下才需要另一个要求。 事实证明它们不相交。 或者,可以以完全不同的方式解决发明这种要求的任务,甚至可能更加简单有效。 然后,其中一个需求消失了(或变成了完全不同的需求-与第二个需求无关),第二个需求仍然存在。 而且没有矛盾。

或理解:这些要求不能以任何方式组合在一起,您需要选择一个。 但是,幸运的是,这仍然非常罕见。

所有这一切都是可能的,因为几乎所有任务都可以通过几种方式解决。 而且,如果我们从特定的初始,粗略的,也许是半技术性的公式中得到越来越高的理解,原则上理解任务是什么,那么会有越来越多的解决方案可供选择。 包括非技术解决方案(设置级别,过程,组织等)。 选项的选择范围越广,就越容易选择两个选项来解决两个互不干扰的问题,甚至在可能的情况下也可能会有所帮助。

锅炉要求


这个想法是,最初所有来源的所有不同需求都应合并为一个堆,并合并为一个锅炉。 然后,您可以分解它们,分析它们的上述选择-“重复”或“矛盾”,以便给出已经准备好的:可以以正确的顺序“接受和完成”的非重复且一致的需求。

也就是说,其想法是从整体上看。 对于现在想要添加的所有内容,请进行更改。 并且已经基于整个图片确定了:什么,如何以及何时进行。

图片

在这种情况下,所有传入需求都是原材料,以便为输出端的开发任务做好准备。 此外,输出中的任务并不总是会与某些传入需求一一对应。 一个任务可以一次满足多个需求,也可以满足一整类需求。 或者只是成为一些大故事的一部分。

总结


对于开发人员来说,这就是如何将传入的混乱变成美观,有用和易于理解的系统,使您的系统满意的一组任务和功能。

Source: https://habr.com/ru/post/zh-CN413273/


All Articles