为什么你的老板是否不理解软件开发?(深度好文)
发表时间:2023-09-30 18:01:29
文章来源:炫佑科技
浏览次数:213
菏泽炫佑科技
为什么你的老板是否不理解软件开发?(深度好文)
你的老板可能真的很棒。 在我自己的编程生涯中,我遇到过一些非常出色的老板,但即使是*好的老板也往往似乎并不了解软件开发。
事实上,我想说大多数软件开发经理在涉及到不仅仅是少数编程元素时都有点短视。
因此,我整理了一份简短的清单,列出了您的老板、开发经理、技术专家等在编程中*容易被误解的一些方面。
1.技术债务是项目*大的拖累
在充满技术债务的代码库上工作就像在一堆泥浆中奔跑一样。 刚开始泥浆不是很厚的时候,直接走过去没问题,但是到了1米深的时候,就寸步难行了。
我*喜欢的作家之一,《7 of》的作者科维,将其称为“P/PC 平衡”或“生产与容量”。
通常,管理者和其他非技术人员在提高生产力的过程中愿意牺牲质量(就像杀鸡取卵一样)并承担技术债务。
当然,通过扭断鹅的脖子并威胁它,也许可以暂时得到更多的蛋,但用不了多久,死掉的鹅就再也不会下蛋了。
如果你的老板不了解技术债务以及技术债务如何拖累你,那么我建议你告诉他《7之》中P/PC平衡中的技术债务条款。
大多数管理者可能都读过这本经典的书,所以与其说因为代码库很糟糕而编写新功能很困难,不如谈谈书中的观点,这样他们会更容易理解。
2. 大多数估计都是无稽之谈
软件开发中的估计大多都是废话。
这个你知道,我也知道,就连团队那个可怜的项目经理也知道——当然,也有可能他不知道,但他应该知道。
在软件开发中预测任何事情都是非常非常困难的,因为有太多的意外是你无法防范的。
每个软件项目、每个任务都是新的。 每次你坐下来写代码时,都会发生一些意想不到的事情。
但事情是这样的。 任何人都不应该承担责任。 这不是你的错,这不是我的错,这不是任何人的错。 它即将发生。
然而我们还是忍不住要玩“预测”游戏。
“乔,你建立一个客户登陆页面需要多长时间?”
“哦……呃……”我想了想,“2天……哦等等——”我忘了加倍CYA。 “——需要四天时间。”
“好吧,那我给你5天时间。”
“好吧,那就五天吧。”
另一个好的解决方案是将任务分解为足够小的部分,以便所有估算都在 4 小时内完成。
经验告诉我,半天的估算通常就能让你完成一份不错的工作。 超过了这一点,你就是个废物。
3. 可以立即或快速完成
催促专业人士通常是个坏主意。
我在编写代码的 15 年多里学到了这一点,所以我知道,当我雇用某人做某事时,如果我推动他们,也许他们会按时完成,但结果会被浪费努力。
不幸的是,我发现许多软件开发经理似乎并不知道这个普遍真理。 不知何故,他们认为代码可以既快又好。
别误会我的意思,我承认也有例外。 有时你可以很快地写出好的代码,但更多时候,你需要慢慢地、小心地工作。
同样不幸的是,大多数程序员在被告知要快速完成任务时,往往会走捷径,通过牺牲质量来加快进程。
更不幸的是,这样的“快速编码员”常常被誉为英雄为什么你的老板是否不理解软件开发?(深度好文),因为他们能够更快地完成任务,因为他们从不拖延或要求更多时间。
然而,这些“快速编码者”经常编写混乱的代码,给其他人留下技术债务。
如果与您打交道的开发经理不理解快速和良好之间的关系,那么您*好提供一些统计数据来表明稍后修复错误比尽早预防错误更昂贵。
组织越大,所涉及的手续越繁琐,快速完成任务而不是正确完成任务的*终成本就越高。
(关于这个主题的经典书籍是《人月神话》。)
4. 一些开发者实际上是在造成伤害
事实上,我们都遇到过对团队弊大于利的程序员。
不同的程序员在软件开发领域的能力和技能水平存在巨大差异。
事实上,一些软件开发人员非常糟糕,他们在工作中编写的每一行代码都浪费了公司的时间和资源。
这种类型的开发人员可能应该向公司付款,而不是公司向他付款。
这对你来说可能是显而易见的,但对你的老板来说却不一定。 例如,在你看来,也许乔是一个彻头彻尾的失败者,需要被解雇,因为他只会做点点滴滴的愚蠢事情。 他所触及的一切都变成了无用的“石头”。
但如果你的老板不明白让这些人加入你的团队比没有他们加入你的团队更糟糕,你能做什么?
嗯,大多数软件开发人员都害怕被认为是八卦 - 我完全理解这一点。
但是……你必须这么做。 这是对的。 如果某人确实是团队中的讨厌鬼,那么你的工作就是让管理层知道。
我知道这会让你处于一个不舒服的境地,但如果你不报告它,你就不是一个好的程序员。 你将成为扼杀该项目的帮凶。
至于所谓的报告,只要说得仔细一点,给出一些提示就可以了。
例如,你可以说:
“嘿,我不喜欢做这种事情,但我觉得,如果我是你,我会想知道是否有人直接阻碍团队。所以,我觉得我有责任告诉你一些我一直在观察的事情。
……
当然,这些只是我的观察,所以请咨询其他团队成员并根据自己的经验进行判断。 ”
或者,如果你也可以使用这种不太委婉的方式:
“嘿!乔太棒了,他写代码太慢了。事实上,他唯一的可取之处就是他的慢,因为自从他到来以来,项目基本上都是以蜗牛的速度进展。如果你不这样做就太晚了才能正确地认识他。”
5.更好的设备是您可以进行的*便宜的生产力投资之一
当程序员告诉我他们的小气老板不会给他们第二台显示器或让他们使用已经使用了五年的计算机时,我很讨厌。
说实话,我真的不明白为什么有些软件开发经理不同意花2000美元为那些8000美元以上的程序员改进硬件——这是一项非常划算的投资。
老旧的硬件设备让程序员实在是又恼又恼!
每当程序员抱怨这种工作情况时,我通常会建议他们另谋高就,因为这种老板的愚蠢行为可能无法治愈。
别说话,我告诉你:
好的设备可以让软件开发人员每天多工作一个小时,从而提高开发人员的工作效率。 即使只是我说的一半,加起来的总时间也不会少。
如果一年有 250 个工作日,则为 250 × 35 美元 = 8750 美元。 即使你将其削减一半或四分之一,它仍然是一项不错的投资。
如果你的老板不明白这一点软件开发,那么说实话,我认为你对此无能为力。 如果你真的喜欢现在的工作,那么你只能投资自己。
6、新技术的风险其实没有你想象的那么高。
没有什么比提到*新、*好的 .NET 框架版本更让软件开发经理感到害怕的了。
这已经成为大家心照不宣的雷区了。
曾经有一段时间,软件供应商每年左右才会发布新版本的框架或补丁,因此错误的成本可能相当高。
曾几何时,大部分源代码都被密封在“地穴”中,不允许其他人访问,所以一旦公司不再支持,你就陷入了困境。
但现在,情况不同了。
如今的框架都会发布补丁,有时每天都会发布补丁,而且大多数流行的框架都是开源的,因此风险并不高。
当然,你也可以破罐子破摔,不过这种情况很少见,只需要稍作修改,而不是挥动大刀斩断所有的好与坏。
因此,如果您的编程经理在 1980 年仍然活着,您可能想向他指出事情发生了怎样的变化,以及为什么保留旧版本的框架或库比升级它更危险。
恐惧策略中的安全漏洞是一个很好的起点。
7. 多余的业务分析师和项目经理
我知道我会得罪很多人,但我不在乎。 我在这里告诉你的是事实,我是那种看到什么就说什么的人。
当然,首先要说的是,那里有一些优秀的业务分析师和项目经理 - 但说实话,大多数业务分析师和项目经理都是毫无价值的。
曾经有一段时间,这些角色是开发项目所必需的。
但现在,在大多数情况下,我们不再需要它们了。
软件开发人员应该直接与客户交谈,以便他们自己找出自己的需求。 所以我们不需要业务分析师。
这是一个残疾职位,因为他们只做了软件开发人员应该做的一半工作,而对另一半却没有帮助。
项目经理更厉害了。 他的目的似乎就是要阻碍我们的发展,让一切变得混乱。
我知道他们的本意是好的,但是在当今的敏捷世界中,项目经理不再有用,那为什么还需要他们呢? 他们四处走动,试图让自己看起来很重要,试图弄清楚自己能做什么,但*终却成了阻碍。
许多软件开发经理的思维仍然停留在过去,停留在这个职位更有意义的时代。 他们听过财富500强咨询公司的所谓“趋势”——根据这些公司的说法,许多软件公司需要更多高薪顾问来填补这些职位。
如果您的经理仍然不明白,那么唯一的解决方案就是接受敏捷教育。
我不建议你只是告诉你的老板“业务分析师和项目经理是浪费氧气”——这也可能不容易被接受——所以相反,我将重点阐述敏捷团队应该如何运作以及需要哪些角色。
然后很明显,在真正的敏捷环境中,不存在可能更适合担任 Scrum 或产品负责人的业务分析师和项目经理。
积极的
当然,我上面说的有些话可能是用开玩笑的语气说的。 但实际上,软件开发经理和软件开发人员对软件开发的理解常常存在脱节。
我确信软件开发经理会抱怨软件开发人员不了解业务方面以及安排会议的困难 - 但那是另一回事了。
无论如何,关键是:这不是对抗性的情况,而是沟通不畅的问题,可以通过适当的沟通来解决(至少在某种程度上)。
采取积极主动而非对抗的方式通常是解决这些问题的*佳方式。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等