开发者必备:软件功能规格书的重要性

news/2024/7/7 5:57:54

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

为什么要写软件功能规格书?

  1,提高研发效率:能够在开始研发之前设计好软件,在设计的时候就暴露所有可能的逻辑问题可用性问题从而调整,而不是在研发的时候,从而大幅度提高效率,降低研发损耗。

  2,提高对合作伙伴的沟通效率: 便于设计,测试,运维,客服,运营等等合作伙伴来学习和了解软件,而不用把所有内容都用一遍同时还要打扰 程序员不断追问,才知道这是什么,该怎么用,有什么效果。而合作伙伴会面向用户,告诉用户这个软件该怎么用。

  3,没有软件功能规格书,就无法制定进度表。

02f4c975a726416d887f7917a7d079ef_th.jpg

什么是规格书?

  简单来说就是说明这个软件是做什么用的。

  软件功能规格书是一个正式文档,它用来为软件开发者详细描述一个产品的潜在功能,表现以及与用户的交互性。当开发者写程序代码时,功能规格说明书是一个指导纲领和持续的参考书。

  造楼房(非狗窝)和桥梁需要蓝图,出门旅行要看地图,即使没地图,好歹也有一些生存技巧作为指引,比如有罗盘和北极星辨别方向。然而,没有了这些用来指引的东西来做事情,是赌博。是生,是死,听天由命。

  这篇文章不是给赌徒看的,目标读者是软件从业者,包括那个不可或缺该死的码农,还有项目经理,测试,产品狗等若干人等。

  写过代码的人都有这种感觉,一个人写代码的时候很爽,只要把这个软件相关的所有知识装载到脑袋里,然后用某种或者多种编程语言讲这些逻辑写下来,最后神奇的事情就发生了,一个可以正常工作的软件产品开始有了生命。

  随着软件的规模越来越大,一个人很难把所有的知识细节都加载到脑袋里,进入了像亚当斯密提到的钉子生产车间那样的分工协作时代。

  在软件工程里,最大的成本就是沟通。具体的数据我没有,但是软件开发过程中,人的成本之重要已经是共识,人与人之间最困难的事情就是沟通,因此把沟通成本放大也不会偏离正确的方向。

  然而如何保证高效的沟通,是个世界性的难题,但也绝不是不治之症。

  首先,要有聪明的人,这是前提条件,因为除了软件本身的知识技能以外,还要掌握软件本身所解决问题的所在行业的知识技能,毕竟软件大多数情况下是不会孤立存在的。因此软件从业者需要能够快速领会当前软件所需要的行业知识。

  其次,要认识到软件开发成本和维护成本的关系,业界共识是维护成本远大于开发成本。

  最后,要保证相关知识的传承,既然软件需要长期维护,那么人员更迭是必然的,要让后来者快速掌握当前软件的状态。

  看完以上几点,读者们应该也猜到了:软件功能规格书很重要。

  然而前几年,一些软件工程的方法论给大家一种误导,说文档不重要。其实人家说的是减少不必要的文档。

  那什么文档重要呢? 重要的文档有很多种,这里说的是其中之一:软件功能规格书

  在本篇文章的摘要里是这样描述功能规格说明书的。

  软件功能规格书是一个正式文档,它用来为软件开发者详细描述一个产品的潜在功能,表现以及与用户的交互性。当开发者写程序代码时,功能规格说明书是一个指导纲领和持续的参考书。

  功能规格说明书就如同建造大厦的蓝图,野外探险的指南针一样。不可或缺。

  最后问一下,你的团队里有软件功能规格书吗?

转载于:https://my.oschina.net/proginn/blog/680471


http://www.niftyadmin.cn/n/4446330.html

相关文章

Tensorflow 同时载入多个模型(转)

https://blog.csdn.net/jmh1996/article/details/78793650 https://blog.csdn.net/lc013/article/details/84202901 (最后面的四个链接)

《SharePoint 2013 应用开发实战》目录

博客地址:http://blog.csdn.net/FoxDave 第 1 章 1 ◄SharePoint概述► 1 1.1 SharePoint的发展历程 1 1.1.1 SharePoint Team Service 1.0和SharePointPortal Server 2001 2 1.1.2 Windows SharePoint Service 2.0和SharePointPortal Server 2003 3 1…

matplotlib绘制平滑的曲线(转)

https://blog.csdn.net/zhangpeterx/article/details/83684239

IT人论房价 (五) 央行控盘的房市

从银行的角度来看,市场上流动性不足,隔夜拆借利率上升,央行会放水会让市场上资金多了出来补充流动性,反之亦然。所以为了稳定市场,央行会不断地放水,收紧,再放水,在收紧反复&#xf…

TensorFlow教程(6) tf.Variable() 和tf.get_variable()(转)

https://www.jianshu.com/p/2061b221cd8f?utm_campaignmaleskine&utm_contentnote&utm_mediumseo_notes&utm_sourcerecommendation https://www.baidu.com/link?urlDhmnEPGXqhI9J7CLvJEX9uJ3_4Egh25Lj4GIYg5PP7mgQEfMKa42um5iXVs22Maqiyrr7zdxUsFOKDKYImeh0atWZ…

Ubuntu Android 开发(三) 使用SDK更新SDK 镜像

2019独角兽企业重金招聘Python工程师标准>>> 我们都知道Google 对于我们之间的关系来说,这是一面墙的距离。 那么作为Android 来说,我们开发Android 应用,就必须使用Android SDK ,那么保持体验最新版本的Android 当然是必不可少的…

强化学习(Reinforcement Learning)的方法分类(转)

https://blog.csdn.net/wordyang1/article/details/76557608

ABP源码分析四十七:ABP中的异常处理

ABP 中异常处理的思路是很清晰的。一共五种类型的异常类。 AbpInitializationException用于封装ABP初始化过程中出现的异常,只要抛出AbpInitializationException异常就可以,无须做额外处理。这类异常往往是需要维护人员介入分析的。 其他四个异常都在Abp…