程序员做需求时容易忽视的若干问题

Posted 楚兴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员做需求时容易忽视的若干问题相关的知识,希望对你有一定的参考价值。

程序员大部分时间都在承接一个个的需求,在做需求的过程中,有一些问题是我们容易忽视的,究其原因,主要是在做需求的过程中缺少思考,或者思考不够全面。而思考的缺失,正是导致部分人所说的“做业务需求没有成长”的主要原因之一。今天主要从研发流程中重要的几个阶段出发,跟大家谈谈做需求的过程中有哪些是我们容易忽视的问题。

需求分析1

PM是我们的需求的最主要来源,在需求分析阶段,需要避免的问题是:一、没有理解清楚需求细节,而直接进入后续的方案设计和开发阶段;二、需求里说怎么干,我们就怎么干。

问题一容易造成的结果是,功能开发上线完成了,结果发现不是PM想要的,导致不必要的返工成本。另外,由于没有真正理清需求,也有可能导致项目的整体架构设计产生重大偏差,从而给后续的架构迭代留下隐患。

问题二容易造成的结果是,PM想做的功能点都做好了,却只是解决了一个本就不存在的问题,导致人力的浪费。特斯拉进行生产线自动化的时候,有一个零件的自动化安装总是出问题,特斯拉的工程师为了优化这个自动化流程,投入了大量的资金和精力。 后来马斯克问他们的技术人员,为什么需要这个零件,结果发现大家居然并不清楚。最后证明其实在电动车上,根本不需要这个零件。

为了避免以上两个问题,当我们接到PM需求时,应该详细地了解需求的功能细节,以及这个需求需要解决的问题是什么,最终是服务于什么目的,是否有助于达成业务的总体目标。以电商行业为例,我们应该思考所做的需求是否有助于提升商品的导购和流通效率,是否能帮卖家多挣钱,是否能帮买家更快找到想要的商品,是否能帮助平台提升竞争力。

方案设计

在方案设计阶段,需要避免的问题是:“这个需求很简单,不用走方案设计和评审环节了,我直接开发吧,很快就可以上线了”。有些需求可能只是简单的修改一两个接口,或者只是对现有的流程做部分调整,这往往容易让我们过于自信,认为直接开干也不会有问题。其实,在我们真正理清楚方案之前,它并不简单,而确保我们真正理清方案的方式,就是按照部门的方案设计模板,把技术方案写出来,对照CheckList,逐一完成各个检查项。

所谓磨刀不误砍柴工,在方案设计阶段多花一些时间,可以帮助我们建设出更加合理的系统架构,让我们在技术架构上不断积累资产,资产的不断增值会让我们在能力建设和研发效率等方面长期受益。相反,如果我们忽视了方案设计,则会不断地积累技术债,后续需要投入很多精力去还债。

代码开发

在代码开发方面,需要避免的问题是:“对工程质量要求低,认为能实现功能就行”。实际上,代码也是一种语言,它不仅用于人与机器之间的交流,而且也用于人与人之间的交流。逻辑复杂、晦涩难懂的代码可能会导致以下问题:一、隐藏bug,而且往往很不好改;二、后续有功能迭代时,逻辑修改非常复杂。

逻辑的正确性,是我们编码时的最低要求,编码时应该尽可能的追求信、达、雅。在编码方面主要给两点建议:一、遵守公司和部门的研发规范,包括分支规范、代码规范等;二、写代码时要多思考自己的写法是不是最优的,还有没有更好的写法。

服务上线

在服务上线阶段,需要避免的是观察不细致,想当然的认为没问题,结果到最后导致了一个大问题。在上线阶段,我们应该加强检查,从多角度对服务进行观察,包括:上游角度、服务本身角度、下游角度,观察的指标,既包括错误率、时延、错误日志等通用指标,也包括业务自定义指标(应该在方案设计阶段考虑清楚后续有什么手段可以观测服务是否正常)。

值得一提的是,服务上线完成并不是结束,而是一个新的开始。我们需要采取各种手段保障服务的稳定运行,并不断发现其中的可优化点,推动服务SLI稳步提升。


  1. https://chuxing.club ↩︎

以上是关于程序员做需求时容易忽视的若干问题的主要内容,如果未能解决你的问题,请参考以下文章

程序员做需求时容易忽视的若干问题

做需求不是做零件,而是做细胞

企业最容易忽视的七大安全错误

json文件操作中遇到的小问题(容易忽视的地方)

需求改进&系统设计

容易忽视的十大SQL优化方案!