风险5: 选择了错误的提供商
项目阶段:
提供商选择
影响阶段:
设计、开发、稳定化/负载测试,成熟化
对系统的影响:
可伸缩性、性能、可维护性及稳定性
症状:
开发人员要使用更多的时间来处理工具方面的问题,而不是很有成效地使用这些工具
为了应付已知的和未知的问题,而不得不进行显著的系统重新设计
在不同的工具之间很难进行集成(应用服务器与IDE工具,IDE工具与调试器,源码控制与合成工具,等等)
对于IDE工具和调试器等,开发人员往往排斥它们,而推崇自己所喜欢的工具
规避方案:
为了避免风险5,你需要一个很好的提供商选择过程,风险10的规避也适用于此。
要真正衡量一种IDE工具是否最合适的方法是真正地进行使用。而唯一来评估一种J2EE应用的方法是建立一种概念试验来进行证明,在试验中要包含你的应用框架。事实上,你也不希望在花费了3个月时间进行了培训和开发后,在使用时又发现一些bug。
假设在开发到一半的时候,突然发现你的工具集有问题,那么你早应该知道,有些工具确实比另一些更重要。如果你所选的应用服务器不能充分满足你的需要,你只好修改原先的设定。如果IDE不好,则需要设置最低限度的代码标准,并让开发人员任意选择他们认为最为有效的工具。
备注:
要真正了解到哪一个供应商对一项特殊的任务来说最合适,其实并不是一件一次性决定的事情。你需要不断地跟踪与评估这个市场。例如,在过去的一年里我用过4种不同的IDE工具,这取决于我使用了什么样的应用服务器、平台,是否使用EJB等。
风险6: 不了解你的提供商
项目阶段:
提供商选择
影响阶段:
提供商选择阶段后面的所有阶段:设计、开发、稳定化/负载测试、成熟化
对系统的影响:
可维护性、可伸缩性、性能
症状:
开发所用周期超过了最坏预测的周期1/3以上
提供商已经提供了某项功能,但开发者在不知道的情况下重新进行了该项功能的开发
规避方案:
为了规避这样的风险,你可以尽可能地订阅提供商的网上资源,例如邮件列表、新闻组、版本信息(尤其是其中的bug修复补丁的说明等),你能从中得到无法估量之多的收获。
一旦你已经选定了提供商,那么立即就要投资进行培训,并且尽可能赶在项目启动以前。然后,逐渐在团队中建立起对此提供商的认识及信任。试着建立几个EJB并部署一下,再用你的表示层技术 (Swing GUI, JSP等)来调用它们。如果你既要搭建开发环境,又要同时在实现项目目标,就会产生一些不必要的冲突。实际上,我也见到过一直没有进行构建过程的情况:“我们没有时间。”因此,这些工作必须提早进行。有些人会说:“我们的计划中没有为我们提供这些时间。”我的回答是:“你的计划中并没有不给你时间使你不这么做啊。”
备注:
在J2EE世界里,各提供商产品的技术兼容性究竟如何?让我们看一下IBM和BEA的具体分析吧。两者都分别在各自的应用服务器中支持EJB 1.1。那么,实际上BEA WebLogic 5.1和IBM WebSphere 3.5究竟有多少相似之处呢?
BEA WebLogic和IBM WebSphere的系统配置和管理方式几乎完全不同。
IBM在WebSphere中采用了全面的GUI环境,而与之相对的是,BEA 在WebLogic中提供一整套命令行。
IBM WebSphere使用IIOP来和CORBA异常进行通讯,这些异常对程序员来说是可见的;WebLo