银弹
银弹是Brooks在他最著名的随笔文章《No Silver Bullet》中提出的问题,在欧洲中世纪的传说中,有一种叫“人狼”的妖怪,就是人面狼身。它们会讲人话,每逢月圆之夜,就能随意或身不由己的从人身变为狼身。变形之后,它会难以自制的想吃活人或动物生肉,并且会对着月亮长嚎。按照民间传说的说法,对“人狼”用一般的枪弹是不起作用的,普通子弹都伤不到也打不死它,只有用赐福过的一种银子弹能杀死狼人。人狼最怕银制的东西,银制品会使人狼感到强烈的灼痛感,灼痛感比火焰强,液态硝酸银可以使他们丧失战斗力。而在软件工程中,软件危机出现的时候是否会有银弹出现呢?Brooks在他的文章中写道“没有任何技术或管理上的进展,能够独立地许诺十年内使生产率、可靠性或简洁性获得数量级上的进步。”也就是说银弹是不存在的。但是我们却也不能为此而感到悲观,即使银弹不存在,铜弹,铅弹还是有可能存在的。
大泥球
大泥球,是指杂乱无章、错综复杂、邋遢不堪、随意拼贴的大堆代码。大泥球对于我们的团队开发来说是很致命的。在我之前的开发我一直在尽力避免大泥球,即使是我用别人的代码,在我使用他之前我会将其重新编成自己的风格,同时在代码格式和变量命名方面我也是有自己的统一规范。在这次的团队项目中我们的团队进行了前期的规划,规定了一下代码风格和要求,在一定程度上避免了大泥球。毕竟我们很多的开发部分都是几个人一起开发的,要是没有统一的开发规格,队员之间的协调不是很好,而对最后将我们完成的成武合并起来也将会是意见比较复杂的事情。
大教堂与集市
大教堂与集市是由Eric S. Raymond在其《大教堂与集市》一书中提出的。Eric S. Raymond作为开源运动的旗手,他的这本书自然是和开源有关的。大教堂是指代码的开发过程的代码是不公布的,但是代码的最终版本是公布的。而集市是指代码开发过程中的版本是公布出来的,这样便可以有很多人参与开发,就比如说Linux。
我们的团队自然是大教堂的方式。虽然少了别人对我们的建议提高,但是这样也能够让我们的代码控制在我们团队的手中,毕竟我们是年轻的开发团队···
瀑布模型
瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。其实在我之前的理解之中,软件的开发模式几乎只有这种模式,然而通过软件工程,我认识到了软件的开发模式还有迭代模式。这种模式将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。他的优点是我们只需专注于当前阶段,不用考虑太多其他阶段,而当一个阶段完成之后就只需关注后续的阶段了。然而这样的缺点也是明显的。那便是每一个阶段必须做到没有误差,否则改动就比较复杂。
总结
在这次的团队开发中,我们使用了迭代开发模式,目前是第一轮迭代,我们每日的站立会议,共同拥有代码等的敏捷开发思想对我们的开发是很有作用的。同时我们的团队分工也让我觉得开发的 效率调高了很多,我们只需要专注于自己的部分。软件工程的这些方法然我学到了不一样的开发模式,感觉很新鲜,同时也很有用。