闲聊软件开发过程

软件开发过程是连续的

太多开发人员受瀑布模型的影响太深了,习惯性的将开发过程做严格的划分。这样的划分多半是自欺欺人,软件开发过程主要是靠人的思维创造,而思维过程是连续的。切断一个连续的思维过程,这可能吗?

或多或少有完整项目经验的程序员,在接到新的项目需求时,很自然就会在脑海里浮现代码实现的轮廓,剩下的活就应该是动手编码了,用个成语来形容它就是“顺 理成章”。软件开发过程也应该顺理成章,不要再浪费力气去把这一个完整连续的过程划分需求、概设、详设、编码、验收啦。

此时,应该响起反对的声音了。

反方:“不划分怎么跟踪项目进度呢?”

项目进度是一定要跟踪的,但这样的划分对跟踪项目进度没有任何意义。因为在没有可运行的代码出来之前,需求完成度100%、概设完成度100%、详设完成度100%,这些数据根本不能真实反映项目的实质的进展,若你非要一个数据,我可以告诉你,项目进度为0。

反方:“等运行的代码出来,还用得着跟踪吗?”

当然不是等系统所有的代码出来啦,这都是瀑布模型惹得祸啊!项目可以按系统功能分批次计划实现,每个批次可视作一个迭代,每个迭代的结束点就是一个里程碑。在每个里程碑去跟踪系统功能的实现情况,此时功能实现数量占总量的比例才是有效的项目进度。


软件开发过程是迭代的

说到“迭代”,很多开发人员都会禁不住汗一把,有种近而远之的心态。还有人认为迭代就一个小瀑布,我曾经对此观点深信不疑,现在却感到惭愧不已。这种观点只能说明那个人还是没有打破瀑布的惯性思维的框框。

下面这个图相信大多数人都没有见过,即使眼熟也不见得看得懂。接下来,我们就来聊聊这个图。


这个图是RUP( Rational Unified Process)的一个核心概念图,它诠释了RUP提倡的过程精髓。图解如下:


  1. 图的横轴表示项目的生命周期,也就是时间轴;
  2. 横轴上划分了四个阶段,每个阶段又会有1~N个迭代,迭代个数的多少视阶段工作进展而定;
  3. 图的纵轴罗列了项目中可能实施的工作流程;
  4. 每个工作流程都在横轴上有一个波形图,用来表示它在时间线上工作量的起伏变化。
图中四个阶段很容易让人迷惑,我这就来简单解释一下:
  • 先启阶段 - 明确项目目标和范围;
  • 精化阶段 - 确立系统架构和技术方向;
  • 构建阶段 - 大规模并行实施设计、开发、测试;
  • 产品化阶段 - 产品验收、部署、发布。
反方:“哈哈,先启不就是需求,精化不就是设计,构建不就是编码,产品化不就是测试,这就是挂羊头卖狗肉,还是个瀑布”

“...来呀,把他给拖出去阉了...对付这类中毒太深的人,必须斩草除根!”


在RUP中,需求、设计、编码与测试不再是过程阶段,而是工作流程,从上图已经明确表明这些工作几乎存在于生命周期的每个阶段,只是不同的阶段工作量有多 有少而已。每个阶段的目标不一样,工作的侧重点自然不同,但上述四个工作流程却一个都不能少。通过各个工作流程的配合,实现阶段目标的演进,最终实现产品 化。

对事物从认知到理解,是一个由抽象到具体的演化过程。软件开发也是一样,起初是一些表象和问题,经过第一次迭代破除了表象和一些问题,但又产生了新的问题,在经过第二次迭代解决了第一次的问题,不过也会产生第二次的问题...

这样反反复复,从二维的角度看好像是原地踏步,但从三维的角度看,在理解事物本质的纵向上我们却又了很大的进展。项目范围是在一段时间内是相对稳定的,那 么迭代的周期也是固定。可从宏观上看,这个迭代是会持续下去的,就像office从97到2007,十年历经了多少迭代啊!迭代可以结束,有两种办法, 1)限定项目范围,这样问题域是有限的;2)终止项目。



收尾

再不收尾,估计没几个人看的下去了。不好意思,天马行空了一把,没办法,正如前文强调的
引用:
切断一个连续的思维过程,这可能吗?
还请大家勉强接受这个现实吧
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园悬赏任务平台对字典管理、论坛管理、任务资讯任务资讯公告管理、接取用户管理、任务管理、任务咨询管理、任务收藏管理、任务评价管理、任务订单管理、发布用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行校园悬赏任务平台程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。校园悬赏任务平台的开发让用户查看任务信息变得容易,让管理员高效管理任务信息。 校园悬赏任务平台具有管理员角色,用户角色,这几个操作权限。 校园悬赏任务平台针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理任务信息,管理任务资讯公告信息等内容。 校园悬赏任务平台针对用户设置的功能有:查看并修改个人信息,查看任务信息,查看任务资讯公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看任务,删除任务操作,新增任务操作,修改任务操作。任务资讯公告信息管理页面提供的功能操作有:新增任务资讯公告,修改任务资讯公告,删除任务资讯公告操作。任务资讯公告类型管理页面显示所有任务资讯公告类型,在此页面既可以让管理员添加新的任务资讯公告信息类型,也能对已有的任务资讯公告类型信息执行编辑更新,失效的任务资讯公告类型信息也能让管理员快速删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值