您如何摆脱代码维护者的角色?[关闭]


13

在最近的三份工作中,我是代码维护者。在这三种情况下,我都已经为该项目编写了大部分代码后才被雇用。

我是一个自学成才的程序员。在开始我的第一份专业工作之前,我大概有十几个项目可以成功启动并交付。

编写新代码和维护现有代码是两个完全不同的工作。就像将航空工程师和飞机技师进行比较。

当您是由一名工程师设计的飞机机械师,而该工程师没有试图使飞机以任何逻辑或易于维护的方式设计时,这种情况尤其糟糕。

我开始感觉像在项目刚开始时就在身边,您必须是那些以某种方式超越了计算机科学领域其他人员的特殊人员之一。处于那个位置需要什么?

我觉得这个问题确实没有简单的答案,但是有人可以给我一些见解吗?您曾经在一个新项目的底层吗?到达那里需要什么?


您是否申请代码维护人员职位?
詹姆斯

@James,所有工作都是代码维护人员工作,或者至少是我遇到的所有工作……
nbv4 2012年

不要气our。在技​​术上,没有什么是永久的。您可能会觉得自己像机械师还是工程师。但我认为,有许多公司拥有自学成才的领导者和拥有高级学位的工蜂。接受正规教育的地位,知识和努力应该会得到一些回报,但是您对“您最近为我做了什么?”的回答是什么?更好,它会走很长的路。
DeveloperDon

Answers:


6

维护对不同的人意味着不同的事情,并且由于不同的原因而产生。

  • 最坏的情况是,最初的系统匆匆忙忙地投入在一起,最初的团队为整个过程赞誉有加。他们遵循80/20规则,因此虽然可能会售出最低限度的可行产品,但许多客户需要大量修补程序和少量改进。问题很多,但荣耀不多。您的工作最艰辛,其工作也令人费解。希望这不是您的情况。
  • 更好的情况是,您显示出对工作的谨慎,并且可以信任在不中断产品的情况下对已交付的产品进行更改。对于将原始系统整合在一起的人们来说,仍然存在哪些问题太难了。也许他们未能建立持久的系统,而您可能在那里,作为他们的替代者,以使事情正确并挽救客户,项目和利润。
  • 在极有可能的情况下,项目成本的60%来自维护期间。也许是时候了,也许您的组织将新的开发与维护区分开了,但是您占了3/5的大多数,因为我们中的许多人都进行维护。

这里有一些尝试:

  • 做好工作,有良好的态度,做一个思想领袖。
  • 尽可能地团队合作,而不是一个人。
  • 学习更新的语言。
  • 了解更新的平台。
  • 要求从事较小的程序,甚至可能适用于较小的公司。
  • 熟练掌握文档。当项目开始时,即使在瀑布时代之后,他们也需要大量的书面协调来规划,记录,评估和阐明需求。
  • 对于那些不了解需求管理,估算和风险评估的人来说,项目启动是危险的,因此请尽可能多地学习和实践这些技能。
  • 获得更多正式培训或认证。在组建新的开发项目团队时,这可能会提高您的地位,并使您成为更具吸引力的选择。
  • 在一边创办公司或一些咨询。这使您可以创造性地针对自己喜欢的工作,并且可以更好地理解从没有代码或文档开始的感觉。
  • 与您的老板和计划新项目的人保持紧密联系。
  • 相反,如果您非常接近测试人员和质量检查人员,则它们的输出通常是维护的输入,因此,请问您的老板认为谁与您合作得很好?
  • 结交尽可能多的朋友,并赢得尽可能多的新开发人员的尊重。
  • 新开发人员是可以干的人,因此请谨慎对待任何批评或否定的暗示。自由地向他们提出您的想法,而无需怪罪或判断。您的想法无需介绍,只需说出来即可。永远不要说,我们以前是这样做的,否则那行不通,尝试一下。永远不要说,我不知道,但这可能有用。只是说出主意。或更好地显示它。
  • 找到并抓住任何机会来构建可能会变成新项目的概念验证。
  • 当心谁分配您的工作。通常,它应该是您指挥中的某个人。如果是您的同龄人,请推迟一些时间。如果是您要监督的人,则有充分的理由要控制反转。如果是质量保证或测试,请确保它对您的命令链很重要,并且不会以延迟您先前承诺的工作的方式进行安排。
  • 当心完美。新的开发通常是为快速的人保留的,即使他们眼神交叉且不打分。
  • 花时间学习和练习适合您的开发线的早期项目技能。这可能包括:创建源存储库,定义构建环境,配置恒定集成服务器,与硬件团队密切合作以提供带有板级支持包的新板级或编写自检功能。甚至可能会知道如何进行购买来购买新的开发工具,培训和COTS硬件。
  • 确保在关闭维护项目之前继续前进,也许是在内部向团队负责人(也许是经理)购买技能,或者在外部购买。
  • 精通您所知道的每一项技术,并且知道很多技术。

维护角色可以通过多种方式使您受益。

  • 您可以从事团队甚至公司所做的每个项目。
  • 如果将新的开发与维护分开,则您可能会遵循竞争激烈的领导方式。新项目的领导者垂涎三尺,但维修领导者可能会向您提出要求。如果您有鼓励和指导的意愿,那么该团队的成员可能会更加感激。
  • 如果项目正在维护中,则您更有可能与客户建立联系。处理错误,这将结束职业。如果处理得当,它会得到开发外部的积极关注,而如果没有管理者,这是很难找到的。

说了这么多,我就是反例而不是榜样。这种观点大部分来自经验和观察。

有许多新程序仍需要编写。
准备好,您将很快出人意料地进行工作。


4

对您来说,我有个坏消息:人类需要已经编写了许多应用程序,只是应该将它们微调到不断变化的环境。

有一天,系统会要求您编写系统的新部分(例如新模块),然后您可以利用自己在绿色领域开发方面的知识。

在此之前,您可以尝试学习重构旧版应用程序以清理模块。

很好的读物是“ 使用旧版应用程序 ”和“ 重构为模式 ”。如果您没有阅读原始的重构(福勒),请这样做。并且学习测试驱动开发(TDD)总是有帮助的。

如果您正在使用PHP,我写了一篇动手文章,该代码仍然可以运行...

玩得开心!


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.