3.3 问题定义的先决条件
问题定义只定义问题是什么,而不涉及任何可能的解决方案。它是一个很简单的陈述,可能只是有一到两页,并且听起来应该像一个问题。
问题定义在具体的需求分析工作之前,而需求分析是对所定义的问题的深入调查。
问题定义应该用客户的语言来书写,而且应该从用户的角度来描述问题,通常不应该用计算机的专业术语叙述,最好的解决方案未必是一个计算机程序。
如果没有一个良好的问题定义,你努力解决的可能是一个错误的问题。
3.4 需求的先决条件
需求详细描述软件系统应该做什么,这是达成解决方案的第一步。
如果你和两外一个程序员对于程序应该做什么意见不一致,你们可以查看书面的需求,已解决分歧。(需求指导编程的方向)
如果你在编码过程中发现了一个代码上的错误,你只需要修改几行代码,然后就能继续工作了。但是如果你在编码的时候发现了一个需求错误,那你就得改变设计,使之符合更改后的需求。(更改设计是一件更麻烦的事情)
充分详尽地描述需求是项目成功的关键,它甚至很可能比有效的构建技术更重要。
在构建期间,最好应对需求变更的方式:
A.使用需求和对表来评估你的需求的质量。(经验评估法)
B.确保每一个人都知道需求变更的代价。(关键是让客户也知道)
C.建立一套变更控制程序。(监管客户,说服他们)
D.使用能适应变更的开发方法。(演进原型和演进交付)
E.放弃这个项目。(当断则断啊!)
F.注意项目的商业案例。(商业价值优先,就是值不值钱呗)