我开发了一个内部业务应用程序,我们的工程师用来测试和调试公司的产品。当工程师处于设计阶段时,工程经理一直在推动让软件开发人员参与进来。他说他想给我们一个关于从管道里下来的东西的想法,并给我们机会对他们的设计提供反馈(我们很少有反馈)。
工程经理希望开发人员和工程师同时实现新特性,以便工程师在完成任务时,可以使用软件对其进行测试。功能设计往往是不稳定的,直到他们完全由工程师实施,使其难以制定要求。他认为工程师和开发人员可以在集成的时候并行完成我们所有的调试。
对我来说,这一切似乎都是低效的。
发布于 2012-01-18 15:46:01
没有一般的规则,这总是一种权衡。
在什么时候让软件开发人员参与,取决于您希望如何做出这种权衡(例如,工程部门做出的设计决策会给SW开发人员带来困难的可能性有多大;SW开发人员帮助工程师的可能性有多大;项目中的风险最小化有多重要,即使这意味着整体成本的提高)。
这在很大程度上是一个针对具体项目的决定(也是一个困难的决定)。
这个问题真的可以归结为“SW是否应该参与需求设计?”在我的经验中,一些(有限的)参与即使在早期也是非常有价值的,因为它避免了完全不现实的要求。
从根本上说,需求设计就是“物有所值”:识别出尽可能有用的特性,但也尽可能容易/廉价/快速地实现。
领域专家知道什么是有用的,SW开发人员知道什么是容易实现的。您需要这两部分信息来决定哪些特性值得考虑。
发布于 2012-01-18 17:25:43
如果您的公司能够负担得起,那么让开发人员参与需求阶段并没有什么问题。这并不意味着他们会更快地开始开发周期的其他阶段。
在我的经验中,让一个敏锐的开发人员早期参与需求收集过程是非常宝贵的,因为他们可以帮助团队避免基于管理层/业务不健全的开发假设而产生的任何问题。然而,如果需求阶段变成一个弱的头脑风暴会话,这也可能是对开发人员时间的巨大浪费。
对于开发人员何时参与并没有严格的规则。我参与的项目太晚了,但在下一次被引入的太早,因为他们意识到了这一点,并试图避免犯同样的错误两次。如果你的公司没有强大的领导能力来衡量何时引进开发人员,那么可能会有许多沮丧的开发人员坐在那里,“如果我们可以的话,那就太酷了……”会议。
一个好的项目经理应该知道让开发人员参与进来的合适时机。这是很困难的,因为项目经理必须了解需求的进度,以及他们在技术理解方面的局限性。一个伟大的项目经理将知道哪些开发人员应该在哪个阶段参与(因为有些开发人员在需求阶段比其他开发人员更好)。
我还没有看到一个项目已经完全通过了需求阶段,不可能使用开发人员的一些输入。如果这种情况发生在任何地方,我希望我的公司雇用那些项目经理/分析师。
发布于 2012-01-18 16:56:53
把它看作是一个原型问题。原型是收集需求的一种手段,在这里,创建反映当前思维的物理信息可以帮助巩固它们想要的东西,或者是否确实有更多或不同的需求。
如果工程师们正在与开发人员一起收集一些基本的想法,那么开发人员不仅应该能够说它是否可行,而且还应该能够把一个能够作为实际应用基础的原型组合在一起。到了逻辑的极限,这就变成了一种增量的、迭代的设计和开发方法,在统一的过程和/或敏捷的范围内。
我还要指出,开发人员应该给出反馈。你怎么会不知道呢?
https://softwareengineering.stackexchange.com/questions/130707
复制相似问题