计划阶段的目的是确定项目目标,并且对项目完成后会是什么样产生一个高屋建瓴的看法。计划通常会伴随着可行性研究,即从经济、操作模式,以及技术要求等多方面对项目进行考察。经济方面考量的是此项目是否有足够的损益(P&L)潜力。操作和技术方面则从适应性、人力资源和其他日常事务的角度进行论证。计划阶段的成果是给项目设定其体的目标,给出时间表,并为整个系统做出预算。
在此过程的分析阶段,团队将汇集各个方面对系统功能的要求,决定项目的规模范围(在当前版本中包含哪些功能以及不包含哪些功能),并向用户和管理层征求初期反馈意见。分析阶段可以说是开发过程中鼓重要的阶段,因为只有在这个阶段,项目的各个相关方才能在预算允许的条件下最大限度地塑造系统功能。
设计阶段将系统功能的详细规格具体化,包括流程图、业务规则、界面以及日常报表和其他文档的输出格式等。设计阶段的一个目的就是将整个工程分成各个模块,并分配给各个软件开发团队,各个模块都有设计良好的接口,不同软件开发团队开发的模块可以无缝拼接起来。这种对内部计算机模块软件包的早期规范能让将来不同软件开发团队之间沟通更为流畅,项目也能得以平稳运行。设计阶段还要列出测试用例,即功能路径,这在将来会用做验证代码正确性的蓝本。
最后的阶段是实施阶段,这就涉及实际编程了。软件开发团队或者是个人程序员按照设计阶段的要求开发软件模块。开发团队先按照之前定义的测试用例对每个模块自行测试,当项目管理对整个开发的单独模块都满意后,就可以开始项目的整合工作了。整合,顾名思义,就是将各个单独的模块组装到一起,形成一个新的功能系统。
尽管计划周密的项目在帷合阶段不会遇到太大的问题,但是仍然会有剩余工作需要处理。为了保证系统不同模块之间正确沟通,可能需耍编写一些脚本,另外还可能需要开发安装包,最重要的是需要对系统进行详尽测试以保证正常运行。测试工作一般由开发人员之外的专职人员来进行。测试人员要根据设计阶段定义的测试流程认真勤勉地监控系统每个功能的运行情况,然后记录所有的“漏洞”( bugs)—也就是测试用例中预想结果与实际结果的不同之处。这些程序漏洞将被回送给开发团队来解决,随后再返回到测试团队。
实施阶段成功完成后,就进入了系统的部署和维护阶段。在维护阶段中,将解决系统中所有与预期表现不相符的问题,例如新发现的漏洞等。