提高软件开发效率的有效手段是一次做对,一次做好,不返工,追求交付零缺陷的目标。“对”是没有错误,符合需求,“好”是没有坏味道,易于修改。“做对”保证了产品的外部质量,“做好”保证了产品的内部质量,这样可以减少软件缺陷、需求变更带来的返工。返工可能发生在生命周期的早期,也可能发生在后期,或者是交付以后,缺陷越早发现,越早解决,返工的工作量越少。有哪些手段可以保证不犯错,少犯错,及时纠错呢?

  1、需求阶段

  需求调研:

    要访谈客户、终用户与间接用户;

    要访谈高层、中层与底层的用户;

    要准备好问题单;

    采用原型法启发客户需求;

  需求描述:

    用户故事描述用户需求;

    采用用例法描述功能需求;

    当用户无法提出非功能性需求时,定义定义非功能性需求的缺省值;

  需求确认:

    采用多种方法确认需求;

    采用需求交底、逆向培训、现场客户等方法确保需求沟通的一致性;

    建立需求沟通的平台,确保需求的沟通能传递到每个相关人员;

    在需求阶段开始编写系统测试用例,验证需求的可测试性;

    建立需求与设计、代码、测试用例之间的跟踪关系;

    用户、开发、测试人员参与需求的评审;

  需求变更:

    基于RTM进行需求变更的影响分析;

    需求的变更要通知到相关人员;

    对于需求的变更采用结对修改的方法;

  人员:

    对需求人员进行需求工程的专题培训,要求需求人员掌握需求工程的基本知识,具备基本的技能。

  2、设计阶段

  需求理解:

    和需求人员对需求的理解达成一致;

    对需求的拆分、细化,功能的设计要得到需求人员的认可;

  设计:

    要建立设计到需求的跟踪矩阵,确保设计的完备性;

    采用结对设计的方法确保设计的正确性;

    需求、设计、开发人员对设计进行技术评审,识别设计中的缺陷;

    对设计人员进行培训、上岗资格认证,要求设计人员掌握架构设计、设计原则、设计模式、数据库设计、界面设计的方法;

    建立评价设计优劣的准则,包括类的设计、算法设计、数据库设计、界面设计的准则;

    对于非功能性需求给出缺省的解决方案;

    在设计中采用设计模式提高设计的合理性;

    对于界面的设计尽早进行确认;

    接口测试要早设计、早实现、早测试;