`
bulargy
  • 浏览: 67145 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

碰到一个钉子户,请大家给点意见

阅读更多
    事情是这样的,小弟第1次做TL,带4个人一起做一个平台,其中有一位实习生是某一个公司资格很老的项目经理的亲戚弄进来,此人看上去虽然还算机灵,但是基础很差,并且十分的不虚心。其他组员都对他感到很无奈,我也对他很无奈。曾经向我的老大反应过这个问题,但是老大也没办法,可能是公司高层也很看重那位项目经理的缘故,拉不下面子来。
    我和我的老大都找这个实习生谈过,我老大还说他甚至已经把话说的比较重了。但是他好了3天又开始犯毛病了。

列举一下他的部分让我郁闷的行为:
1. 长期不更新代码或者下载svn上最新的代码。
    经常自己改了2,30个类后再提交,我每次更新总能发现有鲜红的叉叉,然后对照的迁入日志找到他,去问他,他就说他的没问题;我一看他的代码还是几天前的。
2. 超级喜欢推卸责任
    不管是不是他的问题导致了开发中的一些bug或者错误,你只要问他,他连想都不想就脱口而出“肯定是XXX把什么改掉了”或者是“我什么都没动过”。我真的很讨厌这样的行为。作为一个实习生,一个新人,一个基础很差的开发者,犯错的机会是很大的。你做的或者和你的做的相关东西发生的问题,你总该去检查一下看看么。记得我刚工作那会,出了问题我都很紧张,生怕是自己什么地方写错了,影响到别人。
3. 超级不虚心
    这个也是让人非常受不了了,让他做什么,要么就是讨价还价“这样不好做啊,还是xxx这样吧”,要么就是“这个我不会,你帮我写一下”。有时候有不懂的问我或者其他成员,还没给他解释一半,就开始“这个我知道,那个我知道”,我靠,你都知道你问个xx啊~~~
4. 超级贪功
    我在我们的部门的confluence上列了一个项目的任务列表,让大家领取并且更新状态。本着开放的心态我让他们都可以更新,结果您猜怎么着,他老人家把我给他分的一个“xxx管理”任务自己拆成了5,6个“xxx查询”、“xxx修改”这样的任务了,生怕人家不知道他做了事情。真是无语啊。。。

    其实大家都是从新人过来的,就算现在我也只是算一个比较不那么新的新人;对待新人我都是比较宽容的,不会分太复杂的任务,也不会用要求自己的要求去要求他,但是碰到这样的人,我真的很无奈。并且看样子似乎不可能把他踢出局的。不知大家有没什么好的建议。。。小弟先谢过了
分享到:
评论
121 楼 bulargy 2008-05-22  
potala82_0 写道
人人都有缺点,那个小弟也不例外,lz当然更不例外。从lz的描述我看到,lz感情色彩极其严重。
1,lz说小弟基础很差,但对于一个实习生来说,能更新20,30个类,还有任务拆分成很多快,而且出现bug还能和老员工“推卸责任”,证明他很能干,基础不差!!
2,lz一句一个新人老员工,从新人过来等等,我听着都烦,lz肯定自己想象一个新员工应该怎么做,然后拿这个标准要求那个小弟。
3,动不动就去找老大,打小报告吗?这点事自己搞不定吗??
4,填写任务表,“***管理”,人家拆分,lz就不能任务列细吗?小弟列细,何来贪功之说??难道他把你做的列到他名下了吗??
5,说不虚心还叫上超级二字,人家问你还不虚心,或许人家说“这个我知道”,只是省了大家的时间,要你跳过呢?有问题吗??
自己审视一下自己的心态吧!我对你超级不满意!!
非攻击性言论,如有冒犯请见谅,请不要进行人身攻击。

很感谢你给出不一样的见解,确实我自己也有需要改正的地方,我在开始的时候已经声明了自己是第1次做tl,所以才希望大家出谋划策么
不过我还是要为你提出的几点质疑进行一下说明:
1. 基础差这个是不争的事实,这个我可以保证的,不是我一个人这么认为,所有人都这么认为。更新的类多是因为他很长时间不提交代码积累的并且是很多不应该修改的类他也改了。“推卸责任”和能干无关,他只是喜欢推卸,推卸的毫无道理可言,所以谈不上能干
2. 对,我是有想想一个新员工应该怎么做,但是这样有问题么?总得有的东西作为评价一个人的标准吧
3. 对,我是搞不定,所以才找老大的,因为我没有权利。我要有权利,我早就开了他了。再者,我找老大之前找所有的组员都谈过,大家都很反感他,我才去找老大的,因为我觉得事态严重了,他影响到整个团队了。
4. 细的任务,我都列在"XXX管理"后面的说明里了
5. 说“超级”2字,肯定时有我主观的想法在里面,但是绝对不是我一个人的看法。如果他是因为真的知道了才说“这个我知道”我还会拿出来和大家讨论么?肯定是说知道了却实际上仅仅是知道个“表象”或者知道个“特例”而已
120 楼 freej 2008-05-22  

potala82_0 写道

而且出现bug还能和老员工“推卸责任”,证明他很能干,基础不差!!


这句话我也是十分的不解啊...


trydofor 写道


>而且出现bug还能和老员工“推卸责任”,证明他很能干,基础不差!!

推卸责任的人,直接format.
一个队伍中,没有责任感的人,是最大的危险.
这种人,才越大,越危险.

有德有才,破格重用;有德无才,培养使用;有才无德,限制录用;无德无才,坚决不用。
<=== 不是我说的


严重同意,而且最后语句话很经典啊...

119 楼 chinata 2008-05-22  
<div class='quote_title'>liusong1111 写道</div>
<div class='quote_div'>
<div class='quote_div'>
<div class='quote_title'>引用</div>
<div class='quote_div'>张口闭口junit,对它应该保证什么还这么没谱。不像你,动不动就汗人家,我倒不觉得汗,因为你丫根本就是P都不会。</div>
<br/><br/>我希望明确一下你是天生就这个样,<br/>还是后天我做什么事造成的?<br/>对你人身攻击的事先保留投诉的权力,<br/>希望你在三日内给我一个合理的解释。<br/><br/><strong><span style='color: blue;'>很明确的说,就是因为你的垃圾贴让我这样做的。我从一个两三星级会员,到现在的一个钻,最根本的原因就是,看不惯你发的垃圾贴,不断站出来说,说的话太多混出来的。你爱投诉投诉吧。我就是一介草民,删号就删号,我不在乎。<br/><br/>我已经被你长时间的恶心闹腾的不行了,早点给我删号吧,清净是福,谢谢啦。<br/><br/>明天回老家,不陪你玩了。<br/>2008-5-21 14:57</span></strong><br/><br/>                                                              2008年5月21日14:11</div>
<br/></div>
<p>这样说就太较真了,javaeye只是个技术论坛,又不是英雄榜,钻石最多算是贡献度,钻石多说明别人对这个坛子的贡献大,就和CSDN上的专家分是一个道理</p>
<p>本质上,招聘版就是另外一个水版,别太较真</p>
118 楼 trydofor 2008-05-22  
>而且出现bug还能和老员工“推卸责任”,证明他很能干,基础不差!!

推卸责任的人,直接format.
一个队伍中,没有责任感的人,是最大的危险.
这种人,才越大,越危险.

有德有才,破格重用;有德无才,培养使用;有才无德,限制录用;无德无才,坚决不用。
<=== 不是我说的
117 楼 bulargy 2008-05-22  
河蟹 河蟹~~~~讨论问题对事不对人~~~要河蟹~~~
116 楼 chenzengpeng 2008-05-21  
资格老就是不一样···
115 楼 freej 2008-05-21  
Ashela 写道
bulargy 写道
再贴段他老人家的代码,我检查代码都想去撞墙了~~~

某一个类里

。。。
private List resourceTypeList;
。。。
public List getResourceTypeList() {
    return resourceTypeList;
}

public void setResourceTypeList(List resourceTypeList) {
    this.resourceTypeList = resourceTypeList;
}

。。。

public String view() {
    resourceTypeList=resourcesManager.findResourceType();
    this.setResourceTypeList(resourceTypeList);
    。。。
}
。。。


这个代码还可以了
看我这边的:
if(prNu!=null){
                    //System.out.println("-------prNu-----------"+prNu);
                    String [] xx= prNu.toString().split(" ");
        	        for(int zz=0;zz<xx.length;zz++){
        	            //System.out.println("------xx[zz]-------"+xx[zz]);
        	            String ccc = xx[zz].substring(0,3);
        	            //System.out.println("------ccc-------"+ccc.toString());
        	            String sign = ccc.substring(0,1);
        	            if(sign.equals("0")){
        	                sign0++;
        	            }
        	            if(sign.equals("1")){
        	                sign1++;
        	            }
        	            if(sign.equals("2")){
        	                sign2++;
        	            }
        	            if(sign.equals("3")){
        	                sign3++;
        	            }
        	            if(sign.equals("4")){
        	                sign4++;
        	            }
        	            if(sign.equals("5")){
        	                sign5++;
        	            }
        	            if(sign.equals("6")){
        	                sign6++;
        	            }
        	            if(sign.equals("7")){
        	                sign7++;
        	            }
        	            if(sign.equals("8")){
        	                sign8++;
        	            }
        	            if(sign.equals("9")){
        	                sign9++;
        	            }
        	        }

for(int zz2=0;zz2<xx2.length;zz2++){
	         	             String ccc2 = xx2[zz2].substring(0,3); 
	         	             //System.out.println("-----ccc2----"+ccc2);
	         	             //svwModel sm =findSvwModel(ccc2.toString(),sear0,sear1,sear2,sear3,sear4,sear5,sear6,sear7,sear8,sear9);
	    	                 if(prNum.indexOf(ccc2)>=0){
	    	                    oldFive = sm.getVehicleCode();
	    	                    four = "M"+sm.getVehicleCode().substring(1,4);
	    	                    //System.out.println("-----four----"+four+"-----oldFive----"+oldFive);
	    	                    continue;
	    	                 }
	    	                 else{
	    	                    oldFive = null;
	    	        			four = null;
	    	                    break;  
	    	                 }		    	                
	         	           }   	        





靠,彻底服了,膜拜一下...
114 楼 bulargy 2008-05-21  
Ashela 写道
bulargy 写道
再贴段他老人家的代码,我检查代码都想去撞墙了~~~

某一个类里

。。。
private List resourceTypeList;
。。。
public List getResourceTypeList() {
    return resourceTypeList;
}

public void setResourceTypeList(List resourceTypeList) {
    this.resourceTypeList = resourceTypeList;
}

。。。

public String view() {
    resourceTypeList=resourcesManager.findResourceType();
    this.setResourceTypeList(resourceTypeList);
    。。。
}
。。。


这个代码还可以了
看我这边的:
if(prNu!=null){
                    //System.out.println("-------prNu-----------"+prNu);
                    String [] xx= prNu.toString().split(" ");
        	        for(int zz=0;zz<xx.length;zz++){
        	            //System.out.println("------xx[zz]-------"+xx[zz]);
        	            String ccc = xx[zz].substring(0,3);
        	            //System.out.println("------ccc-------"+ccc.toString());
        	            String sign = ccc.substring(0,1);
        	            if(sign.equals("0")){
        	                sign0++;
        	            }
        	            if(sign.equals("1")){
        	                sign1++;
        	            }
        	            if(sign.equals("2")){
        	                sign2++;
        	            }
        	            if(sign.equals("3")){
        	                sign3++;
        	            }
        	            if(sign.equals("4")){
        	                sign4++;
        	            }
        	            if(sign.equals("5")){
        	                sign5++;
        	            }
        	            if(sign.equals("6")){
        	                sign6++;
        	            }
        	            if(sign.equals("7")){
        	                sign7++;
        	            }
        	            if(sign.equals("8")){
        	                sign8++;
        	            }
        	            if(sign.equals("9")){
        	                sign9++;
        	            }
        	        }

for(int zz2=0;zz2<xx2.length;zz2++){
	         	             String ccc2 = xx2[zz2].substring(0,3); 
	         	             //System.out.println("-----ccc2----"+ccc2);
	         	             //svwModel sm =findSvwModel(ccc2.toString(),sear0,sear1,sear2,sear3,sear4,sear5,sear6,sear7,sear8,sear9);
	    	                 if(prNum.indexOf(ccc2)>=0){
	    	                    oldFive = sm.getVehicleCode();
	    	                    four = "M"+sm.getVehicleCode().substring(1,4);
	    	                    //System.out.println("-----four----"+four+"-----oldFive----"+oldFive);
	    	                    continue;
	    	                 }
	    	                 else{
	    	                    oldFive = null;
	    	        			four = null;
	    	                    break;  
	    	                 }		    	                
	         	           }   	        



都是阶级苦难兄弟啊~~~~
113 楼 liusong1111 2008-05-21  
抛出异常的爱 写道
liusong1111 写道
抛出异常的爱 写道
bulargy 写道
miracle9i 写道
斗胆问一句,俺、俺没发现这段有啥不正常的啊

额的个神呐~~~
resourceTypeList=resourcesManager.findResourceType();  
this.setResourceTypeList(resourceTypeList);  

得到了值后,又把自己set给自己了~~~~你不觉得奇怪么~~~~汗一个先~~

这个不算什么。。。。
这种错。。。很常见。。。
不用太在意。。。。这种不算是错误。。。junit能过。


this和resourcesManager是一个东西?
如果不是,又代表什么?
如是,请问,您的junit里不检验业务逻辑?那么,你确信这两行代码不是  从别处复制粘贴过来修改不彻底造成的?
程度员误写这两行代码最初的意图是什么?或者,是重构不彻底造成的?

总之,你就那么确信它代表的业务逻辑没错?

张口闭口junit,对它应该保证什么还这么没谱。不像你,动不动就汗人家,我倒不觉得汗,因为你丫根本就是P都不会。




private List resourceTypeList;
public List getResourceTypeList() {
    return resourceTypeList;
}
public void setResourceTypeList(List resourceTypeList) {
    this.resourceTypeList = resourceTypeList;
}
public String view() {
    resourceTypeList=resourcesManager.findResourceType();
    this.setResourceTypeList(resourceTypeList);
    。。。。。
}


引用
this和resourcesManager是一个东西?
不知道。。。自己看


resourcesManager在上面代码里没有声明,很可能也是注入进来的,跟当前类不是一回事(当前类很可能是另一个Manager)。


引用
如是,请问,您的junit里不检验业务逻辑?那么,你确信这两行代码不是  从别处复制粘贴过来修改不彻底造成的?程度员误写这两行代码最初的意图是什么?或者,是重构不彻底造成的?

不知道。只要能过junit。。。老板又不给我加工钱我凭什么给他看代码,揣摩人家心里呢?

请注意,你上面断定人家肯定过junit(应为testcase),原话是“这种不算是错误。。。junit能过”,而不是后来所说的“只要能过junit。。。”
你现在在回贴,老板也没给你钱,所以你就可以胡乱发,是不?


引用
总之,你就那么确信它代表的业务逻辑没错?

我自己写代码我都作不到逻辑上没错,我评什么要求别人?
PS:junit又不是我写的。应该是写代码的人写的。

我说过“你要求别人必须写正确逻辑”的话吗?

引用
张口闭口junit,对它应该保证什么还这么没谱。不像你,动不动就汗人家,我倒不觉得汗,因为你丫根本就是P都不会。


我希望明确一下你是天生就这个样,
还是后天我做什么事造成的?
对你人身攻击的事先保留投诉的权力,
希望你在三日内给我一个合理的解释。

很明确的说,就是因为你的垃圾贴让我这样做的。我从一个两三星级会员,到现在的一个钻,最根本的原因就是,看不惯你发的垃圾贴,不断站出来说,说的话太多混出来的。你爱投诉投诉吧。我就是一介草民,删号就删号,我不在乎。

我已经被你长时间的恶心闹腾的不行了,早点给我删号吧,清净是福,谢谢啦。

明天回老家,不陪你玩了。
2008-5-21 14:57


                                                              2008年5月21日14:11

112 楼 Ashela 2008-05-21  
bulargy 写道
再贴段他老人家的代码,我检查代码都想去撞墙了~~~

某一个类里

。。。
private List resourceTypeList;
。。。
public List getResourceTypeList() {
    return resourceTypeList;
}

public void setResourceTypeList(List resourceTypeList) {
    this.resourceTypeList = resourceTypeList;
}

。。。

public String view() {
    resourceTypeList=resourcesManager.findResourceType();
    this.setResourceTypeList(resourceTypeList);
    。。。
}
。。。


这个代码还可以了
看我这边的:
if(prNu!=null){
                    //System.out.println("-------prNu-----------"+prNu);
                    String [] xx= prNu.toString().split(" ");
        	        for(int zz=0;zz<xx.length;zz++){
        	            //System.out.println("------xx[zz]-------"+xx[zz]);
        	            String ccc = xx[zz].substring(0,3);
        	            //System.out.println("------ccc-------"+ccc.toString());
        	            String sign = ccc.substring(0,1);
        	            if(sign.equals("0")){
        	                sign0++;
        	            }
        	            if(sign.equals("1")){
        	                sign1++;
        	            }
        	            if(sign.equals("2")){
        	                sign2++;
        	            }
        	            if(sign.equals("3")){
        	                sign3++;
        	            }
        	            if(sign.equals("4")){
        	                sign4++;
        	            }
        	            if(sign.equals("5")){
        	                sign5++;
        	            }
        	            if(sign.equals("6")){
        	                sign6++;
        	            }
        	            if(sign.equals("7")){
        	                sign7++;
        	            }
        	            if(sign.equals("8")){
        	                sign8++;
        	            }
        	            if(sign.equals("9")){
        	                sign9++;
        	            }
        	        }

for(int zz2=0;zz2<xx2.length;zz2++){
	         	             String ccc2 = xx2[zz2].substring(0,3); 
	         	             //System.out.println("-----ccc2----"+ccc2);
	         	             //svwModel sm =findSvwModel(ccc2.toString(),sear0,sear1,sear2,sear3,sear4,sear5,sear6,sear7,sear8,sear9);
	    	                 if(prNum.indexOf(ccc2)>=0){
	    	                    oldFive = sm.getVehicleCode();
	    	                    four = "M"+sm.getVehicleCode().substring(1,4);
	    	                    //System.out.println("-----four----"+four+"-----oldFive----"+oldFive);
	    	                    continue;
	    	                 }
	    	                 else{
	    	                    oldFive = null;
	    	        			four = null;
	    	                    break;  
	    	                 }		    	                
	         	           }   	        


111 楼 抛出异常的爱 2008-05-21  
liusong1111 写道
抛出异常的爱 写道
bulargy 写道
miracle9i 写道
斗胆问一句,俺、俺没发现这段有啥不正常的啊

额的个神呐~~~
resourceTypeList=resourcesManager.findResourceType();  
this.setResourceTypeList(resourceTypeList);  

得到了值后,又把自己set给自己了~~~~你不觉得奇怪么~~~~汗一个先~~

这个不算什么。。。。
这种错。。。很常见。。。
不用太在意。。。。这种不算是错误。。。junit能过。


this和resourcesManager是一个东西?
如果不是,又代表什么?
如是,请问,您的junit里不检验业务逻辑?那么,你确信这两行代码不是  从别处复制粘贴过来修改不彻底造成的?
程度员误写这两行代码最初的意图是什么?或者,是重构不彻底造成的?

总之,你就那么确信它代表的业务逻辑没错?

张口闭口junit,对它应该保证什么还这么没谱。不像你,动不动就汗人家,我倒不觉得汗,因为你丫根本就是P都不会。




private List resourceTypeList;
public List getResourceTypeList() {
    return resourceTypeList;
}
public void setResourceTypeList(List resourceTypeList) {
    this.resourceTypeList = resourceTypeList;
}
public String view() {
    resourceTypeList=resourcesManager.findResourceType();
    this.setResourceTypeList(resourceTypeList);
    。。。。。
}


引用
this和resourcesManager是一个东西?
不知道。。。自己看
引用
如是,请问,您的junit里不检验业务逻辑?那么,你确信这两行代码不是  从别处复制粘贴过来修改不彻底造成的?程度员误写这两行代码最初的意图是什么?或者,是重构不彻底造成的?

不知道。只要能过junit。。。老板又不给我加工钱我凭什么给他看代码,揣摩人家心里呢?

引用
总之,你就那么确信它代表的业务逻辑没错?

我自己写代码我都作不到逻辑上没错,我评什么要求别人?
PS:junit又不是我写的。应该是写代码的人写的。
引用
张口闭口junit,对它应该保证什么还这么没谱。不像你,动不动就汗人家,我倒不觉得汗,因为你丫根本就是P都不会。


我希望明确一下你是天生就这个样,
还是后天我做什么事造成的?
对你人身攻击的事先保留投诉的权力,
希望你在三日内给我一个合理的解释。

                                                                        2008年5月21日14:11
110 楼 freej 2008-05-21  
woodsgreen 写道

另外,各位刚当上、即将要当TL的兄弟们,推荐你们看看《职场动物进化手册》,挺有意思的一本书,适合中国国情。


一看你的招就知道...,哈哈。我也看过这本手册,寓教于乐,很不错,很值得推敲。不过要是都读过了(不管官宦还是平民),那就等于都没读过,不建议推广,嘿嘿。
109 楼 bulargy 2008-05-21  
liusong1111 写道
抛出异常的爱 写道
bulargy 写道
miracle9i 写道
斗胆问一句,俺、俺没发现这段有啥不正常的啊

额的个神呐~~~
resourceTypeList=resourcesManager.findResourceType();  
this.setResourceTypeList(resourceTypeList);  

得到了值后,又把自己set给自己了~~~~你不觉得奇怪么~~~~汗一个先~~

这个不算什么。。。。
这种错。。。很常见。。。
不用太在意。。。。这种不算是错误。。。junit能过。


this和resourcesManager是一个东西?
如果不是,又代表什么?
如是,请问,您的junit里不检验业务逻辑?那么,你确信这两行代码不是  从别处复制粘贴过来修改不彻底造成的?
程度员误写这两行代码最初的意图是什么?或者,是重构不彻底造成的?

总之,你就那么确信它代表的业务逻辑没错?

张口闭口junit,对它应该保证什么还这么没谱。不像你,动不动就汗人家,我倒不觉得汗,因为你丫根本就是P都不会。




这位兄台的语气过激了,无论对错,大家还是应该心平气和的讨论~~~
this是包含这2行代码的类,因为这2行上面有set/get方法,所以是得到值后自己set给自己了。
犯这个错,应该是他贴别人代码,然后又没改对;因为其他地方也有类似copy但是没有改完全的代码,所以我是这么认为的。。。

108 楼 bulargy 2008-05-21  
woodsgreen 写道
以我带team的经验,宁教笨人,不教“恶”人。如果人的品格有问题,他还是不要成为合格的程序员才好,否则走到哪里害人到哪里。
所以楼主的目标应该遵循下面的优先顺序:
1. 赶走。方法有很多,基本上兄弟们都说到了,我也没有高招。
2. 赶不走的话,边缘化他。就是不给他活儿干,或者让他做调研之类的活儿,或者干无关紧要的体力活。如果他是那种拿到调研任务5分钟就号称搞定的家伙,你大可把题目做细一点,比如定下来调研课题后,找本讲这个东西的书,把目录抄一遍,告诉他这是调研提纲,每个问题都必须回答,要有示例程序。反正要求很明确,做不到就返工。
3. 不能赶走也不能边缘化,还不能表现出不重用的话,可以给他些假任务。这个要点技巧的,比如可以故意给某个模块弄出点过度设计,其中一部分是可有可无的,没实现也不影响整体运行的,但如果老大要review也能理直气壮的说出其重要性。这样的模块交给此君,反正随便你了,做成啥样都行,还可以假模假式的review、提出整改意见。

我一般不建议对不能赶走又不能边缘化的人采取穿小鞋的方法,例如故意刁难他,让他心怀怨怼的离开。道理很明白,如果有人持反对意见我倒很有兴趣讨论一下。

似乎赞成边缘化他的人比较多,这里我要提醒楼主一声,你要做好自我保护。他不是傻瓜,在被边缘化一段时间后说不定会心生怨恨,如果要报复你怎么办(有靠山的小人)?自我保护有两个方面:
1. 收集他工作不力的证据。新劳动法规定,要证明员工工作不力,必须有其认可的书面材料。就是说,你得在布置任务时发邮件给他,把要求都讲清楚,他的产出也邮件给你,然后把你认为他做的不合要求的地方再邮件给他,要求他确认(他如果不肯确认,不妨在邮件里说明“如果x月x日x点钟之前不回复,就认为你已认可。”)。往来邮件可以写的官样文章,这样如果起争议,错不在你。
2. 布置垃圾任务时尽量隐蔽。公司不会容忍你占用一个名额却不让他有产出,即使你有客观原因。(不要说什么不公平,这世道本来就……嘿嘿~)。如果你给布置的是看上去冠冕堂皇且经得起推敲的任务,那么在起争议时,最多就是你在技术判断上有失误,而不是故意排垃圾任务刁难他。

需要声明一下,我team里没这样的家伙,我也只不过是在几年TL经验的基础上纸上谈兵罢了,可别给我戴上“阴险”、“狡诈”之类的高帽子。

另外,各位刚当上、即将要当TL的兄弟们,推荐你们看看《职场动物进化手册》,挺有意思的一本书,适合中国国情。

这位仁兄的建议很中肯,受教了~~~
107 楼 liusong1111 2008-05-20  
抛出异常的爱 写道
bulargy 写道
miracle9i 写道
斗胆问一句,俺、俺没发现这段有啥不正常的啊

额的个神呐~~~
resourceTypeList=resourcesManager.findResourceType();  
this.setResourceTypeList(resourceTypeList);  

得到了值后,又把自己set给自己了~~~~你不觉得奇怪么~~~~汗一个先~~

这个不算什么。。。。
这种错。。。很常见。。。
不用太在意。。。。这种不算是错误。。。junit能过。


this和resourcesManager是一个东西?
如果不是,又代表什么?
如是,请问,您的junit里不检验业务逻辑?那么,你确信这两行代码不是  从别处复制粘贴过来修改不彻底造成的?
程度员误写这两行代码最初的意图是什么?或者,是重构不彻底造成的?

总之,你就那么确信它代表的业务逻辑没错?

张口闭口junit,对它应该保证什么还这么没谱。不像你,动不动就汗人家,我倒不觉得汗,因为你丫根本就是P都不会。



106 楼 woodsgreen 2008-05-20  
以我带team的经验,宁教笨人,不教“恶”人。如果人的品格有问题,他还是不要成为合格的程序员才好,否则走到哪里害人到哪里。
所以楼主的目标应该遵循下面的优先顺序:
1. 赶走。方法有很多,基本上兄弟们都说到了,我也没有高招。
2. 赶不走的话,边缘化他。就是不给他活儿干,或者让他做调研之类的活儿,或者干无关紧要的体力活。如果他是那种拿到调研任务5分钟就号称搞定的家伙,你大可把题目做细一点,比如定下来调研课题后,找本讲这个东西的书,把目录抄一遍,告诉他这是调研提纲,每个问题都必须回答,要有示例程序。反正要求很明确,做不到就返工。
3. 不能赶走也不能边缘化,还不能表现出不重用的话,可以给他些假任务。这个要点技巧的,比如可以故意给某个模块弄出点过度设计,其中一部分是可有可无的,没实现也不影响整体运行的,但如果老大要review也能理直气壮的说出其重要性。这样的模块交给此君,反正随便你了,做成啥样都行,还可以假模假式的review、提出整改意见。

我一般不建议对不能赶走又不能边缘化的人采取穿小鞋的方法,例如故意刁难他,让他心怀怨怼的离开。道理很明白,如果有人持反对意见我倒很有兴趣讨论一下。

似乎赞成边缘化他的人比较多,这里我要提醒楼主一声,你要做好自我保护。他不是傻瓜,在被边缘化一段时间后说不定会心生怨恨,如果要报复你怎么办(有靠山的小人)?自我保护有两个方面:
1. 收集他工作不力的证据。新劳动法规定,要证明员工工作不力,必须有其认可的书面材料。就是说,你得在布置任务时发邮件给他,把要求都讲清楚,他的产出也邮件给你,然后把你认为他做的不合要求的地方再邮件给他,要求他确认(他如果不肯确认,不妨在邮件里说明“如果x月x日x点钟之前不回复,就认为你已认可。”)。往来邮件可以写的官样文章,这样如果起争议,错不在你。
2. 布置垃圾任务时尽量隐蔽。公司不会容忍你占用一个名额却不让他有产出,即使你有客观原因。(不要说什么不公平,这世道本来就……嘿嘿~)。如果你给布置的是看上去冠冕堂皇且经得起推敲的任务,那么在起争议时,最多就是你在技术判断上有失误,而不是故意排垃圾任务刁难他。

需要声明一下,我team里没这样的家伙,我也只不过是在几年TL经验的基础上纸上谈兵罢了,可别给我戴上“阴险”、“狡诈”之类的高帽子。

另外,各位刚当上、即将要当TL的兄弟们,推荐你们看看《职场动物进化手册》,挺有意思的一本书,适合中国国情。
105 楼 freej 2008-05-20  
bulargy 写道
pikachu 写道
bulargy 写道
pikachu 写道
你确定你没问题,而且你的其他小弟同你一条心,那么想办法把他踢掉。
不值得白养一张嘴。

我也想,可我没权利~~~


看看能不能至少从team里踢掉他,或者和项目经理说,这人没法用,要么换人,要么加工期。

要是有人在team里不干活还有人把他的活接下来,其他人会怎么想。

加工期也没用,只要他动手改了代码,我们就又的改。。。如此循环~~~我还是不让他写得了~~~一了百了~~~



正解正解...如此这般甚好甚好...
104 楼 bulargy 2008-05-20  
pikachu 写道
bulargy 写道
pikachu 写道
你确定你没问题,而且你的其他小弟同你一条心,那么想办法把他踢掉。
不值得白养一张嘴。

我也想,可我没权利~~~


看看能不能至少从team里踢掉他,或者和项目经理说,这人没法用,要么换人,要么加工期。

要是有人在team里不干活还有人把他的活接下来,其他人会怎么想。

加工期也没用,只要他动手改了代码,我们就又的改。。。如此循环~~~我还是不让他写得了~~~一了百了~~~
103 楼 bulargy 2008-05-20  
xyz20003 写道
bulargy 写道

其实也没追求完美,就是能写出“正确点”“正常点”“规范点”的代码
团队代码规范文档java的和js的都订好了,之前都让他们看过。
我估计他也是看过就忘干净了,让他去读读《think in java》补补基础,读读《重构》改善改善代码质量,至今未读。。。我都放弃了。。。。


可能误会我的意思了。
我的意思是,把checkstyle验证写到脚本里,用脚本向svn提交代码时,如果checkstyle有问题就直接中断,必须checkstyle检测出的错误为零才可以向svn提交代码。以前听说有人这么做过,感觉非常邪恶。

代码规范,要不能这么要求,那基本就没啥效果了,全靠人类本身追求完美的意愿,常常会被懒惰打败。
与其让xx去读xx,不如让他随便写呢,必须限制什么什么绝对不能写,写了就要发回去重做,才有效果。做不到这么具体的话,趁早还是别对代码规格做要求了。

不过,看你说的情况,代码规范尚在其次,那位高人写的代码似乎根本运行不了啊。想法给他配一个测试,要不就强调单元测试,见红的时候千万别提交给svn,省得把其他人的代码都搞乱。

希望上帝保佑我啊~~~我也想用邪恶的方法,可惜不会~~嘿嘿~~ 
102 楼 pikachu 2008-05-20  
bulargy 写道
pikachu 写道
你确定你没问题,而且你的其他小弟同你一条心,那么想办法把他踢掉。
不值得白养一张嘴。

我也想,可我没权利~~~


看看能不能至少从team里踢掉他,或者和项目经理说,这人没法用,要么换人,要么加工期。

要是有人在team里不干活还有人把他的活接下来,其他人会怎么想。

相关推荐

    各种钉子的模型

    当你拥有一个钉子的STL模型时,你可以直接将它导入3D打印机进行打印,或者在3D建模软件中进行编辑和修改,以适应特定的需求。 其次,STP(STEP)文件则是基于参数化特征的CAD(计算机辅助设计)数据交换格式。它...

    PIN 地图钉子(PSD下载)

    标题“PIN 地图钉子(PSD下载)”指的是一个设计资源,它是一个用于地图应用或地理位置指示的图形元素,通常用作图标或UI设计的一部分。PSD是Adobe Photoshop的文件格式,意味着这个资源是可编辑的,设计师可以...

    精简版钉子工具

    操作上的简易性是【精简版钉子工具】受到青睐的另一个重要原因。用户不必经过复杂的设置过程,只需打开软件,一键选择需要固定的窗口即可轻松将其固定在屏幕前端。为了满足不同用户的个性化需求,该软件还通常提供...

    钉子板上的多边形.ppt

    这引导学生探索更复杂的情况,尝试找到一个通用公式来描述任何钉子数和内部钉子数下的多边形面积。 综上所述,这个PPT内容的核心知识点包括: 1. 多边形面积与边上的钉子数的关系,初猜为线性关系S = n÷2。 2. ...

    如何实现类似VC属性表中的钉子按钮

    在VC++中,属性表(Property Sheet)是一种常见的用于设置或查看对象属性的对话框,而"钉子按钮"(通常称为“钉选”或“固定”功能)则是一个特殊的控件,允许用户保持某些视图或面板处于可见状态,即使在切换其他...

    谈锤子和钉子给我们的启示.pdf

    谈锤子和钉子给我们的启示.pdf

    Pull The Pin拔钉子小游戏的Unity源码

    Unity有趣的拔钉子小游戏,代码完整,有100个关卡,也适合二次开发。玩法:将所有钉子按正确的方式拔出,让所有小球落入容器中。支持Unity编辑器版本:2019.2.6f1及以上。

    绕线画 钉子画 勾线画 自动设计软件源码

    《绕线画、钉子画、勾线画自动设计软件源码详解》 在IT行业中,源码软件的开发和分享对于技术学习和创新至关重要。本文将深入探讨一款基于JavaScript开发...对于有志于前端开发和艺术编程的人员,这是一个宝贵的资源。

    一场灾害引发的钉子革命.pdf

    标题中的“一场灾害引发的钉子革命”讲述的是一个关于创新和工程改进的故事,而描述并未提供具体细节。从标签的缺失,我们可以推测这是一篇关于技术创新和建筑安全的文章。主要内容详细介绍了研究生伊迪·萨特如何在...

    西北工业大学复试 正方形

    此时帐篷的尺寸并不重要,但我们必须使帐篷的四角形成一个正方形,所以我们必须使选取的四个用于放置钉子的点构成一个正方形。现在,山顶上能够用于固定钉子的点已经被选出,你的任务仅仅是判断它们是否能构成一个...

    钉子和小球(acm 1189)

    pku 一道动态规划的经典题

    kekma-site-script:该脚本取自网站kekma.gakekma.netkekma.xyz。这个吱吱叫声是SHOCK网站,当您转到该网站时,用户会听到满音量播放的可怕声音,还有一个视频,视频中一个男人用钉子钉住了尿道,一个男人的脸撕裂,一个婴儿在烤架上烤的GIF动画。 不建议访问kekma.net网站,因为这可能会使您难以接受。 该脚本已于2021年1月2日16点下载并发布

    这个吱吱叫声是SHOCK网站,当您转到该网站时,用户会听到满音量播放的可怕声音,这是一个男人用钉子钉上视频的视频。进入他的尿道和gif动画中,一个男人的脸庞撕裂,一个婴儿在烤架上烤。 不建议访问kekma.net网站,...

    将线在钉子之间编织成一个圆圈以产生图像_Processing_下载.zip

    标题中的“将线在钉子之间编织成一个圆圈以产生图像”是一个艺术与编程结合的概念,灵感可能来源于物理世界中的“钉子画”,也就是利用线条在固定点(如钉子)之间穿梭来创作图像。在这个场景中,Processing被用作...

    行业文档-设计装置-一种建筑装修用钉子.zip

    "行业文档-设计装置-一种建筑装修用钉子.zip"这个压缩包文件聚焦于介绍一种专用于建筑装修的钉子设计,其内容可能包含了这种特殊钉子的设计原理、应用场景、优势以及施工方法等相关知识。 一、钉子设计原理 建筑...

    读《钉子的故事》有感.doc

    《钉子的故事》这篇文章以一个简单却寓意深远的故事,揭示了情绪管理的重要性,尤其是对于我们的人际关系和内心世界产生的深远影响。故事中的小男孩通过钉子和栅栏的比喻,学会了控制自己的脾气,从而理解到每一次...

    vc++实现 钉子按钮(按下不弹起来,再按弹起来).zip

    在本文中,我们将深入探讨如何使用Visual C++来实现一个具有特殊行为的“钉子按钮”(Nail Button)。这个按钮的特点是,当用户首次点击时,它不会立即弹起,而是保持按下状态,直到用户再次点击才会恢复原状。这种...

    蓝色背景漫天钉子HTML5特效.zip

    【蓝色背景漫天钉子HTML5特效.zip】这个压缩包包含了一个独特的网页视觉效果,它融合了HTML5、CSS3以及可能的JavaScript技术,特别是基于jQuery的库来实现。这个特效设计巧妙,能够吸引用户的注意力,同时为网页增添...

    软件价值16-敲钉子的项目包

    在IT行业中,"软件价值16-敲钉子的项目包"这个标题暗示了一个关于软件开发的特定项目,其中可能包含了一种工具或者方法论,用以提升软件项目的效率和价值。"html之敲钉子"描述则进一步指出,这个项目可能与HTML(超...

    取得管理员所有权.reg

    如果因为权限不够,不能删除钉子户文件,大家可以用下载这个注册表哦,非常好用

    读《拔去心中的钉子》有感.doc

    《拔去心中的钉子》这篇文章讲述了一个简单却深刻的故事,旨在教导我们如何管理和控制自己的情绪,尤其是愤怒和暴躁的情绪。故事中,一位父亲通过钉子和栅栏的比喻,帮助他的儿子理解发脾气的后果,并教会他如何改正...

Global site tag (gtag.js) - Google Analytics