经历了Alpha这一轮的狂轰乱炸之后,我深深的感到了软件工程这种开发模式的可怕之处。
为什么这样说呢?我将分如下两个方面来阐述
1、 软件开发的复杂性:
面向对象的编程思想已经深入我们的骨髓。这种思想的好处在于我们可以方便的实现各种接口。尤其在软件工程团队开发过程中,开发人员分模块在各自的战场上战斗数天之后,可以很容易的整合在一起,因为我们有好多好多定义好的,如此好用的接口。我们 做的只是把它们拼接在一起。
然而事情真的像想象中那样简单吗?
并非如此!
为何现实与理想相悖?开发人员拿到自己的任务之后,将进行为期一天,甚至数天的封闭式开发过程。作为计算机系的学生,想必我们都经历过被“理想”扇耳光。这是什么意思呢?在动手敲键盘之前,我们信心满满,图绘好了整个工程的蓝图。然而,当真正着手 去做的时候,我们往往会发现蓝图是需要被修改的,因为“当初”的我们,没有遇到“现在”的问题。
团队开发当然会遇到这样的问题,但是我们的开发人员都各自进行着为期一天,甚至数天的敏捷开发。难道遇了一些小问题就要停下来开个会讨论一下怎么办吗?这显然会严重拖慢开发进度。所以我们选择进行一些必要的小修改,之后的事也就之后再说了。
当开发人员拿着各自的模块,准备进行整合的时候,却发现这跟当初说好的不一样啊。我们当初设计的东西,和做出来的东西,会有很大的出入。这就增加了软件整合的难度,而且运气好,也只是增加了那么一点难度,运气不好的话,整合可能要比重写都要难(对 于一个小规模工程来说)。
我们在开发过程中,当然也遇到了这种问题。实话实说嘛,真的有点难解决。毕竟相比于这样的开发模式,我们暂且还没找出更好的。
2、 软件工程开发的可行性:
如果要让我给软件工程的团队开发模式打一个分数来确定它的可行性,满分10分,恐怕我只能给6分。
为什么是这样?因为我还是个学生,而我的boss,我的老大,是老师。
软件工程中的开发思想,起源于现代开发公司。学院给学生开设这门课程,我猜想,是想让学生提前体验一下公司的开发方式,提早适应社会,理解团队开发与个人写个小程序的区别。我很赞同这个想法,也确实从这门课程中收获了不少。
然而这样的“移植”,我认为其中存在BUG。
原因很简单,学生比不了职员,老师更是比不了老板。因为能约束学生的除了分数之外,就只剩下自觉性。而能约束职员的,除了有了它就不用割肾买Iphone的奖金外,还有掌握在整个团队以及老板手中的,对每个人是去是留的生杀大权。
在公司的开发团队中,消极怠工的人他们可以选择将他踢出。而在学校的开发团队中,消极怠工的人我们只能选择忍。因为同学情不比同事情。
在公司的开发团队中,我们可以选择有能力的同事组队。而在学校,我们完全不能保证队里的每个人都是具备一定能力的。而当这类同学表现出能力不足时,只能将任务转给有能力的同学。这样在无形中,给部分队员就增加了压力。然而在最后分配贡献分的时 候,同学情又会起很大作用。所以“能者多劳”这四个字得以充分体现,只是“多劳者”往往要碍于面子,不好意思“多得”。