很有意思,总结得很到位的一篇文章,来自威廉-扬·阿格林,原文标题《10 Ways Managers are Wasting Their Developers’ Potential》,列举了管理者浪费(用伤害更准确一些)开发者潜力的10种方式,看一下是否触动了你?
管理者和软件开发人员之间的关系往往很紧张,这可能与他们在直接述求上的冲突有关。许多经理努力使他们团队的能力最大化,而开发人员则努力应对构建软件产品的复杂性。
这种现实的冲突是管理者和开发人员之间许多有害交互的重要原因。
以下是管理者浪费开发人员潜力的十种方式,拿出你的“兑奖卡”,看看你中了多少!
未经开发人员同意向利益相关者作出承诺
让我们从这个小点心开始。
“早上好!我刚和我们的委托人开了个会,他们想让我们开发登机应用,我们同意在年底前完成。”
每当你听到一位经理说出这样的话,你就知道自己有麻烦了,有人许下了未经你同意必须遵守的承诺。
虽然看起来很荒谬,但这种事经常发生。创造更多收入的前景是如此诱人,以至于我们无法克制自己不去承诺那些违反常理的事情。
定义解决方案
许多经理过去自己也是开发人员,他们绝对不应该做的,就是继续扮演那个角色,如何构建软件并不是由他们决定的。
被告知以某种方式构建软件确实令人沮丧,即使管理者仅仅是作为一个提议这样做。由于权力的隐性力量,这也可能是有害的,不是每个开发人员都会公开与经理争论。
更糟糕的是那些没有软件背景的经理们,却仍然有胆量提出解决方案。他们是怎么想到在他们的专业领域他们比他们的开发人员有更多的专业知识的?更不用说他们越过了自己的职责范围。
说服开发人员降低估算
管理人员怎么能怀疑他们开发人员的估计,这总是让我感到困惑。正常的行为是接受开发人员对工作的复杂性和创建软件的努力的评估。
但许多经理认为,他们有权加大力度,开始讨价还价,以降低工时估算,这在许多方面都是错误的:
当管理者开始这种讨价还价的游戏时,后果是灾难性的,开发人员将成为权力游戏的受害者。
将估计视为承诺
在一家公司决定投入时间、人力和金钱进行一项努力之前,理解这些投资是否值得是合乎逻辑的。
在可预测的环境中,您知道需要做些什么来实现预期的结果,您可以进行彻底的分析,然后对预期的投资有一个很好的理解。
作为一个可预测环境的例子,让我们看看建造房子,您通常从架构师开始进行设计,由此,我们可以了解需要按什么顺序做什么,以及建造房屋的成本是多少。
这种创建一个详尽的设计,然后是一个详细的计划,并且一丝不苟地遵循的传统方法,不适用于软件产品。因为软件开发是一项复杂的工作,软件产品处于一个复杂的领域。
在复杂的领域,你不知道会发生什么。您可能知道增加简单的功能需要多少工作,但大多数时候,你会发现你的估计与现实不符。
你需要接受不确定性,定期验证你的假设,而不是在你知道你学到了什么之前就坚持你做出的估计。因此,估计永远不能被认为是承诺,只是在你当时掌握的有限信息下对手头工作的最佳猜测。
允许人们扰乱开发者
软件开发是需要专注和时间的创造性工作,开发人员在不受干扰的情况下工作得最好。每次开发人员被打断,他们就会失去工作的动力。除了中断花去的时间,还有恢复动力所需要的额外时间。
但是时间浪费并不是唯一造成混乱的问题,它还会影响开发人员的士气,这么强硬地把自己从工作中拉出来是令人沮丧的。
经常允许中断发生的管理者可能没有意识到这种情况的影响有多大,但他们最好尽快学会,因为这是一个主要的士气杀手。
在计划工作的基础上增加工作
无论何时,只要开发人员致力于开发一组活动或实现一个特定的目标,几天之后添加新的工作任务就是不好的风格。更重要的是,经理往往大胆地期望团队将继续致力于原计划和额外的工作。
当然,可能会有新的见解,可能会影响计划。但是这不应该导致额外的工作,从而给开发人员带来额外的压力。我们应该权衡利弊,在添加其他工作之前,需要先删除一些内容。
这看起来可能很简单,但不知怎么的,各地的经理们还是继续这么做,这真是令人兴奋。
寻求高质量的捷径
软件开发本质上是复杂的,这意味着你将在工作中学到新的东西。对规划有影响的新见解,在大多数情况下,将导致意外的额外工作。
由于复杂性而产生的新学习将对预期交付日期产生影响,您可以通过缩小范围、减少交付比计划少的数量来对此做些什么。但我见过许多经理以不同的方式回应,要求跳过部分工作,通常是测试。
他们认为开发人员知道他们在做什么,测试通常不会发现很多错误,他们要求的是质量捷径。
通过寻求质量捷径,这些管理者忽视了一个有效的质量产品比“及时”交付更重要。及时交付有缺陷的产品最终会困扰你,你的用户会不高兴的。
推动加班
争取时间的另一个选择是加班,或者这是许多经理人的推理。但是,这忽略了一个事实,即超时工作可能会使开发人员超出他们的极限。
开发人员应以可持续的步伐开展工作,这种工作节奏使他们能够有效工作。超出可持续的速度将不可避免地导致错误,导致返工,最终延迟。
推动人们超越可持续的步子不会让他们更快。除此之外,你还有把他们烧光的风险。
把失败看作坏事,而不是学习
我有许多不愉快的回忆,我不得不告诉我的经理,由于一些意外的东西,我们不得不推迟交货日期,然后得到一个他认为我会更专业的训斥。
软件开发通常是复杂的,这是一个创造性的过程,开发人员将在这个过程中学习。你在旅程开始时的假设可能被证明是不正确的。没关系,这都是关于学习,然后适应,以纳入学习。
经理们常常把这些经验教训视为失败。开发人员应该更好地分析,以避免意外的挫折。但是在一个复杂的环境中,你不知道会发生什么,这是无法预测的。每一次新的学习都有助于朝着目标前进。
独自居功
然后,当我们到达旅程的终点,将软件解决方案交付给客户后,经理将获得所有的功劳。没有他们,这次行动就不会成功。
他们将确保客户和组织知道这一点,他们的作用将在很大程度上被夸大,代价是开发人员的损失。
不要容忍这种行为
你是开发人员吗? 你认识你的经理吗?不要容忍这些行为,而是要求改变。因为这些反模式不仅会伤害您,还会伤害公司,这不是创造价值和帮助公司成长的方式。
也许有人可以帮助你带来这些改变,也许你可以选择联合你的 Scrum Master 或敏捷教练。
你是经理吗,你认得这个吗?您是否也扼杀了开发人员的创造性和自主性?并在此过程中伤害公司吗?现在改变还不晚。接受软件开发是复杂工作的观念,培养你的团队,而不是欺负他们,我保证你很快就会看到积极的结果。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!