这对计算机科学的毕业生是一个很好的年头,我所了解的毕业生想要找工作的几乎都已经找到。唯一没有从事工作的是那些毕业后没有努力去找工作的毕业生,只有很少一部分在这种范围之内。我知道WPI的计算机科学的毕业生大多都收到好几个提供的工作机会。如今我所思考的问题是他们是否作好了面临挑战的准备,并且也像一个母亲那样担心,是否自己已经为他们做了足够的准备。
从2003年我离开IBM加入到WPI那时起,我一直在琢磨2006年软件开发领域是如何的不同这个问题。我将用几个词来形容我的学生们当今所面临的问题――复杂的、竞争的、合作的和扁平化的。
我不担心他们处理复杂问题的能力。他们在大学的整个成长进步的过程中,曾面临和解决过更为复杂的问题,在压力下工作,无限延展他们创作性思维的能力。在理解复杂科技及其应用方面他们普遍有着相当聪慧的才智。在当今科技技术的时代,他们还只是孩子,因此技术的复杂性在他们成功的道路上并不算是一个阻碍。
真正的挑战将是下面标题中的“竞争”和“协作”。
竞争与协作
我想软件开发领域中的这两个属性它们自己可以论述清楚。在当今的技术领域中有一种现象已经非常普遍:相互竞争的公司之间的协作越来越多。
不久前,有人按照自己的想法开始了一项业务,并期待这个业务在十年后仍然存在。他们监守自己的想法,在贸易市场开辟了一个很小的地盘。他们销售自己的产品和程序,增加一些特征,并寻找机会增加自己的生产线――-通常是内部产生的想法。当有竞争者出现时,他们将采取行动立即将他们赶出局。在一个小的市场,这是一个非常有效的策略。大拇指规则是:如果你首先获取了一个市场,或者创造了一个新的市场,那你领导位置几乎是不可能丢失的。当然也有例外,但是通常情况是要想赶出那个首领者是要花费相当大的精力的。
如果你看看计算机制造业就会明白这个例子是很显然的。IBM获得大型主机这个立足点,并维护了他们的领导地位。以前的竞争者,像Burroughs,Honeywell和UNIVAC都已经进入了不同的高科技领域。Digital Equipment在微型计算机中占有王牌位置。但是在微型机日益减少的情况下它们也从未成功地过转到PC、工作站或者大型机的市场来。Sun微型系统在工作站市场占有领先地位,当他们在为有利可图而努力挣扎时,在Unix工作站市场仍是首领位置。但是工作站和PC市场的边界开始变得混乱起来。 1
计算机设备的制造是一个资产密集性的投资,像大多其它风险性大的制造业一样。它需要原材料、供应链、装配设备和许多特殊设备。软件生产则不同。主要资源雇员提供的是智力资本。不是所有软件公司的雇员都是开发者,事实上,大多数人都不是。但是人是软件事业成功的关键因素。协作和竞争也是需要的,这些在软件商业中很快都涌现出来。因为市场的需求不是更多一模一样的软件,而是更多的思想,更多的特性,更多创造性的应用和工具。仅仅投入更多到制造设备是不能满足需求的,只有靠不断的创新才能实现。
持续创新
在软件产业中人们发现不断得创新需要不同的模型。开发软件就像做研究工作一样。它需要在以前的工作上建立新的思想,寻找新的途径来开发已知的结果,在已知认识的基础上增加新的东西。它不是一个高预见性的规则,尤其是你在一个产品中增加新的行为和功能的时候更是如此。
由于开发者们已经学会竞争和协作,软件公司已经在协作中竞争。我们已经看到诸如统一建模语言(UML)和支持它的开发工具的协作产生创新的例子。支持模型驱动体系架构(MDA)的工具是下一代建模工具。为了使这个工具对用户有最大的价值,他们不得不坚持标准,共同操作。
新思想的一个新模型
前两个协作的例子指出一个有趣的变换,即发生在标准领域的事情。多年以前,我们制定我们所知道的标准――那些我们已经使用了很长一段时间并且测定了它的稳定性。就像普通办公用的订书机:假如订书针没有标准,你不得不到订书机卖主那挑选适合你的订书机的订书针。但是大约十年以前,我们制定事物标准的方法发生了改变。一些公司不是制定公共标准,而是将他们自己的执行标准作为进入竞争对手领域的手段。许多这种给新的概念制定标准的例子证明这是一个广泛分布革新的一种阻碍。如果一个公司能够将他们的实现“锁定”成为一种标准,他们的竞争者是非常愿意花费时间来采取这样新的标准的。因此,在增加他们自己产品上就损失了很多时间。在这个新的商业模式下是很难找到一个普遍接受的标准的,但是如果你能够使你的竞争者们支持你的格式,你就占据了领先地位。当今这种现象是很常见的。如果你的文字处理器或者电子制表软件应用不支持产业领导者的特殊格式,你将会十分恼怒。
当今,由于像对象管理组织(OMG)这样的组织机构,我们看到了一个不同的模型。组织机构和个人很早就结合起来在技术生命周期的标准中融合了他们最优秀的思想。这为那些想要构建支持技术的工具创造了更高层次的平台。 2 但是这个模式并不能保证成功。几年过后,我从事于OSF的ANDF工作,那个工作其实就是为那些在没有多种实现的需求下可以部署并在任何平台运行的软件提供包装方法。 3 在这种工作中产生了一些有趣的想法,但是都没有成功。事实上,一些属于OSF的公司积极的工作就是为了使ANDF不成功。
这一切对那些刚刚开始他们商业职业的毕业生来说意味着什么呢?除非我们为他们做了很好的准备,他们也许可以认为开发软件就意味着做所有的工作。像他们一些课程的安排,产生一个想法,就开始设计,实施,最后测试――所有的事情,从开始到结束都是靠他们自己,或者跟几个朋友一起。如果我们使他们做好适当的准备,他们会意识到他们将成为一个大团体的一部分。他们将延伸软件产品,可能创造出必须和其他人一起协作、遵守标准并且适合组织机构的产品生产线的产品。在这个过程中他们有足够的创造空间,但是他们却很少有机会开发一个完整的产品,从开始到完成,不用任何其它软件作为主要的特性。
分布式
现在分布式开发团队使很普遍的。部分原因是我们的系统变得越来越大越来越复杂。但是最主要的原因是当今可利用的支持分布式开发的技术远远比以前多。
可高速访问的英特网让一个工作人员在家工作和在办公楼里的小房间里工作有同样高的效率。这表明运用正确的技术,我坐在家里的桌边用着我学校办公室的计算机,就好像我坐在他们前面一样。
组织机构已经为分布式开发小组找到很好的理由:
- 他们可以在将一起工作的人不亲自聚集起来的情况下,衡量出他们中十分具有才能的员工来。
- 他们可以让雇员远程办公,而省去办公空间的费用。
- 允许人们在家或者他们自己选择的场所办公,使工作更具有吸引力,为更多更有才能的劳动力提供可能。
但是随着越来越多的分布式开发团队的出现,额外的挑战也不得不在这里陈述。
灵活的团队通过集中工作地点――所有人在同一个办公室,一起工作,直接面对面的交流的方式来支持软件的开发。这对一些类型的产品和开发环境来说是理想的状况,但是它并不支持那些趋于分布式开发的团队。因此让我们暂且把“灵活的”这个标签搁在一边,仅仅认为它是有效的,快速交流和反馈对于团队的成功来说是必要的。那么我们如何在分布式团队中开促进这种特性的开发呢?
群件工具的演进
很可能的回答是:新的工具和现有工具变化的涌现支持了分布式团队的开发。许多当今可利用的产品是值得贴上“群件”的标签的。先前的群件产品在实际应用中有数据共享的特征。在最早提供的群件中,各种办公设施和开发工具的设施要么很松散大地结合着要么根本就不可能结合成一个整体。团队的工作人员遭受着生产和使用这些不相结合的工件的痛苦。在你所使用的开发工具的需求,和另一个群件编写代码的需求以及和另一个群件运行测试的需求之间跟毫无联系。即使可能,要想在一个文本文件中嵌入电子表格或者图表也是相当困难的。
第二代群件工具是将不同的应用软件联系起来。最终你可以在一个类型的文件中嵌入另一个。你可以根据代码和测试跟踪那些需求。缺陷已经提交,编码的工作区和其它工件的变化作为解决方法的一部分被聚集在一个工作区为以后作为参考。但是当他们允许我们分享我们生产的工件时,它们在实际团队工作中却并没有被调整好。我们通常是单个地使用工具,分配产品给其他人来观察异步动作,因为这些工具在实际工作中并不能帮助团队联系。
接下来的一代群件工具是以通信问题为重点的。首批我用来支持一个开发团队的工具是Groove,由Groove Networks开发。它允许一个地理分散的团队电子视频,并能很有效地协作。 4 正当我思考我们的经验和Groove性能的时候,基于我对目前我的工具的看法,Groove所欠缺的一部分简直令我大吃一惊。它居然没有完整版本的控制系统,Groove的环境与我们的开发工具完全是分离的。可是Groove却可以使我们获取视频的机会,还可以使我们共享思想和几种类型的工件。
Groove是第三代群件工具中一个很好的例子。它获得了利用英特网通信的力量为我们的团体提供多媒体支持的优势。然而当我们视频时还需要使用电话,因为声音传输协议是不可利用的。在近十年的头几年里已经有很多支持电子视频和分布式团队的产品进入了市场。你们大多数人可能或多或少地使用过。
协作开发环境
当今已经有更多先进的群件工具,我们已经了解了协作开发环境。有些群件在一起相互作用只有短暂的时间。比如VA Software生产的SourceForge。SourceForge并不支持实时视频,但它有很多可以使开发团队更容易地共享工件的功能,比起以前的工具它还能使开发团队以更可靠的方式工作。
对于组织机构来说,他们有好几个可利用的服务于协作开发环境的选择。有些是完全开源的应用,比如Gforge, 5 但是像SourceForge和CollabNet提供的却是商业资源。 6
我们在伍斯特理工学院的几个年级和顶尖项目中将SourceForge企业版本作为中心环境工具。SourceForge的一个非常好的功能是它有一个可以和其它工具完整结合的API,并且可以扩展它的功能。
现在在协作开发环境方面有了更令人兴奋的开发和研究。IBM有两个我非常感兴趣的项目,其中包括IBM Workplace。虽然不是开发者的专有环境,Workplace提供了能帮助各种类型的分布式团队的技术运作的主机。这个让每个人似乎都兴奋的项目是 “Jazz”。 Jazz在IBM Rational 和IBM研究院为分布式开发团队提供统一装置工具中起到连接的作用。Jazz的概念在研究实验室中已经有一段时间,我找到一个IBM Cambridg研究中心发布的Jazzing up Eclipse with Collaborative Tools文件,它是对这个工作的一个具有趣的介绍。 7
经常阅读这个栏目的读者知道我是一个Eclipse的爱好者。如果Jazz以Eclipse为基础,我可以肯定它将对我和我的学生在软件开发方面起到很大的作用。那也意味着我们可以根据我们的客观事实自定义一个适合学术背景的环境。
Eclipse对工作组协作起到了很大的作用。其中一个项目计划叫“Eclipse Communication Framework”(ECF)。这个项目的首页上宣称:“Eclipse Communication Framework(ECF)提供了能够简化具有互操作性、扩展性以及可靠性的分布式应用创建的 API”。这个框架对于帮助创建那些需要客户端-服务器和/或P2P消息和通信的插件、工具以及完整的 Eclipse RCP 应用非常有。 8 ECF目前支持不同种类的聊天客户端,共享编辑、VOIP以及其它机构通信。
在WPI我们已经开始了一个多年的项目,以创建一个分布式开发团队的环境,在其核心将使用Eclipse,ECF, SourceForg以及其它工具和技术。 9 这个环境是专门为支持不同地方的学术团队工作而设计的,既可以在校园内也可在世界各地不同学校间的协作中应用。
这将我们带回了这部分最开始提出的问题。现在的学生需要开发他们的技能,才能使他们在他们的电子环境中能更清晰地、更有效地和更可靠地交流。此外,这项技术将不会成为他们成功的绊脚石,而要通过学习如何清楚地陈述,如何明确表达好的想法,如何接受别人的批评以及如何尊重团队成员的价值等来取得成功。这些技巧与他们现在在小的协作团队中所使用的有很大的不同。
扁平的
如果你不知道这里提到的“扁平的”是什么意思,那你一定没有读过Friedman的书,The World Is Flat: A Brief History Of The 21st Century(《扁平的世界:二十一世纪简史》)。 10 我建议你阅读一下这本书或者至少读一下去年晚些时候的Rational Edge期刊上关于这本书的一些评论。 11 简要地说,Friedman描述了世界范围内曾经发展不均衡的国家和组织机构是如何利用科技来平衡这个世界的。他叙述了世界变得扁平的意义,解释了政府和社会能够并且必须怎样来适应这种变化。任何涉及与科技相关业务的人都需要知道这本书中所谈到的话题。你也许不会同意Friedman的所有观点,但是你一定会对当今任何工业中发生的全球化有新的见解。
无论是在商业还是政治历史的发展中,我们都从未看到像现在这样多的跨国际的协作。如果我们想要取得成功,就应该希望这种协作增加得更多,这比仅仅工作在分布式开发环境的协作要多得多。它包括不同文化的融合以及我们以前从未遇到过的协作努力。那些能够利用世界邻国的知识分子和基于知识资本的公司和国家将是未来几十年的大赢家。Friedman对此作了令人信服的论证。
在这个世界变得扁平之前,我们应该去我们的世界邻国旅行,了解他们的文化。我想我应该是比较幸运的,因为我已经去好几个国家旅行了。我在国外住过一段时间,我已经能够使自己适应不同的文化。我遇到过的很多我非常尊敬的人都到国外旅行并且居住过。我确信这种世界性的经历跟我们的推论能力的那种开阔、开放的方式是密切相关的。只要有可能我就会鼓励学生去旅行,体验其它不同的文化。大学是一个可以看到“大熔炉”的很好的地方,因为学生们来自不同的国家,带着不同的文化和文明。学生在学校这个受庇护的大厅里学习怎样协作。但是亲自去其它国家,在他们自己的环境中了解当地的人们和习俗是什么都无法代替的。
然而,正如Friedman所说,现在我们没有必要为了与世界各地的人们协作或者为我们从未见到过的市场制造产品而亲自去旅行。如果你想要为一个新软件产品开始一个国际性的协作,你可以通过在诸多项目集合网站的其中一个上开始你的计划,刊登广告而很容易地找到协作伙伴。这并不困难。你可以找到一个事实上你从未见过的“商业合作伙伴”,这样你就会成功!这花费的仅仅是知识、雄心和高速连接的英特网。
WPI的很多毕业生都曾经有过世界旅行的经历。我们在世界各地,像伦敦、曼谷、悉尼、香港和威尼斯都有项目中心。这些项目的大多数是学生们的交互式合格项目(IQP),这对学生联系社会需求或者对由科技发展引起的特殊问题的关注是一个挑战。
面对这个扁平的新世界,我们还能为学生的准备工作做些什么呢?我们可以为他们在课堂和研究中提供更多与世界各地学校或者组织机构合作的机会。很多学校在某些程度上已经这样做了。我们应该更多地增加这些机会,我们需要告诉我们的学生在这个扁平的世界,竞争和协作需要一个双赢的途径。我们不需要破坏竞争来取得成功,我们需要通过采取按照双方的优势互补投资的方法来达到协作的目的。
更重要的是,我认为我们这些教育家应该继续慢慢对这些学生灌输健康的、智慧的好奇心和思考问题的能力的思想。学生应该意识到学习是一个持续不断的过程――一个令人愉快而又必要的过程。我们应该让他们明白学习的真谛以及学习同我们一起所表现的价值。
我们应该教会他们如何创新,如何用他们的价值来评估思想并挖掘思想。他们应该明白这个世界上现在有很多人有这个能力来开发软件。所以他们必须学会如何快速构建高品质产品。但是更重要的是,他们必须学会如何创新,如何在工作上比其他人占有优势。美国和其它工业化国家的学生不能再依靠他们自己的信息基础组织和工具来竞争了。所有人都拥有这些。现在的学生必须学会重视创新,显示出对卓越追求的热情。他们要有想成功的意念,不仅仅是为了得到一份工作和领到薪水。世上也有很多的学生为了成功而宁可接受更低的工资。
在 扁平的世界 这本书一个章节中,作者毫不掩饰地向我们指出了这一点。Friedman 谈论关于中国年轻人视野不够开阔,看问题比较片面,他们只听Bill Gates的演讲。他们有向成功企业家学习的雄心和渴望。在这部分的末尾,Friedman用一个段落像老师一样指点了我,也让我脊背一凉。“在当今的中国,Bill Gates 就是Britney Spears。在当今的美国,Britney Spears就是Britney Spears――这就是我们的问题所在。” 12 目前,我们的学生没有将两者混淆,我也想要他们永远都不会。
文章来源于领测软件测试网 https://www.ltesting.net/
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073