开发之乱 -- 变化1 (技术变革)
技术的变革是导致软件开发混乱的原因之一,尤其是革命性的技术变革。所有人都基本上站在同一起跑
线上,思维及态度的转变是应付技术变革先决条件。
资本永远都是流向投资回报率(ROI)高的地方,当中国的软件行业高速发展,软件人员越来越多的时
候,跨国公司就陆续的把项目转移到国内。而一场金融危机加速了这个过程,与此同时也带来了技术的变
革。
所在公司是一家以开发大中型企业级产品的跨国公司,美国的一个团队发现SaaS(软件即服务)是个
热点,于是就以某款产品为基础,加以改造开发出了第一款SaaS产品,然后就转移到中国,中国这边为此
专门组建了一个新的团队来开发维护这个SaaS产品:新的项目经理,新的团队成员,一切重新开始。整个
团队成员都没有做过SaaS,都只有开发产品经验,维护开发SaaS就像盲人摸着石头过河。([1]和[2]给
了很多帮助指导)
产品是靠质量取胜,而SaaS是靠数量取胜。随着金融危机的恶化,大中型企业开始节约开销,SaaS
开始迎来了春天,从市场过来的功能需求也越来越多,我们这个团队在维护SaaS的同时也开始开发越来越
多的功能。
新技术被广泛采用:SOA,WebService等等;Web应用开发技术被采纳借鉴;使用脚本语言编写各
种小工具。产品可能需要的是专才,SaaS却需要的是通才。不仅了解软件,还需要知道硬件,更加需要对
网络设备和拓扑结构有一定了解。新技术的熟悉和掌握需要时间,新技术的应用更需要时间,因此开发周
期就会变长。
从个人产品到企业级产品,可靠性、可维护性以及可扩展性是一个跨度,从企业级产品到SaaS又是另外
一个跨度。而且维护开发SaaS又比开发产品多了一些需要考虑的东西:系统稳定可靠性(需要满足SLA)
、容量易扩展(能够容易的扩容10倍)、客户可定制化(客户功能按需收费,可定制)、系统易维护(部
署,监控和调试)。
因此,革命性的技术变革带来了新的技术,新的系统架构,新的产品考量点。这些都导致了开发的复杂
性以及更多的变数。
附:
[1] Michael T. Nygard -- Release It!: Design and Deploy Production-Ready Software
[2] InfoQ: www.infoq.org