- 浏览: 162582 次
- 性别:
- 来自: 华东
文章分类
最新评论
-
chen_miao:
我是初学者,请问,我在flex设计好了带有按钮和下拉框的界面, ...
ruby+flex实现天气预报 -
barrytyh:
很多技术人员都有想法,但忘了一个根本性的问题,谁在给你MONE ...
互联网创业与软件开发 -
fireflyman:
囧......
关于并发和并行 -
fireflyman:
你老再次出现了
谈谈互联网新产品如何起步 -
qhh394141930:
写得很详细,受教了。谢谢!
从瀑布模型、极限编程到敏捷开发
接触项目管理也有一段时间了,给我感触比较深的还是项目风险控制和管理这块,尤记得当初做风险识别时,为了把我们的风险库建立的足够强大,大家坐在一起拍脑门想风险,尽可能的把所有风险都想到了,连类似四川大地震这样的风险也没放过。其实看着这些风险我的心里却觉得不大踏实,为什么呢?因为经过我反思之前做项目所经历的风险,发现这个风险库看似很庞大,其实有参考价值的风险其实并不多,像停电、停水、请假、机器、甚至开发过程等风险,不能说不算风险,但不是最致命的,也不是项目延期的真正凶手。我忽然觉得风险就近在眼前,就在在座的各位,在这里我也不拐弯抹角,不客气的说,就是新手在开发过程中,沟通、技术、返工的占去了大量的时间和成本,这个话题就不展开,各位看客心里应该也有数。那么我想就新手为什么就成了项目的风险,新手新在哪里和各位讨论。
首先我觉得不是因为能力问题,我觉得能力这个东西不好说,因为一个有经验的人可能在某些方面比新手熟练,但并不能说明能力一定比新手强。也不是态度问题,我想大部分新手还是抱着学习的态度来工作的,你分配一些任务,总是还会去执行的,比起老手反而更积极。也不是技术问题,在日新月异的技术面前,新手在学习热情方面甚至还具有一些优势。
最后我觉得最重要的是产品质量意识问题,我一直都认为质量这个东西是全员参与的,质量这个东西脱离不了一线的生产者。据我的了解,新手在这方面做得很糟糕,我想原因可能和学校的教育有关,新手刚从学校里面出来,学校其实让我们养成了很多坏毛病,最主要的就是养成了应试的思维,我想大部人在学校里面是应付过来的吧,当然这个也和学校非人性化教育有关,总之我认为学校教会了我们学会应付的本事。我所接触的新手大都是这点让人很头疼,分配给他们一些任务,总是会有各式各样的问题,比如该用ajax的地方不用,页面上的细节不去调整,还有更要命的是写完的东西不去测试,总是会隐藏很多bug,举个夸张点的例子吧,叫做个后台文章审核,点击审核后按理是ajax刷新那条文章,结果点击后页面动都不动,问之,答曰,你手工刷新下页面就看到变化了 。其实我理解他的意思,他的意思是他确实做了这件事,至于这件事要不要达到100分他不关心,如果这件事发生在学校,其实很正常,我当年就经常这样忽悠老师的,但在真实的产品中,一点失误就会让质量下降一分,之后我们又会为质量付出惨重的代价。
以上是我的一点不成熟的想法,欢迎批评指正
评论
<div class='quote_div'>楼主应该传达给他们,做事要追求完美的思想。我觉得这是个长期的工程。只有在一点一滴中不断地提醒,不断地完善,自己也要不断地反省,才会做得更好。</div>
<p> </p>
<p>同意,呵呵,长期以往,就算是做边角料也要做得完美。</p>
<p>大哥们带头,不对的地方要指正,而且双方都要诚恳,要提示新手几下提得意见。</p>
反正你也要花更多的时间来弥补他们犯的错误,不如一开始就当他的生产率是-0.5,和他pair,一次把事情做对,让他知道为什么是这样
如果你没有足够多的senior来和junior结对,至少让juniors结对,发动群众斗群众,俩人互相监督着总比一个人傻干要好
关键在时间估算时并不是当新手来估算。有几个公司把生产率是-0.5估算的。如果这样老板就要开人了。
支持此观点。
<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>
其实pair是有很多技巧和方法的,不过换句话说,很多小公司小团队的负责人本身管理经验不足,很难摆平一些事情,在没有任何理论上,经验上的大力支持是很难将pair实施下去的。
其实我倒是觉得pair是一种很好的监督机制,监督你不能乱上论坛,监督你不能乱聊天,pair机制本身一定程度上和员工的'自由'存在一定的利益冲突。还有一个冲突存在在性格上,有时候碰上2个话多的,或是2个闷罐都够受的。
还有老手一直在带新手会觉得很累,至少我是这样想的,心理上的压力吧,而带出来以后又不能帮自己干活,艾。
所以说在没有任何基础,没有前提的情况下,要靠摸索形成一套pair机制,悬。
我们每年都招应届毕业生
而且不管是怎样的“新手”,反正你也得培养他。你不跟他pair那你怎么弄呢?把他当蘑菇搁角落里晾着?还是随便扔个东西给他等他做完了你再帮他擦屁股?别骗自己了,反正你要付出大把时间和精力培养他的,干嘛不跟他pair呢?最不济了,让他坐在你旁边看着你编程,你一边写一边给他讲,就算他不能全听懂至少比他自学来得快吧,至少他学习过程中不给你带来负的生产率啊。
其实,不对。一个人永远写一个人永远看,这种情况也有。发生在什么时候呢?就是我前面说的,你的目标就是不让新手带来负的生产率。换句话说你在赶进度,让新手坐旁边学着,学多学少无所谓。这种时候你是无论如何也没办法带新手的。你还不能让他自己干活,因为你还得给他擦屁股。
但是如果你不是特别赶进度,你有时间和精力带新手,那么你完全可以让新手来编程。pair programming有一种模式叫做ping pong,老手写一段测试,说我要做什么什么,新手写实现,让测试通过。这是一个很有效的带新手上路的办法。另一种模式(我忘记叫什么名字了)是更直白的coach,老手拿鼠标新手拿键盘,老手把鼠标指到需要做事的地方,说现在我们要做什么,新手来做。
结对不是说俩人坐在一起就有效了,这也有很多模式和经验的。
<div class='quote_title'>写道<br/><br/>最后说一句,让老手和新手结对绝对是BT,一个人永远写另一个人永远看,一个人永远正确另一人永远不正确,如果新手碰到任何一个问题都需要让老手讲解一下,这个代码是写不下去的。Pair只存在于两个水平接近的人之间</div>
<p> </p>
<p> </p>
<p>结对编程给我感觉还是有点阳春白雪,我认为关键还是提高质量的意识,只要让新手明白做项目不是做课设,我想问题会简化很多</p>
其次针对小P孩,我的看法是这样的:
在一开始,你不要对他们有任何期望,这是最重要的,你不要把他们想成和你一样能够独立成长,他们需要你和你的团队来带,需要一个过程。
几点建议:
1. 所有他们写的代码都需要由专人做Code Review由专人讲解代码中的问题。这里结对的效果可能会更好些。
2. 多做讲课,将一些重要的问题拉出来单独讲解。
3. 多教教他们解决问题的能力。我们很多’老手’都对新人十分不满,经常说’这点问题都搞不定’之类的,你们有耐心告诉过他们该怎么看书,该怎么分析问题吗?
大公司,就像TW直接招熟手能人就可以了,小公司,就老老实实的带人,从大学生带起,虽然很多人都是在帮别人培养,但一定要坚持不懈的做下去,直到变成像TW这样大公司为止。
最后说一句,让老手和新手结对绝对是BT,一个人永远写另一个人永远看,一个人永远正确另一人永远不正确,如果新手碰到任何一个问题都需要让老手讲解一下,这个代码是写不下去的。Pair只存在于两个水平接近的人之间,不知道这样的理解对不对。
反正你也要花更多的时间来弥补他们犯的错误,不如一开始就当他的生产率是-0.5,和他pair,一次把事情做对,让他知道为什么是这样
如果你没有足够多的senior来和junior结对,至少让juniors结对,发动群众斗群众,俩人互相监督着总比一个人傻干要好
看你这么强烈支持pair,我什么时候也去试一下。
项目组的新手培养主要靠开发组长或技术负责人,跟紧点,非常同意多做Code Review,一开始可以开一次会,结合老手的代码,评审新手的代码,哪些做得好,哪些做得不好。以后就是定期看看。他自己肯定是不知道该怎么做,更别提质量意识了,就是每天看代码,每天就着代码讲,不加强管理,不频繁沟通肯定不行。
不过,如果新手勤奋好学,多多总结,也一样很快会成为老手的。
反正你也要花更多的时间来弥补他们犯的错误,不如一开始就当他的生产率是-0.5,和他pair,一次把事情做对,让他知道为什么是这样
如果你没有足够多的senior来和junior结对,至少让juniors结对,发动群众斗群众,俩人互相监督着总比一个人傻干要好
<div class='quote_div'>所以正常的项目,应该以有经验、有水平的程序员为主,而少量新手可以进入项目当个学徒工,做点边角料,对新手多做code review,让他有个成长的过程,根据成长的速度,逐渐给他分配更多的任务。不幸的是,现在很多项目,几乎百分之九十都是新手,赶鸭子上架,几百万的项目,成了新手的练习场所,让项目经理疲于奔命到处救火,项目返工,bug满天飞。</div>
<p> </p>
<p> 说的很中肯,我现在的想法是宁愿花几倍的钱的成本来招合适的人,你要是想打造一个精品的产品,新手真的靠不住,没有贬低的意思,因为我不想做消防队员了</p>
发表评论
-
谈谈互联网新产品如何起步
2011-02-16 17:56 1270很多时候, 我们刚做完一个互联网产品,由于产品很粗糙, 功 ... -
育娃网---探索国内育儿社区的新思路
2009-12-22 19:55 310个人认为,这个市场是一个充满前景的垂直行业,到底应该从哪 ... -
关于社交网络的一点思考
2009-09-23 12:16 1717只要是给人设计的 ... -
对产品和运营的几点思索
2009-09-07 22:04 20951、做一个产品需要首先考虑,是卖内容还是卖功能, 切不可都做 ... -
命运掌握在自己手中
2009-09-07 13:57 747李彦宏独家撰文:命运 ... -
强者必学的定律
2009-07-06 10:03 7901、蓝斯登原则:在你往 ... -
如何快速通过CMMI评估
2008-12-15 11:39 1398终于访谈结束 ... -
对WebGame行业的一点看法
2008-09-22 10:20 1373之前不怎么上 ... -
如何进行项目跟踪
2008-09-08 19:52 1837项目跟踪主要针对计划,是为了了解项目的实际进展情 ... -
CMMI 名词辨析:检查点 里程碑 基线
2008-09-06 10:02 2574我实施CMMI的过 ... -
互联网创业与软件开发
2008-09-04 22:57 2136最近与一位创业公司的朋友私下交流了一些项目管理和软 ... -
创业公司如何用人(转CSDN老紫竹的一篇颇有见地的文章)
2008-08-29 14:32 4170创业不是用钱就能堆 ... -
从瀑布模型、极限编程到敏捷开发
2008-08-18 21:11 2872软件开发是一种对人 ... -
QA真的能保证质量吗?
2008-08-15 21:20 4295我最早接触QA是去年在一家大型制造型企业实习的时候,在这种企业 ... -
我们不是在做技术决策,我们在玩
2008-07-31 12:58 3346在这里我不想一 ... -
小公司如何做项目管理(下)
2008-07-22 10:09 1770在上篇文章里, ... -
小公司如何做项目管理(上)
2008-07-21 08:09 2328我所在的公司和大多数国内IT公司一样,十几到几十人的规模,每 ... -
如何编制软件测试用例
2008-06-20 12:52 1982如何设计编制软件测试 ... -
阿里要走102年 阿里的工程师能走多远?
2008-03-19 20:30 1225转载自 http://java.csdn.net/index. ... -
如何快速通过CMMI评估
2008-03-14 22:12 1252终于访谈结束 ...
相关推荐
* 猫窝的选择需要考虑猫咪的个性和喜好,例如有些猫咪喜欢温暖的地方,有些猫咪喜欢凉爽的地方等。 三、接到小猫第一天需要做的事: * 新手养猫需要了解小猫的基本需求,例如让小猫休息、进食、熟悉坏境、培养如厕...
建站对于新手来说可能是一个看似复杂的任务,但通过以下步骤,你可以快速掌握基本流程,并在短时间内创建一个简单的网站。首先,我们要了解的是基础的四个步骤:购买域名、购买虚拟主机(空间)、选择数据库以及选择...
- **编辑器窗口**:编写源代码的地方,可以使用不同颜色高亮显示语法。 - **输出窗口**:显示编译和运行时的信息,例如错误和警告。 3. **创建新项目** - 使用"文件"->"新建",选择"工程",然后选择相应的工程...
**Bash新手指南** 在IT领域,Bash(Bourne-Again SHell)是Linux和Unix系统中最常用的命令行解释器,也是用户与操作系统交互的主要方式之一。本指南主要面向初学者,旨在帮助你快速掌握Bash Shell编程的基础知识。 ...
特别是在狭窄的道路或视线受阻的地方,一定要保持足够的安全距离,必要时停车观察,确保安全后再继续行驶。 良好驾驶习惯的养成是每一位新手都应该注意的。无论是在城市还是乡村道路上,驾驶者应始终将双手紧握方向...
例如,命令行是你输入指令的地方,工具栏则提供了常用的绘图和编辑工具。 2. **基本绘图命令**:CAD中最基础的是直线(LINE)、圆(CIRCLE)、矩形(RECTANGLE)和多边形(POLYGON)等命令。熟练掌握这些命令的使用...
- **在线社区**:Linux拥有庞大的在线社区,如Linux论坛、Reddit上的r/Linux等,这些都是获取帮助和支持的好地方。 - **书籍和教程**:市面上有许多关于Linux的优秀书籍和在线教程,涵盖了从基础知识到高级技巧的...
### Git新手学习文档 #### 一、代码版本控制的基础概念 **代码版本控制器**是一种工具,用于跟踪项目中代码的变化历史。它可以帮助开发者保存不同阶段的代码状态,并且方便后期的查找和恢复。常见的版本控制系统有...
1. **脚本文件**:Bash脚本是一系列在shell环境中执行的命令,以`.sh`为扩展名。每个脚本始于`#!/bin/bash`,告诉系统用Bash来执行。 2. **变量**:Bash中,变量用于存储数据,如`name="xiaowang"`。通过`echo $...
同时,网上论坛和社区如NS-users邮件列表也是获取帮助和交流经验的好地方。 “手册”是NS学习的重要参考资料。官方的手册通常包含详细的API文档,解释了每个函数的用法和参数。此外,还会有示例脚本和教程,帮助...
至于“大家先帮我看看有什么不足的地方”,这表明开发者希望得到社区的反馈和建议。评估系统可以从以下方面入手: 1. **用户体验**:界面是否友好,操作流程是否顺畅,是否有足够的引导和提示。 2. **性能优化**:...
在IT领域,安全是至关重要的,尤其是对于新手来说,了解如何对抗病毒是非常基础且必要的技能。本教程将针对“新手学习反病毒教材”这一主题,深入浅出地讲解如何识别和处理恶意程序,以保护你的计算机系统免受病毒...
这里创建了一个字符串对象,同时在字符串常量池中创建了一个引用"xyz",`s`指向了新创建的对象。 #### 8. `Math.round()` 函数的输出 - `Math.round(11.5)`的结果为`12`; - `Math.round(-11.5)`的结果为`-11`; -...
接口是路由器与其他设备连接的地方,可以是物理接口如以太网端口,也可以是逻辑接口如VLAN接口。路由处理器负责处理路由协议、配置和数据包转发。内存组件包括闪存(Flash Memory)、RAM(随机访问内存)和ROM(只读...
在描述中,我们再次看到“新手写的VB电子时钟”,这表明该程序是为初学者设计的,可能包含了基础的编程概念和技术。尽管描述内容重复,但我们可以推测这个电子时钟程序可能包含了一些基本功能,比如显示当前时间,...
新手车位感判断图解——新手驾驶考试攻略 我们需要知道左轮会从什么地方压过,用以避免轮胎压到实线,或者规避路上的坑洞石块等。
这里 `%` 表示任何主机都可以访问,这意味着 `test1` 用户可以从任何地方访问MySQL服务器,并对所有数据库执行指定的操作。 ##### 授予特定数据库权限 如果只需要让某个用户在特定的数据库(如 `mydb`)中拥有这些...
JavaScript语言精粹新手教程,是一款好用的JavaScript代码语言总结教程,它汇集了JavaScript学习的几乎所有的基础知识点和基本的学习技巧以及新手常常犯错思索不过来的地方,为用户快速学习成长提供了必要的指导!