架构拾遗(1)——新手必看!白话拆解开发模型方法论
在之前的文章里,我们从计算机的发展唠起,聊了聊软件开发模型那些事儿。不管是老派但经典的瀑布模型、V模型,还是现在互联网公司几乎都在用地Scrum、DevOps模型,都简单过了一遍。
后台有不少刚入行的朋友私信我,说自己刚毕业小半年,干软件开发也才摸门儿,看着这些“方法论”总觉得飘在天上,太空洞了,完全对应不上自己每天写代码、改bug、开小会的具体工作,越看越懵,甚至怀疑这些模型是不是纸上谈兵。
其实真不怪大家,不是我们理解能力不够,是很多讲解都太官方,没结合咱们实际干活的场景。
所以本篇文章,我就彻底放下专业术语,结合咱们实际工作中的角色、每天要做的活儿、要扛的责任,把开发模型和咱们的日常工作绑在一起讲,保证新手也能看明白、用得上,再也不觉得这些方法论是“废话”。
先从最常用的V模型入手,一步步拆明白
咱们先从大家最容易混淆、也最常用的V模型说起。毕竟很多公司,尤其是传统软件公司、刚起步的小团队,都在用这个模型,新手接触最多。
先给大家划个重点,V模型的核心就是先想清楚、设计好,再动手干,干完再一步步测。整个流程像个V字,一边是分析设计,一边是测试验证,对应得明明白白。
具体流程分为:需求分析、系统设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试。
第一步:需求分析——先搞懂用户到底想要啥
V模型的第一步,是需求分析。说句实在的,不管你用哪种开发模型,第一步基本都是干这个,就像盖房子先定图纸,总不能没搞清楚要盖平房还是楼房,就直接挖地基吧?
在标准一点的团队里,这活儿一般是需求工程师来干。收到客户的需求,比如客户说“我要一个能统计销量的系统”,或者公司内部的需求,比如产品说“咱们得加个用户登录的功能”,先坐下来琢磨琢磨。
这个需求到底要做啥、范围有多大,是只统计销量,还是还要生成报表?能不能实现,技术上有没有坑?要花多少功夫,几个人干多久能做完?琢磨完了,会写一份“需求分析文档”存起来,相当于给后续所有工作定个“总规矩”。
这一步的核心,就俩字:搞懂。搞懂用户到底想要啥。
很多时候你会发现,用户自己都没搞懂自己想要啥!比如客户说“我要一个好用的APP”,“好用”到底是啥意思?加载快?界面简单?还是功能多?他也说不清楚。
这也是为啥会有原型模型,这个模型本质就是先画个简单的界面、做个半成品,让客户先看看,看完再改,避免后期返工。
这里给新手一个小建议,用比较直白的话来说:把客户,或者提需求的产品经理,当成“不懂技术的傻子”。别跟他说“接口”“表结构”“逻辑”这些专业词,就用最接地气的话聊。
比如客户说要“统计销量”,你就问:“是只看每天的总销量,还是要分产品、分区域看?要不要导出Excel?能不能手动修改数据?”
多问几句,把模糊的需求变具体,后期能少走很多弯路。
当然,需求工程师也不是万能的。要是碰到涉及开发范围的疑问,比如“这个统计功能要对接第三方接口,能不能实现?”,就会喊研发工程师过来一起评估。要是团队比较小,没专门的需求工程师,这活儿就会落到研发负责人或者老工程师身上。毕竟他们懂技术,能判断可行性。
总结一下,需求分析做完,一定要输出三个核心结论:能不能实现(可行性)、要花多少功夫(多少人做多久)、最后要做成啥样(交付件),缺一不可。
关键提醒:开发模型≠管理模型,别死套理论
按V模型的理论来说,需求评估完,确认能做,就该进入设计阶段了。但新手一定要记住一个关键,V模型只是开发模型,管的是“怎么开发”,不是“怎么管理”。也就是说,理论归理论,实际干活的时候,还得看进度、看资源。
举个你们肯定碰到过的例子,需求评估完,预估要两个研发干一个月,但现在你们团队正在赶当前版本的其他需求,天天加班都忙不完,哪有精力搞新需求的设计?所以这种情况下,就不会马上进入设计阶段,得等当前版本的需求开发完、测试通过,腾出人手了,才会开始新需求的设计。
这也是很多新手困惑的地方,为啥我照着开发模型干活,总觉得不对劲、不顺畅?不是模型没用,是你忽略了一个软件产品的开发,不只有“开发”这一件事,还有产品管理、资源分配、进度把控这些杂事。
比如UP模型(统一过程模型),就专门加了发布里程碑的环节,把产品管理的内容融入进去了,比V模型更贴近咱们实际的开发生命周期。不过这个模型相对复杂,小团队一般用不上,新手先吃透V模型就够了。
设计阶段:先搭骨架(系统设计),再填肉(详细设计)
闲话说完,咱们接着聊设计阶段。这一步是新手最容易忽略,但最影响后续开发的环节,千万别觉得“设计麻烦,不如直接写代码”。前期设计不到位,后期改bug能改到你怀疑人生。