怎样学好软件工程?

来源:北大青鸟飞迅校区|发布时间:2013-05-04 11:15:59

  几个星期前,Bertrand和我发表了一篇简短的文章,简单介绍了我们认为软件方法需要理论指导的原因。这篇文章中,Ian Spence和我将在上一篇文章的基础上扩展开来,更详细地讨论为什么这样一个基础理论的建立能够令我们受益。

  我们最大之一的挑战:理解如何构造优秀的软件

  我们真的知道如何开发优秀的软件吗?对大部分人来说,很显然是这样的。但是我们是否知道如何交流,以及不断改进我们开发软件的方式?我们真的了解交流和分享知识的最佳方式么?就我们在之前文章中的所见而言,显然没有!

  我们站在流沙上还是巨人的肩膀上?

  你是否曾经花时间研究新的方法或实践,最后却发现它只是你已经见过无数次的某种思想的改头换面?

  你是否曾经烦恼过,每个软件开发新思路似乎都以过去的一切为代价,都与过去的一切水火不容?

  在你看来,追逐最新的软件开发趋势是否已经变得比生产优秀的软件更重要?

  你是否注意到,急着要取得进展的人们似乎丢弃了好的部分而留下坏的?他们没有从自己的经验中学习,在自己优秀的工作上更进一步,而选择将一切弃之不顾,重新开始他们认定的新事物。他们好像没有什么牢固的知识好依靠。

  这种行为可以从很多地方看出来,很多团队草率地丢弃昂贵的过程和工具的投资,甚至在尝试它们之前。每个项目都采用新方法。每次工作发生变化,在手头真正的工作取得进展前,他们必须学习新方法。这是没有效率的,人们不能从经验中学习,因为他们永远从头开始。底线是,没有什么新事物能够被适当地固定下来——即使经过几种“现代”软件开发趋势,最流行的软件开发方法仍然是规范型的瀑布开发或自由hacking。作为一个行业,我们没有什么真正可以坚守的东西,而且一切似乎没有什么变化。

  但现在我们能肯定敏捷会解决所有问题吗?

  最新横扫行业的趋势是“敏捷”。现在,我们可以很明确地说,“敏捷”运动对软件产业做出了非常积极的 [1] 贡献。它提醒我们,软件开发中,人是第一位的,也是最重要的。事实上,这不是什么新观念,但这是重要的,而且这一点似乎被以前更加技术导向的趋势所忽视,比如说面向对象和Java编程。通过展现一系列优点,敏捷宣言创造了某种强健和适应力强的东西,可以抵挡下一次趋势带来的变革风浪。[2]许多声称支持敏捷哲学的敏捷方法,却没能做到这一点,这是非常让人遗憾的。对一项将人的价值放在过程和工具之上的运动来说,这确实带给了我们很多“新”的过程和工具。其中的大部分已经显示出效率,通过将团队带回到之前完成的开发软件工作。但在重新聚焦到这上面之前,许多人已经迷失或迷茫,因为将新术语引入旧事物后,让人觉得这一切似乎是全新的。这个对旧思想的不断重新包装和品牌重树让软件开发团队的工作方式剧烈摇摆。对他们的工作和产品任意命名,而不是让人们远离浪费时间的工作,将精力重新聚焦在对高质量软件的开发上。

  即使有些方法能够像敏捷哲学一样正确、有益,但相关的信息可能会在摇摆和炒作中丢失。我们已经开始看到对敏捷的反弹,我们担心的是利益将会丢失,当早期使用者投入下一个趋势,而晚期大众则重新主张自己的权利,拒绝采纳这些显然不再流行的东西。

上一篇:高级软件工程师所积累的20条编程经验
下一篇:Java程序员学习六大要点

热门话题

招生热线: 4008-0731-86 / 0731-82186801

学校地址: 长沙市天心区团结路6号

Copyright © 2006 | 湖南大计信息科技有限公司 版权所有

湘ICP备14017520号-3

关注我们
在线咨询
嘿,我来帮您!