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

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

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

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

    其实大家都是从新人过来的,就算现在我也只是算一个比较不那么新的新人;对待新人我都是比较宽容的,不会分太复杂的任务,也不会用要求自己的要求去要求他,但是碰到这样的人,我真的很无奈。并且看样子似乎不可能把他踢出局的。不知大家有没什么好的建议。。。小弟先谢过了
分享到:
评论
101 楼 xyz20003 2008-05-20  
bulargy 写道

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


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

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

不过,看你说的情况,代码规范尚在其次,那位高人写的代码似乎根本运行不了啊。想法给他配一个测试,要不就强调单元测试,见红的时候千万别提交给svn,省得把其他人的代码都搞乱。
100 楼 bulargy 2008-05-20  
freej 写道
fins 写道
给那小子安排个任务, 让他读一读下面这篇帖子以及回复 然后让写个读后感
帖子如下:
http://www.iteye.com/topic/193218


轮回是这样产生的,呵呵

其实我们组的人都爱上javaeye,我写在javaeye上也希望他哪天良心发现能看看,然后反省下自己。。。
可惜他老人家应该至今都没看过吧。。。。
99 楼 bulargy 2008-05-20  
freej 写道
xyz20003 写道
freej 写道

抛兄很务实啊,不过测试能过不等于易于维护,所以还是被看做是坏代码。


应该只属于多复制了无用代码。我觉得这种代码也不是什么大问题,因为这里重复赋值也不会出现问题,就是会让后来维护的人员迷糊。

不知道pmd,findbugs这些检测工具能不能检测出这种无用的重复代码。

PS:这个,我觉得完全靠人管理,没法解决这个兄弟的问题,他写的代码毕竟是可运行的。
但是呢,如果追求完美的话,不如指定一些checkstyle规则,然后用pmd,findbugs加强代码质量检测,写出违反规则的代码考虑是记录一下,还是发回去重写啊。
不过这样的话,你眼前清净了,手下的同志们可就要诉苦了。



如果都养成了好习惯的话,那写出干净的代码是很自然的事,不会觉得苦。我觉得好的习惯是培养的重点,这样有利于整个开发维护过程的顺利进行。

pmd和findbugs我都没用过,有空真的学学习了。

对呀,养成好一点的代码习惯,最好是团队内大家的代码习惯有一定的默契,那样才能提高工作效率和质量,也便于维护。
98 楼 bulargy 2008-05-20  
xyz20003 写道
freej 写道

抛兄很务实啊,不过测试能过不等于易于维护,所以还是被看做是坏代码。


应该只属于多复制了无用代码。我觉得这种代码也不是什么大问题,因为这里重复赋值也不会出现问题,就是会让后来维护的人员迷糊。

不知道pmd,findbugs这些检测工具能不能检测出这种无用的重复代码。

PS:这个,我觉得完全靠人管理,没法解决这个兄弟的问题,他写的代码毕竟是可运行的。
但是呢,如果追求完美的话,不如指定一些checkstyle规则,然后用pmd,findbugs加强代码质量检测,写出违反规则的代码考虑是记录一下,还是发回去重写啊。
不过这样的话,你眼前清净了,手下的同志们可就要诉苦了。

其实也没追求完美,就是能写出“正确点”“正常点”“规范点”的代码
团队代码规范文档java的和js的都订好了,之前都让他们看过。
我估计他也是看过就忘干净了,让他去读读《think in java》补补基础,读读《重构》改善改善代码质量,至今未读。。。我都放弃了。。。。
97 楼 bulargy 2008-05-20  
pikachu 写道
你确定你没问题,而且你的其他小弟同你一条心,那么想办法把他踢掉。
不值得白养一张嘴。

我也想,可我没权利~~~
96 楼 bulargy 2008-05-20  
fins 写道
给那小子安排个任务, 让他读一读下面这篇帖子以及回复 然后让写个读后感
帖子如下:
http://www.iteye.com/topic/193218

呵呵,这招够损啊~~~
95 楼 bulargy 2008-05-20  
抛出异常的爱 写道
bulargy 写道
miracle9i 写道
斗胆问一句,俺、俺没发现这段有啥不正常的啊

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

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

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

额的神啊,我又发现了无数让我又想笑又想哭的代码了~~~~
例如:
自己拼hql 然后人云亦云的抄别人用占位符传参数的代码
修改公用类,不通知其他人
一个东西有树和列表2种都可以操作,为了做树了就把用列表操作的给删掉了,导致错误
让他模糊查询,他用"="号
有多个查询条件,他对所有的组合进行if else
还有那命名。。。。XxxId的意思竟然能够是Xxx不能为空
我彻底的崩溃了,他老人家现在回学校答辩去了,一个人写的代码,我们3帮他改bug,前天统计出43个。。。。今天又n个
他要是回来了,还是好好回炉几个月,谁的面子我都不卖了~~~
94 楼 freej 2008-05-20  
xyz20003 写道
freej 写道

抛兄很务实啊,不过测试能过不等于易于维护,所以还是被看做是坏代码。


应该只属于多复制了无用代码。我觉得这种代码也不是什么大问题,因为这里重复赋值也不会出现问题,就是会让后来维护的人员迷糊。

不知道pmd,findbugs这些检测工具能不能检测出这种无用的重复代码。

PS:这个,我觉得完全靠人管理,没法解决这个兄弟的问题,他写的代码毕竟是可运行的。
但是呢,如果追求完美的话,不如指定一些checkstyle规则,然后用pmd,findbugs加强代码质量检测,写出违反规则的代码考虑是记录一下,还是发回去重写啊。
不过这样的话,你眼前清净了,手下的同志们可就要诉苦了。



如果都养成了好习惯的话,那写出干净的代码是很自然的事,不会觉得苦。我觉得好的习惯是培养的重点,这样有利于整个开发维护过程的顺利进行。

pmd和findbugs我都没用过,有空真的学学习了。
93 楼 xyz20003 2008-05-20  
freej 写道

抛兄很务实啊,不过测试能过不等于易于维护,所以还是被看做是坏代码。


应该只属于多复制了无用代码。我觉得这种代码也不是什么大问题,因为这里重复赋值也不会出现问题,就是会让后来维护的人员迷糊。

不知道pmd,findbugs这些检测工具能不能检测出这种无用的重复代码。

PS:这个,我觉得完全靠人管理,没法解决这个兄弟的问题,他写的代码毕竟是可运行的。
但是呢,如果追求完美的话,不如指定一些checkstyle规则,然后用pmd,findbugs加强代码质量检测,写出违反规则的代码考虑是记录一下,还是发回去重写啊。
不过这样的话,你眼前清净了,手下的同志们可就要诉苦了。
92 楼 pikachu 2008-05-20  
你确定你没问题,而且你的其他小弟同你一条心,那么想办法把他踢掉。
不值得白养一张嘴。
91 楼 freej 2008-05-20  
fins 写道
给那小子安排个任务, 让他读一读下面这篇帖子以及回复 然后让写个读后感
帖子如下:
http://www.iteye.com/topic/193218


轮回是这样产生的,呵呵
90 楼 freej 2008-05-20  
抛出异常的爱 写道
bulargy 写道
miracle9i 写道
斗胆问一句,俺、俺没发现这段有啥不正常的啊

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

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

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


抛兄很务实啊,不过测试能过不等于易于维护,所以还是被看做是坏代码。
89 楼 fins 2008-05-20  
给那小子安排个任务, 让他读一读下面这篇帖子以及回复 然后让写个读后感
帖子如下:
http://www.iteye.com/topic/193218
88 楼 抛出异常的爱 2008-05-20  
bulargy 写道
miracle9i 写道
斗胆问一句,俺、俺没发现这段有啥不正常的啊

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

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

这个不算什么。。。。
这种错。。。很常见。。。
不用太在意。。。。这种不算是错误。。。junit能过。
87 楼 bulargy 2008-05-20  
miracle9i 写道
斗胆问一句,俺、俺没发现这段有啥不正常的啊

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

得到了值后,又把自己set给自己了~~~~你不觉得奇怪么~~~~汗一个先~~
86 楼 miracle9i 2008-05-20  
斗胆问一句,俺、俺没发现这段有啥不正常的啊
85 楼 bulargy 2008-05-19  
freej 写道
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);
    。。。
}
。。。




这种错误...你就将就着教吧,貌似是没别的办法,基础问题。要不就采取“晒人”行动,呵呵。


哎,这只是冰山一角,还有更可笑的~~
84 楼 freej 2008-05-19  
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);
    。。。
}
。。。




这种错误...你就将就着教吧,貌似是没别的办法,基础问题。要不就采取“晒人”行动,呵呵。
83 楼 bulargy 2008-05-19  
再贴段他老人家的代码,我检查代码都想去撞墙了~~~

某一个类里

。。。
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);
    。。。
}
。。。
82 楼 bulargy 2008-05-19  
freej 写道
bulargy 写道
freej 写道
kkndstar 写道
  其实最简单的方案,就是直接和老板反殃,连带那个老项目经理一起开除,一下省了两张嘴,年终奖还可以多一些,说不定你还可以兼做那老pm的位置



晕,从管理角度来讲,晕死,

确实,越级上报乃管理之大忌~~~


如果符合下面一条以上,我觉的可以这么做:

1、你完全有能力胜任你直接上司的职位,并且你已经做好“夺权”的其他准备。

2、你对这家公司已经绝望或已经有更好的去处,准备在走之前揭露下某些人的行径(直接上司会恨你,老板也不会谢你)。


1. 我老大很猛,10多年的工作经验,算是不错的架构师和经理
2. 还没有到绝望的程度,可能在一些方面有些失望,但是至少我看到有些地方再改变,这点还是值得表扬一下

相关推荐

    各种钉子的模型

    当你拥有一个钉子的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

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

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

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

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

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

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

    西北工业大学复试 正方形

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

    钉子和小球(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"这个压缩包文件聚焦于介绍一种专用于建筑装修的钉子设计,其内容可能包含了这种特殊钉子的设计原理、应用场景、优势以及施工方法等相关知识。 一、钉子设计原理 建筑...

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

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

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

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

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

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

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

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

    取得管理员所有权.reg

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

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

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

Global site tag (gtag.js) - Google Analytics