信息化
- 通讯录管理
- 文件同步
- 办公软件
- 局域网搭建
- 计算机辅助设计CAD
- 邮件服务器
- VPN/PPTP项目
- pos系统(销售点)
- 数据取证软件
- 任务/项目管理
- 电子政务
- OA办公/协作平台
- MySQL衍生版
- 企业ERP
- 版本控制系统
- 文档管理
- SIP项目
- 监控软件
- 数据保护
- 教育教学
- CRM
- 管理软件
- 其他软件
- 教学科研相关
- FTP服务器
- DNS服务器
- 基础软件
- 地理信息系统GIS
- 代理服务器软件
- 系统网络
- 软件开发
- 安全保密
- JMS/消息中间件
- 电子电路设计软件
- 网站建设
- 金融、财务系统
- 行业专用
- 400电话
- BI商业智能
- 数据库驱动程序
- 数据库服务器
- 操作系统工具
- 目录服务LDAP
- HTTP服务器
- 数据库建模
- 网络推广
- DHCP软件
- 虚拟机
- 流媒体服务器
- 企业搜索引擎
- 电话/通讯/IM聊天
- XMPP即时通讯
- 信息化
信息化
软件开发模式革命带来利润井喷
LinkedIn现在已经成为了华尔街的宠儿。伴随着不断上扬的公司收入和利润,它的股价相比两年之前已经上涨了两倍,并连续7个季度在营收上超过了银行家的预期。
不过,LinkedIn的成功绝不仅仅是数字上的戏法:LinkedIn的产品迭代周期大大缩短了。其革命性的软件开发方式成为了公司不可或缺的一大成功要素。
斯科特带来变革
凯文·斯科特为LinkedIn所带来的变革,很大程度上帮助LinkedIn实现了今日的成就。他于2011年2月加入LinkedIn,目前是分管工程的高级副总裁,而在这之前他已经在谷歌工作多年。正是他与他的开发团队彻底颠覆了这家互联网企业开发与部署软件更新的方式。以往需要整整一个月来部署新功能的系统,现在已经能够实现每天多次的更新推送。
这种软件构建上的革命帮助LinkedIn发布了一系列智能化的功能(比如“您应考虑雇佣的人”建议框),帮助企业招聘专员在LinkedIn上更好地完成招聘任务。在近几年,LinkedIn其他的产品创新还有很多,如:重新设计的网站主页,新闻页面的评论功能和Like功能,iPAD端与Windows Phone端的应用,改版的个人资料页面,求职APP,博客系统等。就在最近,LinkedIn还参考Facebook的实践发布了一个新功能,让用户可以与好友的状态更新建立联系。
斯科特谈道:“假如我们没有花时间革新我们构建软件的方式的话,像‘技能认可’系统,‘业界领军者’系统,改版个人资料页面,移动端应用,升级版招聘者工具等在内的无数意义深远的新功能几乎是不可能成功构建出来的。”
LinkedIn使用了一种名为“持续部署”的软件开发模式。通过持续部署的机制,开发者可以通过零散的代码块形式来组织并编写代码,然后迅速将代码块部署到软件的主开发线上面去。软件的主开发线(或被称为“支干线”)在所有开发者之间共享,并通过代码版本管理系统依据预先设定好的标准进行代码维护。新添加的代码块在完成部署前必须通过一系列精心设计的自动化测试,以确保代码块中没有bug存在。代码块通过这些测试后,就会合并入主开发线,并在系统中进行记录,以通知管理人员新功能已经做好上线准备了。
LinkedIn以往的软件开发模式相对来说就传统得多了。其核心思想是在需要进行软件更新时,从程序的主开发线上截取一段分支程序,并在几天乃至数周的时间内对这段分支程序进行开发。开发人员往往不得不在完成大段新功能代码的开发工作后,坐着等待这些代码合并进入主开发线。而即使在合并完成后,这些新功能依然需要再次进行测试,以确保新引入的代码不会与主开发线上同时引入的其他代码产生冲突。
“我们必须改变现状”
在这种“基于功能划分软件分支”的体系中,bug并不少见,甚至还可能构建出完全无法正常运行的系统。这些问题主要归因于由各自独立的多个开发团队开发的代码往往会在同一时间合并进入系统的主开发线,从而导致许多难以预测的后果。而为了尽可能避免这种情况,管理人员倾向于尽可能控制每个月新功能迭代更新的数量与范围,从而在整体上使公司软件的开发周期变得更长。
为了实现从传统的开发模式到“持续部署”开发模式的转变,LinkedIn不得不在两个月的时间内中断所有的新开发工作,而将所有的开发人员安排到旧代码迁移和自动化测试工具构建的工作上来——只有这样才能保证新开发模式的正常运作。
“这种模式的转变其实蕴藏着巨大的风险。”斯科特表示,“这意味着我要告诉我的工程团队,我们即将要彻底改变我们开发软件的方式。在这2个月的转变过程中,我们需要齐心协力跨越象征着我们传统软件开发模式的大桥,并在跨越成功之后把这座大桥彻底焚毁。”
LinkedIn并不是唯一使用持续部署开发模式的公司。斯科特在之前的系统开发中也曾经使用过这类开发模式,而其他的互联网企业,如Etsy和Facebook,也开始逐渐采纳这种开发模式。然后LinkedIn这个例子的代表性在于,这种革命性的开发模式直接地帮助LinkedIn实现了公司业绩上的提升,印证了持续部署模式能为科技企业带来的收益,从而间接地推动了科技行业软件交付效率的提升。
而对于斯科特来说,持续部署模式的意义并不仅仅在于那些规则与方法,更在于这种模式的的确确解决了LinkedIn原来所面临的问题。
斯科特认为:“我们必须改变现状。以往,开发者之间的开发工作是相对独立的。而我们所希望的场景是,开发者交付代码时,这些代码就已经是合乎规格并可发布的了。主开发线上的所有代码应时刻处于可发布的状态。假如这种情况被打破,那么这就是一个严重的问题,所有人应该停止手上的新功能的开发工作,投入到修复主开发线代码的工作中来。”
诚如本文中之前所提到的,这种革命性开发模式的实践从目前来看是相当成功的。斯科特在上次采访中也提到这种开发模式,并阐述了这种模式对LinkedIn求职者产品项目所带来的好处。而自那时起,LinkedIn在软件开发方面日益高效,而它的股价也上涨了61个百分点。
上一篇文章:
关于江苏家服信息化平台开通系国内首个 可查保姆资质
下一篇文章:
食通天6——新一代营销型餐饮管理软件