互联网公司如何有效执行流程的心得

互联网公司如何有效执行流程的心得

    职业生涯的前六年都是在软件公司做的,那时候流程再多,规范再严格,都有时间和空间来执行。最近几年在互联网公司工作也做相应的推行时,对于一些原来在软件公司一直使用的相对严格的规范和流程在执行过程中遇到非常多的问题。
遇到情况基本有几种:
1、更新比应用软件频繁。市场在变,客户在变,需求自然也在变,如果我们不变,就会被市场淘汰。原来做应用软件的时候,最多一周甚至一个月更新一次软件版本,客户已经很满意了,现在线上的东西,用户发现了BUG或体验不好的地方,一天都等不到,投诉量急剧上升,领导和PD会一直催着你解决问题;

2、线下测试环境往往和线上生产环境很难做到一致。尤其是解决跨域访问或一些需要和其他网站合作进行用户验证的功能,在线下几乎无法进行测试;

3、一个网站的功能数量往往可以和一个大型的应用软件相比。每一块都有相应的产品经理在优化推进,每一块都有多个技术人员进行开发,但是发布时只允许一个包上线。当多个分支同时进行,需要在相同的时间点上线,合并分支分成为开发人员的恶梦;

4、更新过快导致无法保持模型与代码的统一,代码缺少清晰的注释和说明(根本来不急写),代码执行性能较差;

5、分工过于细,程序员已经不清楚线上系统部署情况和服务器负载能力,写出来的代码安全性和可扩展性差。

    面对这些问题,如果执行流程会更混乱,只有改造流程才能让工作更有序。目前对这些问题有一些解决办法和大家分享一下:
1、控制需求数量。虽然用户和产品经理(PD)会有很多需求让技术人员来解决,但并不一定要马上解决所有的问题。
   首先,要区分事务的优先级。一般我们现在是以系统异常第一,BUG第二,功能需求第三的顺序在执行。
         为什么系统异常排第一,是因为它会让应用服务器的性能急剧下降,甚至在没有多大流量的情况下直接当机,所以一定要优先解决。而经过测试的代码,最低要求也是没有异常才允许上线发布。
   当然,功能也有高优先的,所以必须和客户、产品经理坐下来讨论哪些是第一时间要解决的,哪些是次要的。学习过时间管理的同学应该知道,优先级的划分是:紧急,重要,不紧急,不重要这四类。
   紧急的固然是要马上解决的,但是重要的事务也是需要好好讨论的,比如性能优化,虽然现在的页面打开速度也能接受,但是如果不做更进一步的优化而页面上的功能越来越多,性能问题就会变成紧急的事务。一般来说,如果我们的精力90%放在解决重要的事务上,那么紧急的事务也就只有10%了。
 
   其次,是控制发布次数。天天发布会让主分支一片混乱,也会让测试人员疲于奔命。我们现在一般是周二和周四晚上进行功能发布,这样其他部门也会做好相应的配合。重要的项目和紧急的事务,可以进入紧急发布流程,但紧急发布流程不能常用,常用会让业务部门觉得再小的东西也可以紧急发一下。

   再就是要有专业的SCM人员,管理分支和发布包,不要让测试人员或开发人员兼职,这样只会更乱。

   解决线上线下环境不一致的问题,除了线下会建立独立的测试环境外,线上我们现在是用一台用户无法正常访问的服务器进行部署,域名是以.net结尾的(我们正式的域名是.com),这样也可以访问进行一些测试,当然,也并不能完全解决问题,如果有更好的经验,希望能和大家一起分享!:)

   规范是团队协作的根本,没有规范的代码会让其他同事无法正常理解或花费大量精力去理解你的代码。再忙再紧,一周也要进行一次代码检查,把MODEL补充齐,把注释和说明补充好。

   安全和性能是互联网公司的程序员必须关注的。团队中应该有专门研究安全的同事,把安全条例做为天条进行执行。普通的代码规范执行有问题可能请个下午茶就行了,但安全是不容解释的,必须严格处理。性能也是一样,不同的公司会有不同的配准。为了让你的应用服务器单台支撑百万以上的流量,.aspx.CS里的代码必须在500毫秒内执行完。

以上是一些正在实行的经验,环境是百人左右的技术团队,其中还有很多不足,希望能给大家一些借鉴。

posted @ 2008-06-12 12:29 萧远山 阅读(2324) 评论(32)  编辑 收藏

  回复  引用  查看    
#1楼 2008-06-12 12:40 | Rivers Zhao      
我们公司最近就在大力引起流程管理
可惜是越引进越乱,效率低下,矛盾不断,本来1周能上线的内容,现在要花2~3周
  回复  引用  查看    
#2楼 [楼主]2008-06-12 12:46 | 萧远山      
@Rivers Zhao
再差的流程,也需要有效的执行,现在大多混乱是出现的执行上,并不是流程本身的问题,,,只有执行了一段时间,再去优化,才有成效.
  回复  引用    
#3楼 2008-06-12 12:52 | wyrover [未注册用户]
为什么不能有效执行,关键也得让执行的那个人看到流程的好处,你派人家去执行,然后效率又低下,估计会越来越反感。
  回复  引用  查看    
#4楼 2008-06-12 13:00 | 金色海洋(jyk)      
多大的网站呀,这么多人一起忙活.

  回复  引用  查看    
#5楼 [楼主]2008-06-12 13:02 | 萧远山      
@wyrover
所以,需要不断的培训和辅导,每次流程执行完成做一定的总结,才能让流程走得越来越顺利,好处也就越来越明显.
  回复  引用  查看    
#6楼 2008-06-12 13:02 | andy.wu      
楼主的经验不错,很有现实意义。我深有同感...
  回复  引用  查看    
#7楼 2008-06-12 13:03 | 小寒      
适合的流程才是最好的流程
往往一个流程管理,要经过很长时间的使用,然后优化,然后再使用,如此反复迭代,最终才能确定一个既稳定又有效的流程
  回复  引用  查看    
#8楼 [楼主]2008-06-12 13:04 | 萧远山      
@金色海洋(jyk)
现在工作分工不再是1+1=2,每人负责一块业务的模式了,比如光是一块搜索就需要一个庞大的团队去研究,还有数据库的优化和维护,整体架构的设计,后台功能等,真正在前台业务上的可能是只有一半人.
  回复  引用  查看    
#9楼 [楼主]2008-06-12 13:05 | 萧远山      
@小寒
同意,呵呵,业务在变化,人在变化,流程也是需要变化的.没有不变的,就是变化本身.
  回复  引用    
#10楼 2008-06-12 13:09 | net_kevin [未注册用户]
我也遇到类似的问题,目前也有一套解决方案,有空可以一起交流一下,互联网就是这个样子,需求在不停的变化及推出,流程的管理更加重要,但是影响上线效率,老板是不愿意的
  回复  引用  查看    
#11楼 [楼主]2008-06-12 13:11 | 萧远山      
@net_kevin
可以和大家分享一下!:)
  回复  引用  查看    
#12楼 2008-06-12 13:24 | Kai.Ma      
人不行,制度、流程难行。

优先找有相同理念的人,组成团队,才是治根。
  回复  引用    
#13楼 2008-06-12 13:27 | wyrover [未注册用户]
嗯,培训和辅导是必要的,搞好7小时之外的活动,建设好团队,有利于推进流程。
  回复  引用  查看    
#14楼 2008-06-12 14:06 | 山不转水转...      
没有流程也是不好的,为了提高效率可以把流程设置的简单一些。但最简单的流程也能够起到“记录”的作用。所有的问题只有做到“记录”下来,才能拿不被忽略、遗忘,才能进行优先级和严重级的管理。所以这个是最基本的。

可以参考一下我的urtracker事务跟踪系统。其实工具只是一个方面,关键是如何用好。 网址:http://www.urtracker.cn
  回复  引用  查看    
#15楼 2008-06-12 14:40 | PerfectDesign      
正面临这样的难题
编辑可以自己上去改,美工可以上去改,程序员也要改,线上和线下的代码早就不一致了。

  回复  引用  查看    
#16楼 2008-06-12 14:54 | 阿齐      
--引用--------------------------------------------------
wyrover: 为什么不能有效执行,关键也得让执行的那个人看到流程的好处,你派人家去执行,然后效率又低下,估计会越来越反感。
--------------------------------------------------------
我的看法恰好相反,很多时候是流程太差,导致根本没法执行——我们公司目前正处于这种状况下:某领导一拍脑袋就出来一套流程,一执行发现根本没法弄!
  回复  引用  查看    
#17楼 [楼主]2008-06-12 15:09 | 萧远山      
@阿齐
拍出来的流程确实是没用的,,,应该是大家坐在一起,共同讨论出来的,,这个时候不需要领导的权力出现,应该是大家共同提出并愿意遵守的共识.
我记得曾经向淘宝网的SQA请教他们的流程是怎么出来的,他们很自豪的说了一句,“是我们全体小二一块制定出来的”。。。。所以我学习了。
  回复  引用  查看    
#18楼 [楼主]2008-06-12 15:10 | 萧远山      
@PerfectDesign
编辑和UI如果都有权限上去改,那肯定会有问题的,因为他们不够专业,最后背责任的,还是我们做技术的。。。
  回复  引用  查看    
#19楼 2008-06-12 15:25 | 簡簡單單..      
深有同感..
  回复  引用  查看    
#20楼 2008-06-12 15:50 | flyingchen      
才看一半就严重同意了。。。。。
继续
  回复  引用  查看    
#21楼 2008-06-12 15:53 | flyingchen      
代码写1分钟。走个测试流程2个小时。上线申请搞下,半天没了
  回复  引用    
#22楼 2008-06-12 16:15 | V [未注册用户]
怎么这么象ALIBABA和TAOBAO的规矩?

TAOBAO是星期四发布
  回复  引用  查看    
#23楼 2008-06-12 16:22 | oscarxie      
XP+迭代,五花肉模式。一般来说,线上的Maintain,都是很小的项目,这个时候需要开发能力比较强,拳打脚踢,一般1到2个人搞定,之后测试需要至少有2轮,本地的测试及预发布环境的测试(不是PRD的WebApp+PRD的DB),且测试最好是交叉的,这样提高覆盖率。当然,需求要明确,不过很多线上的项目提出都是尝试性的,多做几个Addition估计避免不了。另外就是版本控制要做好,2个项目可能会用到同个文件,那么项目上线要排个先后顺序。
  回复  引用    
#24楼 2008-06-12 16:45 | 祛痘 [未注册用户]
有待改进,不是很理想
  回复  引用  查看    
#25楼 2008-06-12 16:49 | 秋千      
一周的东西要你一天搞完,功能实现就可以了,这是中国互联网软件的现状。
  回复  引用  查看    
#26楼 2008-06-12 19:33 | 金色海洋(jyk)      
>>比如光是一块搜索就需要一个庞大的团队去研究

难道你说的是baidu的搜索功能?

大不了家一个索引就完事了。
  回复  引用  查看    
#27楼 2008-06-12 20:51 | PerfectDesign      
@秋千
你说的太对了!

@萧远山
那要是没有给他们的修改权限,那所有的工作我一个人都要承担!

  回复  引用  查看    
#28楼 2008-06-12 22:42 | Vincent      
记得时间管理的4个象限是紧急而且重要,紧急但不重要,重要但不紧急,不紧急也不重要.
  回复  引用  查看    
#29楼 [楼主]2008-06-13 09:39 | 萧远山      
时间管理是高效能人士的七个习惯中的第三个.....要事第一,呵呵,贴个东西,相信大家都看过..

  回复  引用  查看    
#30楼 2008-06-13 11:49 | 朝晖的.net      
@萧远山
.aspx.CS里的代码必须在500毫秒内执行完,这个需要什么软件测试呢?
  回复  引用  查看    
#31楼 [楼主]2008-06-13 12:01 | 萧远山      
@朝晖的.net
LoadRunner就行了,去掉所有的图片请求,基本上就是你的代码执行时间...
  回复  引用  查看    
#32楼 2008-06-13 15:12 | 朝晖的.net      
@萧远山

哦~~偶还没用过,看了楼主的文章,感觉以后要严格要求自己了。
LoadRunner
:^) nice tool

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-06-12 12:40 编辑过


相关链接: