为何优秀如程序员,也会构建 Bug 满格的软件?( 九 )

遗憾的是,在实践中保持项目聚焦重点是一件非常困难的事情:单单是收集所有利益相关者的需求就会得到一份巨长的功能列表。

管理这种膨胀的一种方法是使用优先级列表。我们仍然需要收集所有的需求,但每个需求都有相应的标记:是绝对性的关键功能、高附加值还是非常有帮助性。这种方式有助于建立一个压力较小的计划流程,因为你不需要再明确驳回某些功能。而且利益相关者也可以更加理智地讨论哪些功能才是最重要的,同时也不必担心项目遗漏了某些问题。此外,这种方法也明确了添加更多功能的权衡。即便利益相关者想要提高功能优先级,他们也必须考虑愿意优先考虑哪些功能。而开发团队则可以从最关键的目标开始,在时间和资源允许的情况下沿着优先级列表逐个实现。

我们所有成功的应用开发都采用了类似的流程。Form.gov.sg刚开始的时候只是一个手动的Outlook宏,我们只花了6个小时为我们的第一个用户设置了这个宏,如今这个系统已经处理了大约一百多万个公共提交的请求。Data.gov.sg刚开始的时候只是复制了一个开源项目,发展到如今每月的访问量已经超过了30万次。Parking.sg曾经有200多个等待构建的庞大功能列表,但我们从来都没有构建过这些功能,可如今仍有超过110万的用户。这些系统虽然简单,却也正是因为简单才受到好评。

推荐阅读