假设我的公司将开发MS的副本(就像一个例子)。假设您拥有无限可用的现金和像Microsoft这样的组织,那么开发过程的瓶颈是什么?换句话说,快速开发这种软件最常见的障碍是什么?让我们假设所有规范都已经到位,并且组织运行得很完美,所以我们只关注软件开发,直到产品准备好才能发货。一些替代方案可能是:-编写代码-编写测试-手动测试最终产品-首先重写代码,因为错误的设计首先-设计代码-代码审查经验丰富的开发人员设计GUI -重新设计基于alpha/beta用户反馈用户反馈处理反馈-等待alpha/beta用户反馈-用户反馈。
请在你的答案中使用参考资料,或说明你在这个问题上的经验。
发布于 2011-07-17 00:55:46
根据我的经验,主要的“瓶颈”是学习过程。当你的假设公司开始开发微软的下一个单词时,你需要知道的东西和你实际知道的东西之间有很大的差距。差距的大小取决于许多因素,它可能是在技术或领域。在你的问题中,你已经触及了其中的一些问题,比如设计、用户反馈等等。微软Word已经开发了30多年,所以在历史、代码、工具和人之间都有很多知识。
因此,如果我尝试这样做,我会尝试雇用最好的人在该领域的经验,包括技术和管理。试着阅读该领域的任何现有文献。我也会设法尽快得到客户的反馈。最大的问题是那些你不知道的关键的事情,并且可能会在你的过程中发现很晚。
顺便说一句,这并不是软件项目所独有的。对于每一个你尝试做新事情的大型项目来说,这都是真的。看看那架波音梦想飞机。有很多关于这方面的书。神话中的男人月就是其中之一。
发布于 2011-07-16 22:13:29
让我们假设所有规范都已经到位,并且组织运行得很完美。
您已经假设软件开发过程中两个最大的“瓶颈”并不存在(根据我个人的经验)。
发布于 2011-07-16 22:54:35
即使在你假设的完美世界里,我也能看到一些问题:
从我个人的观点来看,最重要的可能是与客户打交道。根据我自己的经验,企业必须与那些在项目开发过程中经常尝试更改项目的客户打交道。在某些情况下,他们试图将更改请求作为bug修复,以避免支付任何费用。这可能会导致大量的官僚作风,这可能会延迟一个项目,或者导致代码中的快速黑客攻击,从而进一步发展为技术债务。我读过并听说过处理这些问题的团队就像呼吸一样容易,我当然希望我在其中之一:)
第二个问题是缺乏合适的领域模型。Evans在他的书“领域驱动设计”中对此提供了很好的报道。缺乏良好的域模型会导致Glenn的回答中强调的一些问题,例如试图定位bug。如果没有干净的域模型,那么遍历/调试代码以隔离和修复问题是很费时的。我认为一个好的域模型可以让生活和调试变得更加容易,在维护和扩展应用程序的过程中更是如此。
上面提到的问题不会产生任何直接的问题,但是如果您需要长期维护此产品,它们可能会回来困扰您和您的团队。
https://softwareengineering.stackexchange.com/questions/93437
复制相似问题