读《软件需求最佳实践》有感
自从购入徐峰老师的《软件需求最佳实践》以来,断断续续看了差不多有3个月,期间一直在负责一个项目的需求和架构,在需求上从零开始使用了SERU框架,现在项目第一次迭代趋于结束,对于SERU框架也有了一点或多或少的认识。
说起来接触这本书多多少少是因为另一本温昱老师的《一线架构师实践指南》的影响(准确说是直接通过购书网站的相关书籍链接过来的),两本书都有很强的方法论味道。温老师的书还是有些吝啬笔墨,读完之后会让人觉得每一处都讲了要如何做,但是在真正去做的时候却还是发现有点无从下手。相比起来,这本徐老师的软件需求做得很是到位,做为一本指导“实践”的书,不仅提出了一套完整的方法论,而且对每个环节也做了仔细的阐述,既有宏观架构,又有细节描述,可谓是软件需求上的cookbook。在项目开始的时候甚至都没有完整的读过一遍全书就开始按照书中所述开始需求定义、细化,做到哪里就读到哪里,这样鲁莽的行动导致的结果竟然还算得上不错。
由于项目性质属于预研类,所以直接从客户那里能获取的需求屈指可数,同行业甚至都没有一个完整的概念。这样的需求做起来即是无比轻松,同时也可以是压力山大。由于没有客户方压力,所以需求也就无所谓对错,同时也由于没有客户方,需求捕获变得异常困难。总结这次项目的需求来源,有公司分管技术领导,技术专家,其他同行业产品和其他行业产品。需求没有一个统一的分类与来源,这就造成准确捕获异常困难——谁也不知道需求是否已经捕获完整。所以在零散的需求定义过程草草结束后,将软件需求的重点放在了分析和建模上,这同时也是这次项目的一次实验,要探索一条符合公司现状的软件开发流程,需求作为起点,自然处在一个很重要的位置。总体说来,由于应用了SERU,这次需求分析的收获如下:
- 软件需求分析过程清晰,包括节点和产出,都能够从书中找到并顺利应用于实践中。
- 形成的文档比较全面,虽然还是套用ISO,但都做了对应的修改。
- E和R的区分使得不同类型需求分析更加有的放矢,更加准确。
- 关于“用户界面是设计“的阐述终结了公司关于要不要在需求文档中描述用户界面细节的争论,决定增加交互设计文档和用户界面设计文档。
在收获同时,也有许多困惑:
- 有些应用难以归类,说不清楚到底是一个事件还是一个报表类。
- 整个SERU实践起来需要的时间和人员较多,对小项目来说需要做一定的修改和裁剪。
- 对于领域类的组织上,E类和R类需求有所不同,而这造成了一定的困扰。
- 实践中,拼音的组织方式并未受到很好的效果,而且相比英文,更易造成错误。
总体说来,这本《需求实践》还是具有很好的指导价值,值得一读。