如何做好企业/团队的技术选型?

发表于:2013-5-22 09:57

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:baiyuzhong    来源:51Testing软件测试网采编

  关于公司/团队技术选型的话题涉及到很多非技术层面的问题,特别是大公司在技术选型方面,不可避免要受到企业官僚的影响。

  下面我结合自己公司的实际情况,谈谈初创企业或小型开发团队的技术选型。技术选型涉及产品/项目开发流程中各个环节所用到的工具和技术。例如项目开发前期的需求收集、整理分析工具、开发阶段的IDE和版本控制系统、测试阶段的测试工具等。

  我们作为初创企业在进行技术选型时会根据产品的需求、技术的复杂性、可扩展性、跨平台可移植性以及成本来做出最终的决策。

  成本因素

  初创企业的资源特别是资金往往不是很充裕,如果采用商业化的技术解决方案,往往价格不菲,像Visual Studio专业版、Windows Server、SQL Server的价格动辄上万,这种情况下不妨考虑一些免费开源的技术框架。比如使用SharpDevelop代替Visual Studio,MySQL代替SQL Server。此外,也可关注并加入一些针对初创企业的扶植计划。例如我们创业前所工作的公司采用的都是微软技术,大家对微软技术掌握得很熟练,这样自己成立公司开发自己的产品时同样优先考虑微软技术。我们通过加入微软的BizSpark计划,有效降低了成本。

  复杂性,成熟度

  我们在做技术选型时最忌讳的就是盲目追崇新技术和框架。有些技术刚刚面世不久,还没有成熟的社区支持和成功案例。如果这时为了赶时髦或者在产品的推广宣传上加点花头而采用新技术的话,往往会导致项目陷入泥潭。采用不成熟技术而导致失败的案例比比皆是,如网景在Java刚面世不久就使用Java重写Netscape Navigator浏览器,导致用户体验大幅下降及用户群的流失。还有当时被称为下一代Windows客户端技术的WPF,到现在发展得仍然不瘟不火,如果仅仅是为了更炫的展现效果而使用WPF,结果肯定会得不偿失。

  产品自身因素

  技术选型不可避免地要以产品为中心。如果产品是Windows智能客户端软件,那么微软的技术框架必然成为优先考虑。如果开发Android软件,Eclipse和Android SDK同样必不可少。

  作者石钰,奈特软件联合创始人、首席架构师

  我在微软和腾讯从事了三年的软件测试和团队管理工作,期间涉及两大类的研发工作:第一,用于质量控制的各种平台系统,例如缺陷管理系统、用例管理系统、产品健康指数可视化系统、自动测试管理系统等;第二,用于具体的产品测试工具,例如桌面软件的UI自动化测试工具、JavaScript自动化测试工具、Web服务压力/性能测试工具等。

  在团队的建设和技术选型上,遇到过一些困惑也走过一些弯路,总结出来有两点经验。

  阅读公司文化,借鉴成功团队经验

  测试团队一定要深刻阅读和理解公司文化,作为其技术选型的首要考虑因素。比如,在微软,无论是构建质量控制系统,还是开发各种产品测试工具,都以Windows+IIS+.NET作为技术框架;在腾讯,就会选择LAMP这样的开源技术框架。

  在选定了技术框架的基础上,还面临一个问题,就是应该如何去设计和实现出具体的系统或者工具。一个非常重要的经验就是一定要借鉴成功团队的经验,站在巨人的肩上。例如,当初在腾讯,我们需要评测QQ地图的POI检索功能的质量和用户满意度。于是,我们花两周时间设计了一个自以为完美的盲测系统,结果在评审时才发现该盲测系统功能过于简单而且性能达不到指标。后来,我们在与腾讯SOSO团队讨论时,才发现他们经过多年的研发,已经有一款非常完善的搜索盲测系统,直接借鉴过来,就能很好地解决项目测试的问题。这点特别是对很多新任命的团队负责人,是很重要的经验。

  敏捷务实,持续集成,切勿过设计

  工程的基本要素是实用和强调执行力。对于一个软件/互联网企业或者团队而言,最重要的是先解决眼前遇到的具体问题,而不是盲目追求系统的扩展性和性能。例如,我们在测评QQ地图后台服务的性能状况时,首先想到的是选用的测试方案要具备良好的功能特性,可扩展性要强、足够开放,能够与已有的一个研发管理系统做集成。按照这个标准,我们选择了LoadRunner,这是一个比较复杂的工具,光配置就花掉了大量的时间。结果,导致实际测试的时间太靠后,发现的性能问题都无法在即将发布的版本中得到修正。这就是一个非常典型的因为过设计而引发的技术选型耽误工程进度的例子。后来,我们选用http_load这个开源、简单、实用的工具对后台服务做快速的压力测试,从而在第一时间得到测试报告。然后在没有测试任务的时候,花时间将该工具集成至研发管理系统中,做到了持续集成。

  其实总结起来,测试团队的技术选型首先要顺应公司的框架性要求,然后在具体实施过程中,要以解决问题作为决策目标,多向成功团队取经,敏捷务实,切勿过设计。

  作者刘舒,阿里巴巴高级产品经理,曾任微软测试开发工程师、腾讯测试经理

  转载自:http://www.programmer.com.cn/8514/

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号