如果您适当地照顾您的开发人员,他们将照顾您和您的项目!
是什么让软件开发人员感到高兴? 没有银弹可以回答这个价值百万美元的问题! 必须在这个快节奏的世界中留住顶尖人才! 当睡眠仓,乒乓球桌,私人厨师和其他花哨的福利无法解决问题时,我们真的需要认真思考如何取悦他们,并促进他们的积极性和动力。
在本文中,我将介绍在我的15年IT工作中为我(工作)幸福做出最大贡献的驱动力,以及对我所遇到问题的影响和建议,因此,如果您是团队负责人,经理或企业家,它可能会给您一些有关如何保持团队动力和承诺的想法!
—使用钱可以买到的最好的装备
这绝对是我名单上的第一名。 没有什么比打开项目代码,编译代码或在本地运行测试,并且不得不等待几秒钟才能返回更令人沮丧的了。 开发人员会匆忙工作,因此,即使是最微不足道的延迟,任何无效的工具也都会阻碍他们的幸福。
拥有高端计算机(可能是一个过大的功能)和低端计算机(这些性能明显过时了)之间是平衡的,但是拥有足够的内存,CPU和磁盘空间/速度(SSD,请注意!)是最重要的三个,不仅保留开发人员理智的因素,还保留了公司的长期成本。 多个监视器和生产力工具对于提高效率也至关重要。
这些无处不在的时间增量每周可能总计一个小时(可能更少,但最可能更多),但是如果您考虑每个开发人员一年的总工作时间乘以每小时费用 ,大多数这类投资都是出于纯粹的财务理由。
这样做吧……升级他们的机器,为他们提供额外的显示器,并为他们提供生产力工具的付费版本! 您不会期望乐团使用普通的乐器演奏,为什么开发人员必须使用过时且性能低下的计算机?
—启用深度聚焦
有趣是软件开发需要重点关注的。
深入,始终如一的强烈关注。
为了产生优美的代码,必须无干扰地进入状态并限制背景噪音。 一点点的分心都会造成思路迷失。 不幸的是,相对较近的开放式办公室趋势,保留了噪音,程序员心中所有这些精心放置的想法都消失了。 以我的经验,开放式办公室增强沟通的概念存在缺陷:
· 有些人避免在办公桌前一起讨论,因为他们知道谈话会打扰周围的同事
· 其他一些人不介意打电话或在办公桌前开会,但会在"邻居"中引起不满。 后者经常使用降噪耳机,这意味着即使确实需要某些输入,也很难引起他们的注意。
编程是艺术! 对于艺术家来说,幸福的圣杯是一种流动的状态……因此,要使开发人员保持快乐并提高他们的生产力,请给他们一个无干扰的工作空间,或者至少在开放式礼节方面制定一些规则!
流动状态:
积极心理学家MihályCsíkszentmihályi将状态描述为“为了自己的利益完全参与一项活动。时光飞逝。每一个动作,动作和思想都不可避免地遵循上一个行为,例如打爵士乐。整个人都参与其中,并且您正在最大程度地使用自己的技能”。
—享受弹性工作时间
灵活的工作设置是必须具备的。 其中包括所有新旧术语,例如远程工作,弹性工作时间,远程办公,压缩工作周,数字游牧(太极端了?)。
标准办公时间并不适合所有人。 有些开发人员在早上7点工作得最好,另一些开发人员在晚上7点工作,而另一些开发人员(我们中间的夜猫子)则在1点工作! 国际人才可能会长期访问他们的祖国。 此外,家庭承诺(尤其是育儿)或各种生活方式选择(学位完成,忙碌等)可能会使一些开发人员无法完成预期的9到5。但是,拥有安全的VPN连接,实时协作平台和团队消息传递应用程序,在他们的指尖意味着一切都可以在远处完成。
尽管对个人的好处非常明显,但对公司的影响并不总是那么明显,一些"反对"论据认为,灵活的工作时间会导致不可靠的结果,并且由于缺乏实在的存在而导致团队合作被扼杀。 这里的关键是要认真进行任务估计! 例如,如果是IT资源可以在两周的冲刺中提供10个故事点,只要在时间范围内完成学历提升即可。
作为一种折衷,为了加强团队沟通,可以约定每个人都在线的核心时间(例如,上午11点至下午3点),而且每个开发人员都可以管理自己的时间-显然是在合理的范围内! 例如,如果有需要按特定班次完成的支持任务,则应遵守该任务。
-这是烧毁,不是倦怠!
项目有最后期限-冲刺目标溢出了! 这是事实,尽管交付经理处于计划和迫在眉睫的里程碑之上,但有时无法避免团队中的每个人都需要花费大量时间来完成工作,并将新功能发布到生产中这一事实 。 在一定范围内,这还可以,并且从事商业项目的所有开发人员都希望这种情况会偶尔发生。
尽管这种节奏是不可持续的,但一些管理人员已经习惯了增加产量和更快的交付速度,并且他们在未来的冲刺中通过过度地致力于不切实际的目标而将其视为理所当然。 而且,团队开始精疲力尽,这不仅对他们的健康产生重大影响,而且还会引起怨恨和工作不满。
"付出一英寸,他们就会走一英里"
作为保持团队士气高涨的领导者,您需要尊重他们的工作与生活平衡。 如果您要求开发人员为了项目加班,以应付紧迫的最后期限,请确保您不要一直这样。
—授权
工作上的自主权对我来说是一个非常重要的方面,而我的职业发展越多,我就对完成任务或做出决定的*度的妥协就越不愿意。 像我一样,大多数开发人员喜欢形成意见并具有独立性。
因此,对团队的决策能力充满信心:让他们参与评估过程,请他们提出解决方案,并在做出选择时咨询他们。 您会惊讶于他们倾向于满足自己设定的时间表,解决方案具有创造性(毕竟他们以解决问题的能力而著称),而且建议也经过深思熟虑。 同样重要的是,不要对其进行微管理-这是一个精神杀手!
自治与结构之间必须保持平衡。 因此,与其告诉您的团队如何完成工作,不如设定策略并为他们提供一个框架,使他们可以做出自己的选择。 例如,设置目标,截止日期和基准,然后让他们定义如何实现目标。 这使您可以专注于全局和管理高层的"东西",并使开发人员可以自主设计自己的任务。
这是双赢的局面!
所需要的只是一种信念,即人们从根本上讲是好人,并且有足够的勇气将您的员工视为所有者,而不是机器。 机器完成工作; 所有者要做使他们的公司和团队成功所需的一切。 —拉斯洛博克
自主-精通-目的:我最近读了丹尼尔·平克(Daniel Pink)的新书:《驱动:激励我们的惊人真相》,这使我意识到激励直接影响着我们的工作幸福感。因此,难怪以下的``幸福''因素(5、6、7)与Pink的动机三重奏相匹配。要了解更多信息,请观看另一个精彩的TED演讲:动机之谜。
—促进持续学习
如果您一直在关注我的文章,那么您将了解我对持续学习的重要性的观点,开发人员也将理解它! 软件工程师通过精通掌握的概念,热爱新技术,并与现代思想保持同步。 新的工具,框架和范式不断建立,但是一些管理人员避免让他们尝试新事物,并且担心现有状态的任何变化。 这会导致停滞的文化,使开发人员失去好奇心。 结果,代码库变得非常难以维护,丑陋且支持成本高昂。 最终,您的顶尖人才将离开,您将很难找到愿意从事过时的项目的人。
因此,对您的团队的学习进行的任何投资都是物有所值的! 一定要把它们发送到会议和课程上,买书,让他们订阅学习资源,好吧!
此外,在任何新项目开始之前,给开发团队时间和空间进行技能训练是一个好主意。 一项新技术的概念验证可以节省组织中的大量时间和金钱,并且软件生态系统的现代化已成为当今的先决条件。 激发开发人员的另一种简单方法是鼓励他们使用与正常堆栈不同的语言,数据库或框架来构建DevOps工具。
最后,您不应低估任务转移的重要性。 一遍又一遍地重复相同的工作很无聊,开发人员觉得他们没有提高自己的技能。 如果您让任务在团队内部轮换,即使一开始花费的时间更长,它也会减轻这一持续的痛苦点。 成为L3层级的支持人员(可怕的S术语!)就是很合适的轮换。
—灌输目标感
没有比感觉到工作带来不同的改进更重要了。 大或小-没关系! 这可能是个小小的捷径:例如,创建一个新工具来自动化回归测试,或者增加测试覆盖率,或者改善长期运行过程的性能。 或者它可以是巨大的成就:新发布的功能使公司的资本收益达到几百万美元。 无论哪种方式,请不要忘记庆祝自己的成功。 也要具体! 受到好评的开发人员就是快乐的开发人员!
编程是爱的劳动! 目的与工艺之间的强烈关联,是开发人员趋向于完美主义,和对最终产品感到自豪的趋势。 作为他们的经理,您需要尊重这种行为,并给他们一些时间来编写单元和BDD(行为驱动的开发)测试,并且还要花一些额外的时间进行重构和代码优化。 这种完美主义特征突出了开发人员的主人翁意识,认识到他们的努力只会使其变得更强大!
快乐开发人员
开发人员可以将项目推向无数的高峰! 通过关注这七个因素并将它们嫁接到您领导团队的方式中,您将建立一个"发光的"开发人员向往的工作场所。