让不难降为简单

商业软件开发的过程,一般来说是个产品定制的过程,

这与一向接受标准化、量产化教育的编码工作从业者而言,这不得不说是工作中遇上的最大的矛盾(以下简称矛盾),

即使这些定制化的开发内容,绝大部分工作都并不具备多少难度。


而这个矛盾也是导致不少商业软件开发成本不同程度上涨的根源(

  成本上涨,是基于一些非常原始而大局上的的成本估计,

  这个成本各式各样,包括人力、时间、debug等,详细不啰嗦,您懂的)

于是,商业软件开发的成本控制的本质,就在于解决矛盾的程度,因此,比起技术上的问题,这个命题更倾向于工程学上的问题。


在这里,我们先假设2个前提:

1、需求已经处于不可能推翻任何细节的情况,只有需求方可以对需求做任意增删改,实现人员只需要按需求实现;

2、整体需求和每一个细节,都不存在任意技术障碍,手上已经有足够的工具和环境去实现。


然后,按照一般的小团队工作流程(或者在稍大规模的团队中也是这样),我们会:

1·按需求块划分,指定各个块的实现负责人;

2·读需求;

3·编码;

4·debug循环;

5·交付。

(请原谅上面说的太随意,也不一定每个团队都是这样的流程,但是在这里用太多术语也没多大意思)


这个看似简单的流程,其实就是一个定制化和标准化的缓冲(互相妥协)结果,我个人理解为:

1·拆分定制化的需求,方便进入实现流程;

2·定制化的需求分析,通过现有工具和技术,指定实施方案;

3·通过基于量产化的技术和标准,实现需求;

4·需求校对;

5·需求完全实现。


而冲突最激烈的地方,一般会认为是2~4的过程,但是从我个人角度来看,1已经是这个矛盾冲突的开始了,

因为,我们从一开始就没有明确界定好,到底是彻底标准化,还是彻底定制化,而仅从成本的角度看,彻底定制化显然不是接下来的选择,

于是,接下来的解决方案,就从彻底标准化方向来探讨(这里先不讨论需求规模,见谅):

1·读需求,统筹性地重构需求(不改变任意需求内容),例如让需求的文档结构变得更适合人阅读和分析,

   并且容易与制作过程、验收过程结合,当然,进一步上,可以抽象出需求间的关联性和共性;

2·存、取需求,把完成重构的需求,保存到需求历史中,进一步上,可以与历史需求进行校对,继续抽取关联性和共性;

3·在重构完毕的需求基础上再分配任务;

4·debug循环;

5·交付。


用例:

在某一个版本里,需求有:

1·增加一个数据管理系统,该系统的数据和以往数据表都不兼容,需要独立制作,该系统带有新界面;

2·对某一个已有界面进行重新改版;

3·对某个已有数据流程插入新的数据项和数据存取需求,该操作会导致流程上较大幅度的更改,并需要更改表结构和传输结构;

4·对某几个已有界面的细节调整;

5·对某几个已有计算公式的修改。


这个时候,我们不必急着把上面的条目划分给哪几个人去负责,而是把这些条目及其细节内容展开,我们可能会发现:

·3的修改结果或许刚好和1的数据结构相似(甚至相同);

·4的调整内容里,或许会和2共享一些控件、布局;

·3的新流程和已有的某个系统(已完成的需求)流程非常类似;

·5的几个计算公式让本来一行的函数膨胀成几行,而且几个公式都很有个性,无法公用;

·4的需求上 ‘看起来’ 微小的改动,里面需要进行大大小小的手术;

·。。。

然后,对该需求进行较深度重构的处理后,用例中的需求则会化为另一种表达方式(这也是重构的目标之一)

·添加/修改出 一种数据处理流程,包括数据表、数据结构、协议的更改,

 至于具体的数据如何,可以根据需求细节再填充;

·一些界面需要使用一类新的布局、控件,这些布局需要制作/修改出来,控件需要生成;

·公式处理模块需要添加新的成员,原本嵌在其它流程代码里面的公式,现在要改为从公式模块取用;

·。。。


是的,这虽然是我随便杜撰出来的情况,但是实际工作过程中,何止万千,

如果开发团队在工作过程中,不对需求进行较为深度的加工,而且直接按照条目分派任务,

上面这些情况只会引起一次次的重复劳动、重复思考,更甚至是重复代码,重复的bug。


虽然在各种 ‘重复’ 的锻炼下来,会让开发人员变得更勤快,更谨慎;

而在这里我提倡的模式,或许会让大部分开发人员成为正式的流水线上的工人,

更可能这只是一种理想化模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值