我该如何规划敏捷软件开发?

问题描述:

我是一名*职业者。每当我设计一个新的网站或桌面应用程序时,我都会尝试估计每个组件开发,调试和测试所需的时间。但是,当我开始实施时,我意识到我需要更多时间,因为我不了解的错误或者我没有想到的例外情况。结果,我总是落后于我的时间表。当客户看到一个演示或我开发的组件,并且他们意识到项目比他们想象的更有趣,并且他们开始请求越来越多的功能时,这会变得更糟。如果你告诉我如何学习计划,以便我能够按时完成项目,我会很感激。我该如何规划敏捷软件开发?

首先,这是每个软件开发者都有的问题。也许除了那些真正无聊的人,但那不是我称之为软件开发的东西。

软件开发不像熨烫衬衫。如果你在5分钟内完成一次,你可以肯定的是,你将需要另外20分钟的时间用于其余的4分钟。

这种常规工作可能占软件开发的20%。其余更像科学工作,了解事情的工作方式。它也涉及很多创意。这些东西几乎是不可能估计的。你可以在10分钟内找到解决方案。你也可以努力工作一天或更长时间,而不需要更进一步。

另一方面,您的客户(或您的管理层)需要知道软件何时准备就绪以及需要多少成本是可以理解的。

那么你能做什么?这里有几点建议:

  • 使用你的经验。分析您以前的项目。你估计多少钱,它真的需要多少钱?使用差异作为修正因子。这种方法的流行简化是“加倍”,“三倍”等等。
  • 使用敏捷方法。这意味着你必须说服你的客户进行小步骤。估计小步骤要容易得多。每一步之后,都需要来自客户的反馈。如果出现意外问题,请立即向客户解释。让他明白需要额外的努力。敏捷可能是最好的解决方案,但它需要你和你的客户之间的一定程度的信任。

您还提到您的客户在开发过程中需要额外的功能。这是可以理解的,没有人能提前想到所有事情。但向你的客户解释,这些变更请求会导致你额外的工作,他必须支付。

+0

非常感谢您的全面回答。请给我推荐一个在线课程,书籍,网站......以了解更多信息并获得更多有关敏捷的经验?我的一些朋友告诉我Scrum帮助很大?你怎么看待这件事?你知道任何更好的软件开发规划工具吗? – 1man

统计上,初始估计超过了300%:) 在您的情况下,当使用“固定价格”模型时,至少要添加20%以覆盖风险。另外,如果可能的话,提供两个值:“实施将花费40到60小时,具体取决于API”。再次,因为这是“固定价格”,所以不能在初始范围内添加任何更改,这必须与客户一起明确。如果您收到新的功能请求,请将其估算为单独的一部分工作(更合适的选项)或重新估算初始范围(如果无法单独估算)。如果要求太模糊,最好使用“时间和材料”,因为您无法提供准确的估算值,因为您需要支付实际工作时间。