让程序员/技术主管/项目经理最可怕的事情是什么?

2023-10-14 14:50

本文主要是介绍让程序员/技术主管/项目经理最可怕的事情是什么?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

到现在我已经专业地构建软件超过10年时间了。我热爱我的工作,并且我希望能在这一行一直干到成为老程序员的那一天。一路走来,我遇到过很多可怕的事情,让我觉得我的工作非常之讨厌。我希望能有人在我职业生涯的早期给我一些指引,这样的话,当一些我未曾经历过的不幸的可怕事情降临的时候,我不会那么孤单和灰心丧气。

这篇文章旨在提供这样的指导。我有三个目标。

第一个目标是回顾过去:总结我们过去已经取得的经验。这些经验是我们理解的基础。它们将作为判断其他不熟悉问题的参考点。

第二个目标是展望将来:弄清楚没有经历过的新问题,但可能会在未来的某一天成为你的拦路虎。我希望这些列举的问题能帮助你做好应对的准备,并决定什么是值得追求的。

第三个目标是让你产生情感共鸣,并互相尊重队友正在面对的困难。你可能永远不会经历许多这些前瞻性的困境,尤其如果你不是技术主管和经理的话。同样的,如果你是一个技术主管或经理的话,你可能已经忘记作为一个独立贡献者是什么感觉:你可能会日渐与现实脱节。

以下列表不按优先顺序排列。其中包括其他人告诉我的观察结果:这些事情并非所有都是我直接经历过的。因此,如果你曾和我共事过,请不要认为说的是你而对号入座。事实上,令人惊讶的是,这些故事比比皆是,非常常见。

同样要注意的是,还有一些其他类别的可怕事情是这篇文章所没有囊括的:种族歧视,性别歧视,年龄歧视,骚扰,以及许多其他会导致不友好工作环境的因素。我不打算写这方面的内容,而且这些在其他帖子中已经被详细分析和描述过了。

我写这篇文章的目的是列举在团队中构建软件的本质是什么。如果你觉得我有遗漏的地方,请告诉我。我相信,许多要点,尤其是关于主管和经理的那些,也适用于其他行业。请记住,这些工作职位并非都是不好的:我的下一篇帖子将谈谈它们好的地方。

成为程序员有哪些可怕的地方?

对于编写代码和受技术主管或经理指挥的独立贡献者:

  • 有太多的东西需要学习,却没有足够的时间

  • 代码写得很烂

  • 当前抽象很糟糕

  • 我已经用不同的方式完成了这个

  • 这些注释没有任何意义,没有更新

  • 没有关于如何构建或它为什么这样工作的文档

  • 构建很慢

  • 测试很慢

  • 测试不切实际

  • 没有测试

  • 需要大量样板文件、复杂代码或混淆测试的糟糕框架

  • 经理要求我为了开发速度牺牲代码质量

  • 没有通知就更改依赖

  • 本地开发、测试和生产之间的差异

  • 陷在一个问题上或调试了很长一段时间

  • 我需要修改破坏了的或不切实际并且不是我初写的测试

  • 我需要和其他导致bug或生产问题的人一起处理,但他们没有立马积极修复的欲望

  • 不得不维护其他人蹩脚的代码或系统,在他们离开之后

  • 应该自动化的事情却没有自动化

  • 总是被队友和经理打断工作

  • 上下文切换成本

  • 经理要求我工作于紧急项目

  • 代码审查时我的队友们特别混蛋,因为会对我进行人身攻击

  • 其他人延迟发布我在工作中所需要的功能

  • 其他工程师构建他们的功能或组件太慢

  • 大量时间花在了等待上

  • 有我不赞同的产品决定

  • 刚刚告诉过我要做什么又来说一遍

  • 没有自主权

  • 没有人尊重我的意见

  • 我玩命地完成工作,然后有人告诉我要重做

  • 产品经理改变了我的要求,因为对批评过于强烈或因为其他人的反馈反应

成为技术主管有哪些可怕的地方?

对于一个写代码也领导独立贡献者小组设计和实施工作的软件工程师而言(同时也被其他人管理):

  • 生产中的一切总是被打破

  • 太多的电子邮件或文档需要阅读和答复

  • 工作中未加检查就算通过

  • 一切都落后于计划

  • 其他人做出了一些我不赞同的技术设计决策,但我没有能力或权力说服他们改变主意

  • 实施马虎或实施中忽略了现有的最佳实践

  • 出现了计划外的事情:打破假设的迟到的功能需求

  • 我真的觉得最后期限和依赖性于我而言压力山大,以致于当我下班回家了以后依然难以放松

  • 对每个人的监管比我预想得还要多,不管我如何努力解释细节或文档化计划

  • 花费很长时间来发布某个东西却因为非技术原因被废止

  • 在时间和质量之间做艰难抉择;故意发布已知的bug到生产中

  • 我要对此负责,为什么其他人不用?

  • 我没有做到我的责任,但是也没有一个人帮助我

  • 我不知道我的经理一整天都做了什么,但我不认为这会有用

  • 我不知道产品经理一整天都做了什么,但我不认为这会增加价值

  • 就像是团队中的其他工程师试图通过不遵循我们已经协商一致的计划来削弱我;我觉得自己像是一个打小报告的人,当我和他们的经理谈到这个的时候

  • 我认为会是我负责的项目被收回,并且因为一些我无法理解的原因交给了其他人

  • 在合理的时间内我没有足够的工程师完成项目工作

  • 当我说将会有多么困难的时候,大家听不进去并且不愿意减小规模

成为项目经理有哪些可怕的地方?

对于那些管理一组软件工程师的人。这个人同时也可以是技术主管,或管理指导报告的技术主管。

  • 不恶劣一点很难要求或告诉大家去做事情

  • 总是感觉所有事情都很紧急

  • 感觉一整天每个人都在向我抱怨

  • 没时间看邮件

  • 没有时间闲聊,即使我觉得这样太不合群

  • 每次回到家都有一种精疲力尽的感觉;有时让人觉得不堪重负;当一些对我有意义的人走进我想谈谈他们的问题时,我是如此的疲惫不堪以致于根本听不进他们的问题

  • 任何时候,我的报告中呈现一个或多个这样的状态:

    • 正要放弃

    • 厌烦团队中的某个人

    • 厌烦其他团队中的某个人

    • 厌烦自己

    • 被人冒犯但理由很充足

    • 被人冒犯并且毫无理由

    • 有一个正当理由对代码库不满

    • 因为完美主义/无效原因而不满代码库

    • 对他们的项目不满,想要工作于别的工作,即使他们正在做的是最重要的事情

    • 个人问题正影响着他们的幸福感,并且经常导致他们负面作用于周围人的士气

    • 无聊;如果有人提供合适工作的话,他们显然会跳槽

  • 其他经理的工作是安排会议。他们不写代码;他们唯一能影响人的途径就是用嘴巴说话。所以我拉进了一堆无用的会议中。一堆浪费时间的会议。

  • 少写代码;感觉失去了我的优势。有时很难看到我做了什么贡献。我必须改变我的重心。在帮助他人变得更有效率中寻找满足感让人感觉不自然。

  • 没有做重要的技术决定从而导致事情严重出错

  • 项目将落后或失败,因为我委托错了人

  • 其他经理在政治上暗中陷害我

  • 我最大的问题是要保密,因此我不能要求任何支持或建议

  • 不知道CTO / VP做什么;他们似乎并不能增加任何价值;他们会问一些无知的问题并且常常目下无人

  • 我的一些最好的工程师将他们的时间浪费在那些无关紧要的项目上,但我不敢去阻止他们,因为我怕这样会把他们推离团队,并导致他们辞职

  • 每个人对我是如何管理团队的至少有某一方面是不同意的

作者:小峰
来源:51CTO

这篇关于让程序员/技术主管/项目经理最可怕的事情是什么?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/211216

相关文章

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

程序员必备心理学——心流

心理学之心流 前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固 进入心流的技巧 总结题外话 前言 你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心

程序员都在使用的画图工具

大家好,我是袁庭新。 程序员都在使用的画图工具,你一定没用过这款画图工具吧!我教程中的架构图都是用它来画的。 比如我编写的RDB工作原理图就是用draw.io绘制的,如下图所示: 再例如Redis集群故障恢复原理图我也是通过draw.io工具绘制的,如下图所示: 是不是觉得draw.io绘制的图形特别简洁、美观。它的官网是: https://www.drawio.com dra

GitHub:代码是程序员沟通最直接的手段

如果不是 Andreessen horowitz 的投资,估计 GitHub 很难被福布斯、CNN、纽约时报等传统媒体注意到。普通大众之前不了解这个工具,是因为它距离记者的世界太远了——GitHub 是一个程序员所使用的托管项目的服务。 但在一些程序员眼里,它不仅是托管项目的地方,还是“开源”项目的大本营,而且是提高程序员“技术水平”和“技术品味”的地方,更是一个程序员社交的地方。

黑马程序员---银行业务调度系统

模拟实现银行业务调度系统逻辑 需求分析: 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。 异步随机生成各种类型的客户,生成各类型用户的概率比例为:         VIP客户 :普通客户 :快速客户 =  1:6:3。 客户办理业务所

黑马程序员---空中网面试题

空中网4k/5k月薪挑选大四实习生的线程题     两年前,我们一个大四的学员去应聘空中网的实习生职位,空中网只给他出了三道线程题,拿回家做两天后再去给经理讲解,如果前两题做好了给4k月薪,第三道题也做出来的话就给5k的月薪。这样的实习薪水和招聘要求,不需要有工作经验的限制,纯粹是技术功底的比拼和考核,而不像许多其他公司非要招两年工作经验的人,逼得那些刚毕业和未毕业的大学生不得不去撒谎,不得不去做

黑马程序员---线程并发库

软件包 java.util.concurrent 在并发编程中很常用的实用工具类。 请参见:            描述 接口摘要BlockingDeque<E>支持两个附加操作的 Queue,这两个操作是:获取元素时等待双端队列变为非空;存储元素时等待双端队列中的空间变得可用。BlockingQueue<E>支持两个附加操作的 Queue,这两个操作是:获取元素时等待队列变为非空,以及

黑马程序员---多线程

TraditionalTread 传统线程技术回顾 创建线程的两种方式: thread3中,同时创建了Thread的子类和Runnable,那么会优先执行Thread的子类,因为Runnable的代码被当做参数传到了Thread类里,Thread子类的run方法又覆盖了父类的方法,所以会执行Thread子类的代码。 package cn.itcast.heima;public class T

黑马程序员---代理

分析代理类的作用与原理及AOP的概念 代理的概念与作用  1.已经写好一个类,现在要为这个类增加一些功能,例如,异常处理、日志、计算方法的运行时间、事务管理、等等,你准备如何做? 现在我们写一个代理类: 保持了原来那个类的功能,又增加了你现在需要的功能。 主函数调用的时候,直接调用代理类就行了。 这就是代理类的功能。   2.编写一个与目标类具有相同接口的代理类,代理

黑马程序员---类加载器

------- android培训、java培训、期待与您交流! ----------   简要介绍什么是类加载器和类加载器的作用 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader   类加载器也是Java类,因为其他是java类的类加载器本身也要被