`
liuqiang
  • 浏览: 162582 次
  • 性别: Icon_minigender_1
  • 来自: 华东
社区版块
存档分类
最新评论

新手到底新在什么地方

阅读更多

       接触项目管理也有一段时间了,给我感触比较深的还是项目风险控制和管理这块,尤记得当初做风险识别时,为了把我们的风险库建立的足够强大,大家坐在一起拍脑门想风险,尽可能的把所有风险都想到了,连类似四川大地震这样的风险也没放过。其实看着这些风险我的心里却觉得不大踏实,为什么呢?因为经过我反思之前做项目所经历的风险,发现这个风险库看似很庞大,其实有参考价值的风险其实并不多,像停电、停水、请假、机器、甚至开发过程等风险,不能说不算风险,但不是最致命的,也不是项目延期的真正凶手。我忽然觉得风险就近在眼前,就在在座的各位,在这里我也不拐弯抹角,不客气的说,就是新手在开发过程中,沟通、技术、返工的占去了大量的时间和成本,这个话题就不展开,各位看客心里应该也有数。那么我想就新手为什么就成了项目的风险,新手新在哪里和各位讨论。

      首先我觉得不是因为能力问题,我觉得能力这个东西不好说,因为一个有经验的人可能在某些方面比新手熟练,但并不能说明能力一定比新手强。也不是态度问题,我想大部分新手还是抱着学习的态度来工作的,你分配一些任务,总是还会去执行的,比起老手反而更积极。也不是技术问题,在日新月异的技术面前,新手在学习热情方面甚至还具有一些优势。

      最后我觉得最重要的是产品质量意识问题,我一直都认为质量这个东西是全员参与的,质量这个东西脱离不了一线的生产者。据我的了解,新手在这方面做得很糟糕,我想原因可能和学校的教育有关,新手刚从学校里面出来,学校其实让我们养成了很多坏毛病,最主要的就是养成了应试的思维,我想大部人在学校里面是应付过来的吧,当然这个也和学校非人性化教育有关,总之我认为学校教会了我们学会应付的本事。我所接触的新手大都是这点让人很头疼,分配给他们一些任务,总是会有各式各样的问题,比如该用ajax的地方不用,页面上的细节不去调整,还有更要命的是写完的东西不去测试,总是会隐藏很多bug,举个夸张点的例子吧,叫做个后台文章审核,点击审核后按理是ajax刷新那条文章,结果点击后页面动都不动,问之,答曰,你手工刷新下页面就看到变化了 。其实我理解他的意思,他的意思是他确实做了这件事,至于这件事要不要达到100分他不关心,如果这件事发生在学校,其实很正常,我当年就经常这样忽悠老师的,但在真实的产品中,一点失误就会让质量下降一分,之后我们又会为质量付出惨重的代价。

      以上是我的一点不成熟的想法,欢迎批评指正  

 

 

分享到:
评论
20 楼 土匪一份子 2008-08-24  
楼主招我吧    我会给你不一样的感觉。。。呵呵 
19 楼 tantec 2008-08-24  
<div class='quote_title'>srdrm 写道</div>
<div class='quote_div'>楼主应该传达给他们,做事要追求完美的思想。我觉得这是个长期的工程。只有在一点一滴中不断地提醒,不断地完善,自己也要不断地反省,才会做得更好。</div>
<p> </p>
<p>同意,呵呵,长期以往,就算是做边角料也要做得完美。</p>
<p>大哥们带头,不对的地方要指正,而且双方都要诚恳,要提示新手几下提得意见。</p>
18 楼 freej 2008-08-24  
团队的软件质量标准往往、也应该比客户的质量标准高,这样可以大大增加客户满意度。新手,往往只是满足有功能,而不追求质量。
17 楼 贝特虫子 2008-08-24  
是啊!工作了做真实的项目可不像是在学校里面交作业了...
16 楼 mreay 2008-08-24  
gigix 写道
pair,一定要pair
反正你也要花更多的时间来弥补他们犯的错误,不如一开始就当他的生产率是-0.5,和他pair,一次把事情做对,让他知道为什么是这样
如果你没有足够多的senior来和junior结对,至少让juniors结对,发动群众斗群众,俩人互相监督着总比一个人傻干要好

关键在时间估算时并不是当新手来估算。有几个公司把生产率是-0.5估算的。如果这样老板就要开人了。
15 楼 mreay 2008-08-24  
Pair只存在于两个水平接近的人之间!
支持此观点。

14 楼 mreay 2008-08-24  
<div class='quote_title'>liuqiang 写道</div>
<div class='quote_div'>
<div class='quote_title'>风清云淡 写道</div>
<div class='quote_div'>所以正常的项目,应该以有经验、有水平的程序员为主,而少量新手可以进入项目当个学徒工,做点边角料,对新手多做code review,让他有个成长的过程,根据成长的速度,逐渐给他分配更多的任务。不幸的是,现在很多项目,几乎百分之九十都是新手,赶鸭子上架,几百万的项目,成了新手的练习场所,让项目经理疲于奔命到处救火,项目返工,bug满天飞。</div>
<p> </p>
<p> 说的很中肯,我现在的想法是宁愿花几倍的钱的成本来招合适的人,你要是想打造一个精品的产品,新手真的靠不住,没有贬低的意思,因为我不想做消防队员了</p>
</div>
<p>你是boss?</p>
13 楼 nonocast 2008-08-23  
呵呵,明白gigix的意思。
其实pair是有很多技巧和方法的,不过换句话说,很多小公司小团队的负责人本身管理经验不足,很难摆平一些事情,在没有任何理论上,经验上的大力支持是很难将pair实施下去的。

其实我倒是觉得pair是一种很好的监督机制,监督你不能乱上论坛,监督你不能乱聊天,pair机制本身一定程度上和员工的'自由'存在一定的利益冲突。还有一个冲突存在在性格上,有时候碰上2个话多的,或是2个闷罐都够受的。

还有老手一直在带新手会觉得很累,至少我是这样想的,心理上的压力吧,而带出来以后又不能帮自己干活,艾。

所以说在没有任何基础,没有前提的情况下,要靠摸索形成一套pair机制,悬。
12 楼 gigix 2008-08-23  
nonocast 写道
个人感觉让老手和新手进行pair是会产生问题,我在想是不是gigix和gurudk间'新手'的定义发生了冲突,你知道的,gigix所在的TW就算是新手也都是不简单的,只是刚进公司而已,其实是拥有一定编程基础和经验,而gurudk所定义的新手,我想可能指大学毕业,拿着2000不到的工资,还没有任何实际编程应验的小P孩,这一点首先需要分辨清楚。

我们每年都招应届毕业生
而且不管是怎样的“新手”,反正你也得培养他。你不跟他pair那你怎么弄呢?把他当蘑菇搁角落里晾着?还是随便扔个东西给他等他做完了你再帮他擦屁股?别骗自己了,反正你要付出大把时间和精力培养他的,干嘛不跟他pair呢?最不济了,让他坐在你旁边看着你编程,你一边写一边给他讲,就算他不能全听懂至少比他自学来得快吧,至少他学习过程中不给你带来负的生产率啊。
nonocast 写道
最后说一句,让老手和新手结对绝对是BT,一个人永远写另一个人永远看,一个人永远正确另一人永远不正确,如果新手碰到任何一个问题都需要让老手讲解一下,这个代码是写不下去的。Pair只存在于两个水平接近的人之间,不知道这样的理解对不对。

其实,不对。一个人永远写一个人永远看,这种情况也有。发生在什么时候呢?就是我前面说的,你的目标就是不让新手带来负的生产率。换句话说你在赶进度,让新手坐旁边学着,学多学少无所谓。这种时候你是无论如何也没办法带新手的。你还不能让他自己干活,因为你还得给他擦屁股。
但是如果你不是特别赶进度,你有时间和精力带新手,那么你完全可以让新手来编程。pair programming有一种模式叫做ping pong,老手写一段测试,说我要做什么什么,新手写实现,让测试通过。这是一个很有效的带新手上路的办法。另一种模式(我忘记叫什么名字了)是更直白的coach,老手拿鼠标新手拿键盘,老手把鼠标指到需要做事的地方,说现在我们要做什么,新手来做。
结对不是说俩人坐在一起就有效了,这也有很多模式和经验的。
11 楼 liuqiang 2008-08-23  
<p>LS说的比较实际:</p>
<div class='quote_title'>写道<br/><br/>最后说一句,让老手和新手结对绝对是BT,一个人永远写另一个人永远看,一个人永远正确另一人永远不正确,如果新手碰到任何一个问题都需要让老手讲解一下,这个代码是写不下去的。Pair只存在于两个水平接近的人之间</div>
<p> </p>
<p> </p>
<p>结对编程给我感觉还是有点阳春白雪,我认为关键还是提高质量的意识,只要让新手明白做项目不是做课设,我想问题会简化很多</p>
10 楼 nonocast 2008-08-23  
个人感觉让老手和新手进行pair是会产生问题,我在想是不是gigix和gurudk间'新手'的定义发生了冲突,你知道的,gigix所在的TW就算是新手也都是不简单的,只是刚进公司而已,其实是拥有一定编程基础和经验,而gurudk所定义的新手,我想可能指大学毕业,拿着2000不到的工资,还没有任何实际编程应验的小P孩,这一点首先需要分辨清楚。

其次针对小P孩,我的看法是这样的:
在一开始,你不要对他们有任何期望,这是最重要的,你不要把他们想成和你一样能够独立成长,他们需要你和你的团队来带,需要一个过程。

几点建议:
1. 所有他们写的代码都需要由专人做Code Review由专人讲解代码中的问题。这里结对的效果可能会更好些。
2. 多做讲课,将一些重要的问题拉出来单独讲解。
3. 多教教他们解决问题的能力。我们很多’老手’都对新人十分不满,经常说’这点问题都搞不定’之类的,你们有耐心告诉过他们该怎么看书,该怎么分析问题吗?

大公司,就像TW直接招熟手能人就可以了,小公司,就老老实实的带人,从大学生带起,虽然很多人都是在帮别人培养,但一定要坚持不懈的做下去,直到变成像TW这样大公司为止。

最后说一句,让老手和新手结对绝对是BT,一个人永远写另一个人永远看,一个人永远正确另一人永远不正确,如果新手碰到任何一个问题都需要让老手讲解一下,这个代码是写不下去的。Pair只存在于两个水平接近的人之间,不知道这样的理解对不对。
9 楼 gurudk 2008-08-23  
gigix 写道
pair,一定要pair
反正你也要花更多的时间来弥补他们犯的错误,不如一开始就当他的生产率是-0.5,和他pair,一次把事情做对,让他知道为什么是这样
如果你没有足够多的senior来和junior结对,至少让juniors结对,发动群众斗群众,俩人互相监督着总比一个人傻干要好


看你这么强烈支持pair,我什么时候也去试一下。
8 楼 gurudk 2008-08-23  
风清云淡 写道
所以正常的项目,应该以有经验、有水平的程序员为主,而少量新手可以进入项目当个学徒工,做点边角料,对新手多做code review,让他有个成长的过程,根据成长的速度,逐渐给他分配更多的任务。不幸的是,现在很多项目,几乎百分之九十都是新手,赶鸭子上架,几百万的项目,成了新手的练习场所,让项目经理疲于奔命到处救火,项目返工,bug满天飞。


项目组的新手培养主要靠开发组长或技术负责人,跟紧点,非常同意多做Code Review,一开始可以开一次会,结合老手的代码,评审新手的代码,哪些做得好,哪些做得不好。以后就是定期看看。他自己肯定是不知道该怎么做,更别提质量意识了,就是每天看代码,每天就着代码讲,不加强管理,不频繁沟通肯定不行。

7 楼 iheshi 2008-08-23  
感觉新手和老手的区别就在于,老手能够更好的把握一个项目的整个开发过程。把一个任务分配给老手,总是比分配给新手放心些。 原因是多样的,老手在沟通上会更通畅,老手对过程更熟悉,老手对开发技能在熟练程度上比新手更高……

不过,如果新手勤奋好学,多多总结,也一样很快会成为老手的。
6 楼 spiritfrog 2008-08-23  
很多公司吧, 想请高手吧请不起,觉得成本高, 招新人吧又不培训(当然本身就没有培训的意识,知识库都没有),最后就是乱成一团,加班狂多,严重自虐。个人觉得这种情况的主要责任还是在于项目经理,没有想清楚什么样的人该怎么用。
5 楼 gigix 2008-08-23  
pair,一定要pair
反正你也要花更多的时间来弥补他们犯的错误,不如一开始就当他的生产率是-0.5,和他pair,一次把事情做对,让他知道为什么是这样
如果你没有足够多的senior来和junior结对,至少让juniors结对,发动群众斗群众,俩人互相监督着总比一个人傻干要好
4 楼 srdrm 2008-08-22  
楼主应该传达给他们,做事要追求完美的思想。我觉得这是个长期的工程。只有在一点一滴中不断地提醒,不断地完善,自己也要不断地反省,才会做得更好。
3 楼 srdrm 2008-08-22  
哪个人不是从新手过来的。你为什么没能培养好他们。他们做得不好,也有你的一份责任。当然我觉得这要从招聘上下手,有些人真不适合做这行。
2 楼 liuqiang 2008-08-22  
<div class='quote_title'>风清云淡 写道</div>
<div class='quote_div'>所以正常的项目,应该以有经验、有水平的程序员为主,而少量新手可以进入项目当个学徒工,做点边角料,对新手多做code review,让他有个成长的过程,根据成长的速度,逐渐给他分配更多的任务。不幸的是,现在很多项目,几乎百分之九十都是新手,赶鸭子上架,几百万的项目,成了新手的练习场所,让项目经理疲于奔命到处救火,项目返工,bug满天飞。</div>
<p> </p>
<p> 说的很中肯,我现在的想法是宁愿花几倍的钱的成本来招合适的人,你要是想打造一个精品的产品,新手真的靠不住,没有贬低的意思,因为我不想做消防队员了</p>
1 楼 风清云淡 2008-08-22  
所以正常的项目,应该以有经验、有水平的程序员为主,而少量新手可以进入项目当个学徒工,做点边角料,对新手多做code review,让他有个成长的过程,根据成长的速度,逐渐给他分配更多的任务。不幸的是,现在很多项目,几乎百分之九十都是新手,赶鸭子上架,几百万的项目,成了新手的练习场所,让项目经理疲于奔命到处救火,项目返工,bug满天飞。

相关推荐

    新手养猫必读手册.pdf

    * 猫窝的选择需要考虑猫咪的个性和喜好,例如有些猫咪喜欢温暖的地方,有些猫咪喜欢凉爽的地方等。 三、接到小猫第一天需要做的事: * 新手养猫需要了解小猫的基本需求,例如让小猫休息、进食、熟悉坏境、培养如厕...

    新手做网站的入门技巧

    建站对于新手来说可能是一个看似复杂的任务,但通过以下步骤,你可以快速掌握基本流程,并在短时间内创建一个简单的网站。首先,我们要了解的是基础的四个步骤:购买域名、购买虚拟主机(空间)、选择数据库以及选择...

    vc++6.0新手教程

    - **编辑器窗口**:编写源代码的地方,可以使用不同颜色高亮显示语法。 - **输出窗口**:显示编译和运行时的信息,例如错误和警告。 3. **创建新项目** - 使用"文件"-&gt;"新建",选择"工程",然后选择相应的工程...

    Bash新手指南 中文 新手必看

    **Bash新手指南** 在IT领域,Bash(Bourne-Again SHell)是Linux和Unix系统中最常用的命令行解释器,也是用户与操作系统交互的主要方式之一。本指南主要面向初学者,旨在帮助你快速掌握Bash Shell编程的基础知识。 ...

    新手上路驾驶技巧十大法则新手开车注意事项.pdf

    特别是在狭窄的道路或视线受阻的地方,一定要保持足够的安全距离,必要时停车观察,确保安全后再继续行驶。 良好驾驶习惯的养成是每一位新手都应该注意的。无论是在城市还是乡村道路上,驾驶者应始终将双手紧握方向...

    CAD新手上路

    例如,命令行是你输入指令的地方,工具栏则提供了常用的绘图和编辑工具。 2. **基本绘图命令**:CAD中最基础的是直线(LINE)、圆(CIRCLE)、矩形(RECTANGLE)和多边形(POLYGON)等命令。熟练掌握这些命令的使用...

    给Linux新手给Linux新手

    - **在线社区**:Linux拥有庞大的在线社区,如Linux论坛、Reddit上的r/Linux等,这些都是获取帮助和支持的好地方。 - **书籍和教程**:市面上有许多关于Linux的优秀书籍和在线教程,涵盖了从基础知识到高级技巧的...

    git 新手学习文档

    ### Git新手学习文档 #### 一、代码版本控制的基础概念 **代码版本控制器**是一种工具,用于跟踪项目中代码的变化历史。它可以帮助开发者保存不同阶段的代码状态,并且方便后期的查找和恢复。常见的版本控制系统有...

    bash新手指南(离线版)

    1. **脚本文件**:Bash脚本是一系列在shell环境中执行的命令,以`.sh`为扩展名。每个脚本始于`#!/bin/bash`,告诉系统用Bash来执行。 2. **变量**:Bash中,变量用于存储数据,如`name="xiaowang"`。通过`echo $...

    NS新手学习资料汇总

    同时,网上论坛和社区如NS-users邮件列表也是获取帮助和交流经验的好地方。 “手册”是NS学习的重要参考资料。官方的手册通常包含详细的API文档,解释了每个函数的用法和参数。此外,还会有示例脚本和教程,帮助...

    考试管理系统(新手上路,多多指教)

    至于“大家先帮我看看有什么不足的地方”,这表明开发者希望得到社区的反馈和建议。评估系统可以从以下方面入手: 1. **用户体验**:界面是否友好,操作流程是否顺畅,是否有足够的引导和提示。 2. **性能优化**:...

    新手学习反病毒教材

    在IT领域,安全是至关重要的,尤其是对于新手来说,了解如何对抗病毒是非常基础且必要的技能。本教程将针对“新手学习反病毒教材”这一主题,深入浅出地讲解如何识别和处理恶意程序,以保护你的计算机系统免受病毒...

    新手必看的java经典面试题

    这里创建了一个字符串对象,同时在字符串常量池中创建了一个引用"xyz",`s`指向了新创建的对象。 #### 8. `Math.round()` 函数的输出 - `Math.round(11.5)`的结果为`12`; - `Math.round(-11.5)`的结果为`-11`; -...

    cisco路由配置基础新手篇

    接口是路由器与其他设备连接的地方,可以是物理接口如以太网端口,也可以是逻辑接口如VLAN接口。路由处理器负责处理路由协议、配置和数据包转发。内存组件包括闪存(Flash Memory)、RAM(随机访问内存)和ROM(只读...

    新手写的VB电子时钟

    在描述中,我们再次看到“新手写的VB电子时钟”,这表明该程序是为初学者设计的,可能包含了基础的编程概念和技术。尽管描述内容重复,但我们可以推测这个电子时钟程序可能包含了一些基本功能,比如显示当前时间,...

    新手车位感判断图解

    新手车位感判断图解——新手驾驶考试攻略 我们需要知道左轮会从什么地方压过,用以避免轮胎压到实线,或者规避路上的坑洞石块等。

    MySQL实用命令,新手学MySQL推荐

    这里 `%` 表示任何主机都可以访问,这意味着 `test1` 用户可以从任何地方访问MySQL服务器,并对所有数据库执行指定的操作。 ##### 授予特定数据库权限 如果只需要让某个用户在特定的数据库(如 `mydb`)中拥有这些...

    JavaScript语言精粹新手教程

    JavaScript语言精粹新手教程,是一款好用的JavaScript代码语言总结教程,它汇集了JavaScript学习的几乎所有的基础知识点和基本的学习技巧以及新手常常犯错思索不过来的地方,为用户快速学习成长提供了必要的指导!

Global site tag (gtag.js) - Google Analytics