为什么要写软件功能规格书?
1,提高研发效率:能够在开始研发之前设计好软件,在设计的时候就暴露所有可能的逻辑问题可用性问题从而调整,而不是在研发的时候,从而大幅度提高效率,降低研发损耗。
2,提高对合作伙伴的沟通效率: 便于设计,测试,运维,客服,运营等等合作伙伴来学习和了解软件,而不用把所有内容都用一遍同时还要打扰 程序员不断追问,才知道这是什么,该怎么用,有什么效果。而合作伙伴会面向用户,告诉用户这个软件该怎么用。
3,没有软件功能规格书,就无法制定进度表。
什么是规格书?
简单来说就是说明这个软件是做什么用的。
软件功能规格书是一个正式文档,它用来为软件开发者详细描述一个产品的潜在功能,表现以及与用户的交互性。当开发者写程序代码时,功能规格说明书是一个指导纲领和持续的参考书。
造楼房(非狗窝)和桥梁需要蓝图,出门旅行要看地图,即使没地图,好歹也有一些生存技巧作为指引,比如有罗盘和北极星辨别方向。然而,没有了这些用来指引的东西来做事情,是赌博。是生,是死,听天由命。
这篇文章不是给赌徒看的,目标读者是软件从业者,包括那个不可或缺该死的码农,还有项目经理,测试,产品狗等若干人等。
写过代码的人都有这种感觉,一个人写代码的时候很爽,只要把这个软件相关的所有知识装载到脑袋里,然后用某种或者多种编程语言讲这些逻辑写下来,最后神奇的事情就发生了,一个可以正常工作的软件产品开始有了生命。
随着软件的规模越来越大,一个人很难把所有的知识细节都加载到脑袋里,进入了像亚当斯密提到的钉子生产车间那样的分工协作时代。
在软件工程里,最大的成本就是沟通。具体的数据我没有,但是软件开发过程中,人的成本之重要已经是共识,人与人之间最困难的事情就是沟通,因此把沟通成本放大也不会偏离正确的方向。
然而如何保证高效的沟通,是个世界性的难题,但也绝不是不治之症。
首先,要有聪明的人,这是前提条件,因为除了软件本身的知识技能以外,还要掌握软件本身所解决问题的所在行业的知识技能,毕竟软件大多数情况下是不会孤立存在的。因此软件从业者需要能够快速领会当前软件所需要的行业知识。
其次,要认识到软件开发成本和维护成本的关系,业界共识是维护成本远大于开发成本。
最后,要保证相关知识的传承,既然软件需要长期维护,那么人员更迭是必然的,要让后来者快速掌握当前软件的状态。
看完以上几点,读者们应该也猜到了:软件功能规格书很重要。
然而前几年,一些软件工程的方法论给大家一种误导,说文档不重要。其实人家说的是减少不必要的文档。
那什么文档重要呢? 重要的文档有很多种,这里说的是其中之一:软件功能规格书
在本篇文章的摘要里是这样描述功能规格说明书的。
软件功能规格书是一个正式文档,它用来为软件开发者详细描述一个产品的潜在功能,表现以及与用户的交互性。当开发者写程序代码时,功能规格说明书是一个指导纲领和持续的参考书。
功能规格说明书就如同建造大厦的蓝图,野外探险的指南针一样。不可或缺。
最后问一下,你的团队里有软件功能规格书吗?
本文出自 “程序员随想录” 博客,请务必保留此出处http://cxykz.blog.51cto.com/11696626/1787418
原文地址:http://cxykz.blog.51cto.com/11696626/1787418