从程序设计到软件工程

  在大二下学期的面向对象建模课上,我和其他3人作为一个团队完成了一个软件作品——一个叫“马尼拉”的小游戏。我们的开发模式是不折不扣的“混沌式”,“全攻全守式”,从混沌中直接sprint直到大限将至、不得已砍掉诸多功能最终仓皇交差(所谓的sprint其实就是连续几晚刷夜)。虽然这次的开发的经历不算成功,但这也是很自然的,因为在此之前我们接受的编程训练全部是个人进行看似简单的命令行程序编程(C语言程序设计,java程序设计),在这些训练中我们全部精力都放在设计巧妙地数据结构和算法,和边界条件、意想不到的BUG、老师充满想象力的测试数据做斗争上。这种练习无疑培养了我们良好的编程基本功,但如何以团队的形式有效地合作,在预计时间之内完成一个实现预期功能的应用软件,这方面我们并没有知识和意识。

  终于到了这学期,我们要学软件工程了。尽管老师讲述地尽可能的通俗易懂,但由于我太菜了,课上的信息量比较大。老师推荐我们读他的《移山之道》,课后我在图书馆借了一本,准备接下来奋力苦读。可一翻开书,看到通俗的语言、小说式的风格、穿插的漫画的我顿时傻了。没看过这样的专业书啊,闹哪样?但随着我阅读的进行,我从这本书中学到了很多实实在在的软件工程的知识,并且我能够快速的理解这些知识也受益于此书通俗易懂的风格。老师的课件也延续了通俗有内涵的风格,看来老师就是这风格。

  从阅读中我学习到了“敏捷软件开发方法”,它是现代软件开发的一个重要概念。敏捷不等于无计划胡来,不适用于所有领域,敏捷软件开发方法是针对目前的软件开发过程的特点而产生的概念,它强调信息的及时传递、高效的沟通、计划随时能够应对变化、可试用的软件强于完备的文档。《移山之道》书中详细地介绍了敏捷开发模式的方法和工作流程。

  我以为,从软件工程早期的“瀑布模型”,到现在提倡的“敏捷流程”,由“紧”到“松”,是工程方法理念的一次回归。然而,敏捷开发理念并不是原始的由于团队水平有限而产生的“走一步看一步”“摸索前进”的想法,而是针对于当今软件开发的特点。正如小孩子瞎划拉不同于“大师”的抽象画作,我担心的是,对于我们这些对严谨的软件开发方法尚不能掌握的菜鸟,直接上“敏捷”会不会东施效颦、邯郸学步?“敏捷”找不到点上,最后“敏捷”出来跟啥都没学一样。尽管现在的敏捷开发流程有着一套完备的、理论化的工作流程,菜鸟很难在短期的学习中理解并真正的进行这些工作,但《移山之道》这本书以王屋村的开发团队为例,带我们从一种简易的工作流程开始,循序渐进地了解掌握敏捷开发工作流程的全部。我们现在就如同这些徒有移山之心的村民们,《移山之道》介绍的方法对我们的团队项目的开发有很大的意义。

http://www.cnblogs.com/xinz/archive/2011/10/07/2200511.html中字面错误:

从程序设计到软件工程

“最终产品知道最后才出现”→“最终产品直到最后才出现”

你可能感兴趣的:(程序设计)