关于软件开发流程规范,有感于最近做技术顾问(一)

文/何其甚

2018年过年的前几天,有个老朋友找到了我,说是有个互联网软件项目开发了大半年没有开发完成要我帮忙去看看。当时听到感觉这里面事情肯定少不了,因为一个普通的正常的软件开发项目很少会超过两个月,更甭提开发了大半年。

抽一天时间和老朋友一起去见了项目方。项目方公司是个新公司,没有经验丰富的技术人员,但是老板着急要做这个互联网项目。刚开始的时候四处找开发公司,担心会出现各种开发过程中的问题,最后好不容易经过熟人找到了一家开发公司A,以为是熟人介绍的公司没什么好担心,然后匆忙就开始了开发。开发了一个来月,公司看软件开发成果,结果可想而知与老板所想所需的功能大相径庭,本来里面就需要的一个辅助功能(网上商城)当成了主体功能。老板看后自然是十分不满意,于是继续找下一家开发公司,最后好不容易又找到了一家,是一家校企合作企业。鉴于前面的教训,老板指定了专门的需求人员,为了方便管理便将开发人员划归公司所有,承担员工工资,同时开发公司负责人也打保票绝对包您满意。然而还得说然而,项目拖了大半年一直到现在也没有开发完成。老板最后着了急,拖朋友说赶紧找个技术懂行的,能给我们做技术顾问的,给看看到到是什么问题。

不知道怎么七拐八拐,他们找到了老朋友,老朋友就找到了我。到公司后,老板亲自接待了我们,将项目的来龙去脉介绍了一下,然后对我说以你们专业技术的角度快给我分析分析到底是哪里出了问题。我说这个项目就从当前我了解到的内容看,多半有需求描述不清楚的问题,需求不明确,不知道有没有需求文档,可以给我看看,再有应该就是过程控制涉及技术管理工作不够,其中可能还有开发人员能力问题,我现在不大好判断到底是哪里出现了问题,给我点时间进入你们项目让我好好看一看了解一下,包括要了解一下开发人员具体情况。老板当场答应,并说先预支一些顾问费用,等项目上线立即结算剩余费用。因为马上要过年了,所以工作接触只能安排到了年后。

过完年后,我如约到了公司,开始进行项目梳理。

进入项目,首先得到第一个消息是项目开发很快就能完成,但是并不知道按功能需求已经完成了多少,还有多少没有完成,估计汇报工作进展一直就是这个样子,要知道这个样子的开发进展工作报告基本是句废话,有经验的都知道在催促开发团队时会经常得到这样的答复,得到这个答复感觉真的项目很快就能完成了,其实不然,其中可能不少问题被隐瞒。得到这样的答复时候,不用纠结是否有隐瞒(为什么不用纠结看完全部你就会明白),请一定记住要反问一句具体开发完成时间。开发进展工作要有个时间点,哪怕是个不准的时间点也没关系,但是一定要有,开发跳票是常见的事情,但是不能因为有跳票,就不能确定一个完成的时间点。因此我当场要求要给出开发完成时间点。开发团队给出了开发完成时间点,然后我说,开发完成后你们要先自己内测,内测做好BUG记录,修改完内测BUG要标注修改结果、谁修改的、修改时间和谁检测的,最后提交内测文档,然后召集所有相关人员进行一次成果演示,具体最终内测完成时间,请开发负责人考虑后当天给我。

很好,开发负责人在当天下午就给出了我内测完成时间。到现在我有了两个时间点和一个内测时长,功能开发完成时间点、内测完成时间点和内测时长。将时间做好记录,向老板及相关同事进行了说明,说明的时候一并说明完成时间只是开发预估的时间可能最终时间还会有出入,但控制这个时间大体是这个时间段。

开发时间确定后,我需要了解具体项目开发的功能有哪些,它到底有哪些开发难度,说不定里面有一个说起来比较容易但是开发起来比较难的技术点,因此我需要项目需求文档。要知道项目需求文档可是项目开发的最重要依据,不仅仅是技术开发需要确定程序流程以及参数的出处,还是最终项目的验收依据,要是没有需求文档或者没有和当前项目同步的需求文档,结果可想而知。当我提出要完整需求文档的时候,所有同事都有些面露难色,说没有完整的需求文档, 只有早期的一个文档,还不完整。这个结果其实在我预料之中,项目开发过程中最常遇到的第一个难题就是精准需求,没有精准需求,而只是一个想法就要去做一个项目,这种做软件项目的想法真的很危险,这也是很多项目开发周期长的通病。因为只是一个想法,不是精准需求,一旦进行开发发现逻辑不通,最常出现的问题就是需求一日三改,开发在一个功能开发上反复修改,这种项目要是能正常完成开发简直见了鬼了。

好吧,没有完整需求文档。我说把所有现在有的开发相关文档都给我,包括需求文档、程序概要设计文档或者程序详细设计文档和数据库设计文档,如果还有其他相关记录文档也一并给我。很快文档给了过来,需求文档真的很简单,里面的描述几乎都是想法描述,很少见到定性定量描述,真的是够难为开发怎么开发的,可以想象的到开发过程中一定打了不少嘴仗;数据设计文档,同样也很简单,就是数据库导出的表格,一些字段描述都没有,这个还好,我最担心就是数据库文档不是现在开发进行中的文档,有些字段变化也可能没有。

后面如何进展感觉真有点难度,感觉软件开发过程中坑都要踩一遍,困难也得继续,一个一个梳理吧。

今天先写到这里未完待续。

推荐阅读更多精彩内容