如果“以身作则”无效,该怎么办?[关闭]


40

我已经在一家大公司(拥有8000多名员工)工作了将近2年,而在我完成学习课程后才被录用。

这里的每个人都必须每天处理遗留代码,这些遗留代码通常设计得很糟糕并且充满了骇客。首先,我保持低调,尽量不要批评太多。但是,从目前的情况来看,这种情况已经变得很难适应,而且似乎没有人愿意改进/替换我们使用的工具。

更明确地说,我们有:

  • 过时的源代码控制工具(Visual SourceSafe)
  • 普通的旧makefile,仅支持完全重建
  • .def 所有现有体系结构必须手动维护的文件
  • 整体头文件和包含很少文件的项目(但每个头文件都有大约3000行代码,有时需要处理非常不同的任务)
  • 不使用“新”语言工具(std::string不是新语言,但除我以外没有人使用它)

几个月前,我决定通过设计一个新的编译环境来对此做一些事情。我可以使增量构建可靠地工作,更快的编译时间,更好的结构化项目,自动.def文件生成。我什至还创建了一个从Git到Visual SourceSafe的桥梁。

我向几位同事和我们的老板展示了我的成就,但没人关心。他们都像“嗯...人们现在已经习惯那样做了。我们为什么要改变事情?”

我建议的更改是为了使我们能够从旧系统到新系统的一个软过渡而设计的。每个改进都可以单独安全地应用。

我什至试图让我的一些同事参与到变更中。但是到目前为止,还没有成功。

您是否已经遇到过类似情况?如果“以身作则”无效,该怎么办?


10
“几个月前,我决定做一些事情,”……“我向老板展示了结果”。听起来您那里的订单错了。

3
@ThorbjørnRavnAndersen:不知道要怎么做:我应该如何展示我还没有做的事情?也许您是说我应该在这样做之前先问清楚?
ereOn 2012年

21
我去过那里,而IMO,您需要离开那里,因为俗话说,“白痴总是会打败您-首先他会愚弄您的水平,然后再以您的经验击败您”。如果人们没有意识到升级的需要,那就是专业停滞,而我们领域的停滞就是死亡。您可以将已完成的工作放到简历上,如果您表现良好,无论如何,您可能会在一个月内找到一份好工作。
TC1 2012年

8
圣牛,有8000个开发人员?您为谁工作,Facebook?谷歌?微软?
Kyralessa

5
@Kyralessa:我不认为Facebook和Google都不使用VSS。
杰克·伯杰

Answers:


46

针对负责人的目标:“以身作则”应该有所改进,但应该针对的不是技术人员。也许您在改进技术上投入了太多时间,但在他们的头脑中却没有足够的时间。想一想为什么反对新事物的驱动因素。在许多情况下,他们只是害怕一些风险。确定那些风险并为它们找到反驳。

抢鲜肉:更容易赢得想要改变事情的员工。看到它们后,您会立即注意到它们。

避免烂肉:有些人永远不会同情您的想法。把它们放在一边。

成长到临界点:找到对您的想法表示同情的人。一一赢得。在某些时候,如果达到临界点,将会有越来越多的人自愿遵循您的榜样。

管理词汇:经理对更好的设计不感兴趣。他们的语言是金钱和时间。弄清楚有多少工时浪费在错误上。明确指出,遇到bug的不满意客户无法盈利。演示实现新功能的速度。您需要为经理选择另一个词汇表。

这全都与流程有关:更好的技术并不能造就更好的程序员和程序。如果您的流程运行良好,那么即使是过时的技术也可以带来良好的效果。想想浪费时间和精力。也许这不是技术,但是流程中的某些事情却完全出错了。在大多数情况下,缺乏沟通。

寻找新公司:您已经做了很多工作。您仍然可以尝试进行改进,但是还取决于您决定尝试多长时间以及要投入多少精力。请记住:即使您无法取得很大的进步,您也会从自己的努力中学到很多东西。在某个时候,您需要继续前进。


3
与“增长临界质量”相关:youtube.com/watch
?v

2
@Farmor如果您不说“去阅读网页”就无法说服他们,也许您是需要提高沟通技巧的人。

1
我的意思是,如果他们固执并且不听年轻人的话。您可以参考文档来提出自己的观点。例如,如果他们说您的观点不正确,并且几乎所有版本控制专家都写了您的观点,那么他们将被迫提交。我喜欢取笑自大的人,例如,如果他们喜欢Torvalds,您可以说Torvals说“如果您喜欢SVN,那么您既傻又丑”,就像他在Google演讲中所做的那样。我不明白为什么当一个固执的人不相信你是错误的事情时为什么要参考文档。您甚至可以在手机上进行操作,并立即显示给他们。
农民2012年

6
-1为年龄歧视。有时您需要仔细聆听“化石专家”的声音,并让自己保持谦卑。然后,借助所获得的知识,您的想法会变得更好。仅仅因为别人年纪大了就放弃他们,这无疑是失去宝贵专业知识和有影响力的高级开发人员的支持的可靠方法。
Doug T.

1
@伦丁:经理人应该具有技术专长,但是爬得越高,金钱和时间就越重要。这没有什么错,因为有人需要跟踪公司的商业方面。重要的是要让管理人员掌握正确的论据,以便他们可以向管理人员证明自己的决定合理。作为开发人员,如果您为经理提供正确的论点,则可以赢得经理。
Theo Lenndorff 2012年

30

您是否曾经停止考虑过自己可能是错的?

因此,您在学校阅读了一些设计和模式书籍,而您在工作中似乎比较陈旧的做法却被剥夺了权利。毫无疑问,它们可能是更好的主意,新项目应从这些想法着手,但似乎您处在一个完全不同的层面。

放牧开发人员就像试图放牧猫一样,他们天生就有自己的思想,并且是做事的首选方式,无论对与错。我花了很多时间来执行最佳实践并管理一个由2名开发人员组成的团队,但是您在拥有8000名公司的公司工作。

这是一个惊人的数字。即使是一个简单的流程更改,即指出所有开发人员必须在公共日历上安排会议和非办公时间,这也变得非常复杂且难以实施。它还需要管理层的大力推动,以确保该政策被全面接受和采用。

您可能没有想到,但是简单的事情,例如从单片文件迁移到多个头文件,或者将版本控制从SourceSafe迁移到Git,都需要相关人员付出巨大的努力和投资。它将要求:

  • 重要的管理支持

  • 公司广泛接受

  • 投资于所有开发人员的会议时间,以告知他们新的计划(会议花费工时,工时花费金钱)

  • 需要计划和建立培训以确保即使最愚蠢的开发人员也知道他们在做什么

  • 甚至假设一个小时的培训,整个8000名开发人员x 50欧元/小时= 40万欧元的培训成本。这比我的一个软件开发团队整年为薪金,软件和硬件安排的预算要多。这是您建议的一项非凡的投资。

但是您说的是:“考虑通过提高生产率可以节省的所有时间。” 的确如此,但是大量的投资是巨大的风险,因此,我最好在签署之前确定您对此是正确的。如果没有一个高层支持您,那么我无法证明这笔费用是合理的。最终,我们可能效率低下,但是我们始终如一,并且公司内部有8000名开发人员,因此一致性是最重要的。

为此,您需要从多个高级人员处注销,并且您需要准确而客观地找到一种方法来衡量开发人员丧失效率的时间。那段时间等于美元,只有美元和政治才能帮助您赢得这场战斗。


4
谢谢。老实说,刚开始的时候,我已经呆了好几个星期了:“这家伙,这些家伙什么都不知道!” 然后意识到我在很多方面错了。但是在那呆了两年后,我很确定可以改进某些程序,并且可以解决我听到的许多投诉。我知道这也是一个意见问题,但是如果有人来找我证明我做的事情效率低下,我至少会听那个家伙,因为他在帮我一个忙。我的部门只有40人,只有我们才能做到这一点。
ereOn 2012年

1
我确信他们可以改进,但是就像我说的那样,改变我的行为和实践以进行改进与培训和强迫40个开发人员这样做是不同的。没有政治上重要的资深人士支持的想法,非技术经理不会听你的。
maple_shaft

这不只是“事情能做得更好吗?”。替换源存储库是一个巨大的变化。进行转换需要很大的成本,尤其是对所有员工进行再培训。然后就有风险。您是否100%确定不会有旧的源代码存储库需要的功能,您不知道的功能以及新的源代码存储库将不需要的功能?
DJClayworth 2012年

@DJClayworth:VSS存储库仅用作基本存储系统。从来没有人看过历史记录,他们通常先擦除所有内容,然后再复制整个目录。
ereOn 2012年

1
@ereOn请记住,您在一家公司工作,而一家公司是在赚钱,而不是代码。除非这不是为了赢利。无论如何,您对客户的主要价值可能不是“我们将以业界最快的编译makefile向您提供代码”。您应该算出对老板重要的事情(例如削减成本),然后算出成本。考虑人员和工具成本。
贾森克2012年

7

您所描述的内容听起来不像是“以身作则”,听起来像是您提出了建议并被拒绝了。要以身作则,您需要向人们展示自己的方式更好。在列出的问题中,我看到三个,您可以自己开始使用自己的更改。

纯旧的makefile,仅支持完全重建。

在本地创建自己的makefile,并显示您可以更有效地使用它们。

整体头文件和包含很少文件的项目(但每个头文件都有大约3000行代码,有时需要处理非常不同的任务)

触摸现有文件时(不破坏构建)将它们拆分,或者在编写新代码时引入较小的头文件。当人们开始与他们合作时,他们会意识到他们不需要重复。

不使用“新”语言工具(std :: string并不是那么新,但除我以外没有人使用它)

每当您触摸旧代码或引入新代码时,都将继续引入新的语言功能。确保您正在简化事情。不要灰心。我们大多数人都很懒惰。如果我们发现新的语言功能使事情变得简单,我们将采用它。

几个月后,如果其他开发人员开始采用您的改进,那么您可以就更根本的更改(例如升级源代码控制系统)再次与老板联系。您需要确保其他开发人员也能从中受益,否则就永远不会受益。解决该问题的一种方法可能是建议在只有少数开发人员参与的小型项目中试用Git。这样,您可以将其作为评估进行推广,而不是全面过渡到陌生的系统。

最后,如果经过几个月的尝试,似乎没有人对改善公司的工作方式感兴趣,那么您就需要真正考虑它是否适合您。


5

除了莱昂内尔·巴雷特(Lionel Barret,我大都同意)之外,还要考虑抵抗的可能动机。

  • 评估实际流程的成本
  • 评估流程的成本,就像您一样

但是也:

  • 评估变更成本
    • 花钱为任何人设置新环境
    • 花时间训练每个人适应新模式(这对您来说可能很容易,但对那些不了解您的工作的人而言却不那么容易)
    • 以无中断方式管理更改所需的时间。

我有一个犯罪嫌疑人:该有多少人在你的公司你的年龄和文化(我的男人“学校”和“学校类型”)一词?在未来的2/3年内,预计将聘请多少个人,以及将退休或改变其在组织中的角色的人数是多少?

我怀疑您的职位不足以改变公司。在这种情况下,要么该公司将改变你还是会“撵”你(在这个意义上它会成为你自己想离开),如果你不能够等待更多的时间。

但是可能是公司正在评估,我告诉您的额外费用可以节省,从而允许通过等待人员的自然替换而自发地进行更改过程。您只是一个过程的开始而看不到,因为您还没有任何东西。


1
您的猜测是对的:我确实是本部门中最年轻的人之一。他们中的一些人似乎意识到,尽管我很小,但我还是有一些宝贵的知识。我知道并且理解我仍然有很多东西要学习(并且相信直到我死的那一天都是如此),但是其中很多人似乎对他们不了解的东西感到生气。我不想将他们赶走或窃取他们的工作或其他:我只是想改善事情,以便每个人都能更好地工作/生活。我是否需要等到变老才能增加体重?
ereOn 2012年

1
@ereOn:您的驾驶是如此高贵,每个理智的人都应该与您一起工作。
o0'。

@ereOn:“我需要等到变老才能长胖吗?” 不必要。年龄是管理复杂性方面的经验值。了解新事物没有价值(对任何人来说都是新事物,没有积压可能是一个优势)。这不是一个“个人”问题。这是“临界质量”的问题。直到希望改变的人少于20%,他们才会窒息而死。如果更多,领导力就变得可见(而且不关年龄)。如果领导者可以覆盖40%的人口,那么“新事物”将具有适当的公民身份。60%的变化是自发的。
Emilio Garavaglia,2012年

3

在这一点上,我只能添加对Joel文章的参考,当您只是个咕unt的时候,事情就完成了。这些部分包括:

策略1

策略2利用病毒式营销的力量

策略3:创造卓越的口袋

策略4消灭Bozos

策略5摆脱干扰

策略6变得无价

我将文章总结为“变革必须从您开始”。


2
我发现GTDWYOG并不是很有帮助。在我看来,至少这个称呼具有误导性:在自助餐厅工作时“因聘用而受雇”或有自由忽略世界其他地方的人并不是gr之以鼻。苦恼的人必须按照指示去做,几乎无法控制自己所处的环境。以我的经验,尽管在stackexchange上画的是理想主义的图景,但大多数开发人员都是这样。对于那些人,GTDWYOG更是一种因不服从而被解雇的配方。
keppla 2012年

1

可悲的是,人们陷入了车辙,并形成了一种想法:“它行之有效,每个人都可以使用它,为什么要更改它”,这真令人生气。

您不仅通过抱怨,而且通过开发可行的解决方案来替代它来解决问题,现在您只需要买入。

向您的直线经理(或技术负责人)展示。如果他们不感兴趣,您是否有人负责变更控制或创新?

但是,可能会忽略您的想法和工作,并且情况会保持原样。


2
嗯,但是我听过“让我们重写它,在新技术x中会变得更好和更酷”的次数却发现新产品并没有比旧产品好(而且在许多情况下更糟)。通常,除非有必要,否则最好不要破坏任何有效的方法。
gbjbaanb 2012年

1

您需要以使您的老板站在一边的方式陈述您的情况。顺便说一句,这种更改是由技术主管或项目经理提出的,因此需要致力于该项目。(作为一种替代方法,您可以建议进行技术审核,局外人可能会说出与您相同的话,但会更有分量。)

到目前为止,他还没有看到改变的需要,对他来说就像是在改变化妆品:昂贵,没有明显的好处,只是满足开发人员的幻想。对他来说只有两件事:资金流动和稳定的团队。该技术是一个黑匣子,如果可行,那就足够了。

第一笔钱,您需要证明当前的设置花了他很多钱。开发人员每小时要花费多少成本以及更快的编译时间可以为他节省多少时间?算一算。此外,请撰写有关当前代码管道风险的文章或证词,并向他显示可怕的数字:“由于SourceSafe /错误编码做法,我们公司损失了$ XXXK”。

其次,团队,您的老板可能会被老脾气暴躁的编码员所困,他们不想改变自己的方式。如果确定了第一点,您还需要为该问题提出解决方案。你有多少 ?需要强调的是,由于当前的编码管道是bizantine,因此很难替换某个人。您需要提出计划以更新团队。向他们学习行业最佳实践,并检查他们是否遵循新规则。

最后,您需要提出一个计划,以更改代码库,并分为里程碑和资源分配两个小项目。实际上,您是在以项目经理的身份推销自己,所做的更改是强制性的,以拥有可靠的代码管道。


感谢您的建议。问题是,负责人似乎非常喜欢所有旧开发人员(因为最终他们完成了工作,却不计时间)。我感觉自己体重很小,因为我还年轻。尽管我部门中有几个人来问我有关良好做法的问题,但是即使我谦虚地解释了这些事情,在某些时候,他们也不想表明他们对此一无所知,并试图捍卫自己的旧方法。
ereOn 2012年

1

您是否在一个认为做得好,效率和创新会带来成功和盈利的组织中工作?还是追求收入,专注于维持销售才是成功的租户?

行为与您描述的公司一样,在技术上已经根深蒂固。在竞争激烈的市场中,他们将无法与专注于个人和创新的公司竞争。

如果您说的是您自己的人,那么在一个能荣誉和奖励您精神的地方工作。最终,经过多年的解决,您将开始屈服于上司所信奉的相同哲学。前往其他重视工作,灵感,创造力和进步的组织(可能是规模较小的组织)工作。

如果您不冒险,并且很快就这样做,那么您最终会安定下来,您将无法继续满足您的好奇心和创造力,因为在当前的同龄人群体中,这在哲学上是对立的。

卓越是一种态度和世界观。

只是知道,这种经历使您能够洞悉要避免的事情,对自满和保护主义保持敏锐的眼光,以便您可以及早发现它。

在您的下一次面试中,您会问诸如“您的员工会产生什么样的创新”,“个人创造力会带来哪些变化?”,“我能为团队带来哪些个人才能?”,“什么因素会推动您的组织取得成功”之类的问题。 ?”,“您的组织如何不断接受技术创新?” ...此类问题的答案非常有说服力。许多组织没有愿景,或者创建愿景的组织已经消失,并且该组织由会计师经营。如果您正在采访技术总监-请问他是否将该组织视为技术公司。


-1

如果您不喜欢所处的环境,那么会对您自己造成损害。您需要被与您在职业上具有相似兴趣和目标的人包围。我知道有时候说起来容易做起来难,但是回想几年和感觉自己在浪费时间的感觉比害怕冒险更糟。

或者,如果您想在使用特定技术和/或方法的系统或环境中进行开发,那么建议您在工作以外的地方找到一个可以做出贡献的项目。至少,当您找到自己的位置时,在两个系统上进行的各种工作都可以满足对不同内容的需求。

在我看来,你是水里的鱼。去寻找自己的海洋,游泳吧!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.