天天看点

如何提高开发效率 (转)

原文链接:  http://www.hccar.com/Content,2009,1,12,104.aspx

做任何事都需要有职业目标和规划,做技术更需如此,我看到有很多程序员天天都在抱怨,可天天在敲着if、else代码,根本没有思考!

兄弟,请静下来,思考思考!

业务心里说:这帮技术真垃圾,做点东西那么费劲,好久做出来了发现到处都是错误!

技术心里说:这帮业务太恶劣了,就凭着一张嘴皮子到处忽悠,一点技术都不懂!

这是我们经常见到的情形,技术和业务互相较劲,最终导致项目失败,大家一起被老板K!面对这种情形,我也经常思考:Google怎么处理的?Microsoft怎么处理的?Adobe怎么处理的?后来思考的结果就是:他们的情形与我们不一样,因为他们大多都有比较完善、比较理想的团队,他们有CTO、他们有CIO,可我们呢?什么也没有,从架构、调研、编码、测试到实施就一两个兄弟,怎么办?难道我们就等死,就这么小工作坊下去?答案显然不能如此!

上周被一个朋友请到他们公司去给他手下的程序员做培训,那些程序员大多希望我能讲一些先进的技术、先进的架构,可到最后我却讲了大量的业务操作和沟通手段,对于具体技术,我一点都没讲,因为在我看来,技术人员的升华不是从技术上,而是在技术之外的东西,那就是业务和沟通手段!我的原则是:假如在一个公司,我无法接触到业务层、成天凭空想象的在做技术,我肯定会离开,因为不了解业务层的技术人员是肯定做不好技术的!

一提到程序员,大家通常想象到几个名词短语:满脸呆滞、不修边幅、戴着深度眼镜、不善言辞、一聊起技术就唾沫横飞!其实这是大部分人对技术人员的一种误解,难道成天西装革履、谈吐不凡的人就不能是技术吗?

我们需要整理、整理、再整理!一旦东西梳理顺了,其他的事情就好办了!如下是我简单整理出的六大工具:我称之为六脉神剑!

1、需求管理工具

    技术说业务的需求老变,业务说技术怎么老是这么慢,你们成天坐在电脑前面干什么?业务交给技术的需求是什么样的?技术接收过来有没有做出整理?有没有归类?有没有评估?有没有将需求汇总给业务,然后一条一条的过滤处理?将这些问题逐一问出来之后,业务和技术还会打架吗?业务会不理解技术吗?技术会不理解业务吗?

2、公用代码管理工具

   同样一个模块,第一次开发需要1天,第二次开发仍然需要1天,第三次开发仍然需要1天,我们能不能快点?公用代码为什么不管理起来,开发手册为什么自己不去总结?代码为什么不去重构?想清楚这些问题,效率还会低吗?

3、产品测试工具

   做出东西来你测试过了没有?怎么测试的?性能呢?漏洞呢?测试的时候用了客户的真实数据没有?还是随便敲些“ABC”来测?

4、BUG报告管理工具

   测试之后,相关BUG有没有进行汇总,某一BUG出现频率极高时有没有集中火力攻克呢?还是年复一年,BUG不断?

5、项目计划工具

   老板下发什么任务就做什么,老板下发一系列任务时,你做了优先级评估没有?评估之后有没有报告给老板?有没有书面东西记录?进度现在如何?有多少风险系数?什么时候可以开始实施?什么时候开始写帮助文档?

6、个人工作日志管理工具

   天天都在敲代码,天天都在接受需求,天天都有新功能开发,天天都有老模块维护,你做了日志记录没有?你浑浑噩噩的脑袋记得住那么多东西吗?同志们,记录下来吧,做日志吧!

有了六脉神剑能横行天下吗?答案显然是:NO!这仅仅是工具而已,我们要去尝试,要学会用!见过很多程序员懂得非常多,一和客户打交道时,有时也是唾沫横飞,可每当客户说一个新东西时,他马上陷入了数据库关系设计中,陷入了代码编写的环境中,结果客户在那里讲,可他的脑子却在写程序,可怜的客户讲了好半天一点都没起到作用!

兄弟,请跳出技术思维,暂时忘掉数据结构吧,暂时忘掉逻辑关系吧,与技术无关的统统忘掉!

最后我想到一句话:请做有价值的技术吧!不要跟我说前途,也不要跟我说趋势,我们只要价值!