管理者们:如何让开发者发挥最大创造力?

2024年 4月 30日 72.3k 0

导读:本文以平实的语言,想告诉做研发团队的管理者,如何让同事们充满创造力,而不是996和无条件服从。

到底什么是创造力?作为一名软件工程师,富有创造力意味着什么?如果你的工作具有如下特点:

(1) 原创性

(2) 高质量

(3) 与手头的任务相关

拥有以上这三点,就可以称为创造性工作。但是,这种观点也没有说的很全面。

如果我作为一名初级 C# 程序员第一次采用反射,那么对我来说可能被视为原创的东西。而对于我旁边的资深开发老鸟来说,那也不能被视为原创。

那么谁决定质量:静态代码分析工具还是你的同事?相关性也是如此。

仅这个话题就可能在技术或代码会议中引发无休止的争吵。这种创造力观的最大问题在于,它显然(部分错误地)强调了创造性的个人而不是环境(团队、公司文化、社会……)事物。

幸运的是,在审视创造力时也可以考虑背景。这将创造力发展成为一种社会裁决,由你的同行决定你的编程工作是否应该被称为创造性。

这听起来是一个非常模糊的理论,但这对于软件工程到底意味着什么?

在创造力方面,有七个主题发挥着重要作用:技术知识、协作、约束、批判性思维、好奇心、创造性思维状态以及特定创造性技术的使用。

本文将着眼于这些主题的基于团队的背景特征,并解释管理者可以采取哪些措施来促进这七个主题。

让我们勇敢地跳进去!

创造力和技术性

首先是技术知识。我们如何收集知识、内化知识并将其付诸实践?存在多种个人知识管理 (PKM) 技术来管理不断增长的(错误)信息流。

一位受访者完美地总结了这个主题:“没有投入,就没有产出。创造力是各种投入的积累。”

大多数这些技术都围绕有效收集这些“输入”并最终根据知识产生原始“输出”。

那么,管理者可以做些什么来让这些事情重回正轨呢?第一步是引起人们对 PKM 工具存在的关注,并展示如何使用它们来帮助满足现代程序员的许多技术掌握需求。举个例子包括建立内部维基百科,帮助人们寻找替代信息来源,以及通过黑客马拉松和知识共享会议鼓励思想的交叉传播。

成功的创意合作

协作对创造力有什么影响?软件工程是在团队中完成的,因此问题是如何建立一个大于各部分之和的优秀团队。

创建所谓的“梦之队”不仅仅是几个因素。如果没有一个群体,单个天才的创造力就无法发挥太大的作用,所以我们也可以用“集体创造力”这个词。

个人创造力比我们敢承认的还要微不足道。我们不应该寻求招募孤立的创意天才,而应该努力建立一个由不同意见的异质人群组成的团队,他们可以将创造力推向极致。

所以,我们应该创造一个培育和吸引创造力的环境。

但是,说起来容易做起来难。管理者可以开始采取简单的行动来实现这一雄伟目标。例如,团队内部沟通不畅会严重抑制创意流动,因此有助于促进决策。

研究人员达米安·坦布里(Damian Tamburi)将这个问题称为“社会债务”。就像技术债务一样,如果你有很多社会债务,你就不能指望发生任何创造性的事情。

作为社区的牧羊人,管理者应该帮助人们减少债务。

Tamburi 和他的团队发现了一些不错的社区趋势。“一本正经的成员”是要求严格、不必要的有条不紊的人,他们会造成不必要的延误和挫折。“超级社区”是一个非常不稳定的思想环境,一切都在不断变化。“新手搭便车”是指新人完全独自一人,导致恼怒和工作压力。

研究表明,保持较低的社会债务可以让开发者和团队更快乐,而快乐的开发者是更有创造力的人!

基于约束的批判性与创造性思维

下一个创意主题是基于约束思维的优点为。与普遍的看法相反,适量的限制不会阻碍创造力,实际上会鼓励创造力。当然,重点是适量。

  • 限制太少,你就不能做太多事情。(别担心,在做出决定之前我会多尝试一下这个框架。)

  • 限制太多,你就不能做太多事情。(极其紧迫的最后期限,加上硬件和现有遗留软件的限制,扼杀了项目,并使开发人员精神疲惫。)

管理在这里的角色是明确的。当自由太多时,引导开发人员利用自我施加的约束来达到创造性的最佳点,当约束太多时,帮助他们减少或改变它们。诚然,没有太多可以轻易改变或(部分)忽略的约束。

批判性思维对于典型创作过程的五个步骤至关重要。参与(90% 的工作折腾)、孵化(通过保持距离暂停流程)、启发(剩余 10% 的工作)、验证(有效吗?),最后呈现/接受。

管理者的工作就是引导程序员完成这个永无休止的反馈循环。

例如,偶尔休息一下并提出适当的批判性问题,以鼓励必要的自我反思。

还有一个重要的就是分布式思维模式和集中思维模式的区别。考虑在开发过程中扮演不同的角色,例如重构、重新设计等。但并不是每个人都像你一样思考快或慢,也不是每个人都被锁定在和你相同的专注模式中。通过了解同事(以及整个团队)的思维模式并协调他们,你更有可能获得创造性的结果。

管理者应该特别注意这种心理振动,并确保每个人都按时换档。长时间专注于你的想法也会让你感到疲倦,而不是增加你的创意。

请给开发者一点喘息的机会!

如何培养创造性思维

说到休息,接下来要做的就是培养好奇心。

无聊的灰色混凝土办公环境不会激发这种好心态。走出你的舒适区对你的(创造性)思维很有好处。例如,如果你离开办公桌去散步以避免清楚地思考那个恼人的问题,那么当你回来时解决它的可能性就会增加一倍。

满足好奇心的另一种方法是享受“笨蛋”编程的乐趣。对经验和偶然性持开放态度可能会建立解决工作问题所需的联系。

玩耍(当然是在代码中)常常被老板们皱眉,并被视作浪费时间,但它实际上可以保持团队的积极性并激发好奇心,这对于富有创造力的程序员来说是非常必要的。

另一件需要考虑的事情是经典的专家与通才之争。当然,两者都有优点,但作为管理者,你的工作就是留意过度专业化(或过度疲惫)的迹象。在这种情况下,可以刺激开发者获得其他技能,最好是通过结对编程,不断激励你的团队,以保持好奇心。

下一个主题是利用创造性思维提出原创且可持续的解决方案。其中包括流行的“心流”状态、如何感受创造力、工作深度与浅度、如何处理干扰以及如何触发创造性洞察力。

作为一名管理者,帮助培养正确的心态非常重要。这意味着确保团队成员或多或少受到保护,免受不必要的干扰。为了帮助解决这一问题,无论是在外部还是在内部(包括你自己!),你可以采取一些措施来准备和处理干扰,例如引入“请勿打扰”时间以及从开放式景观办公室过渡工具。

另外,当思考创造性洞察力的触发因素时,它是一个人做的事情还是两个人做的事情?一如既往,这取决于背景和情况。

鼓励创造性思维以及激发创造力的公司文化肯定也会对团队开发有所帮助。顺便说一句,开放的工作场所不利于创造力,狭小的封闭办公桌也是如此。相反,办公室应该被设计成封闭的子环境集群,在那里你可以遇到人并交换想法,而不会互相妨碍工作。

话说,麻省理工学院 (MIT) 的 20 号楼就是一个简洁的建筑范例。

帮助你构建创意的工具箱

最后,管理者可以帮助开发人员构建特定创意技术的工具集合,例如在遇到困难时进行缩小和放大,或者从问题的结尾而不是开头开始。

这里最好的候选者是从其他领域借来的工具。例如,作家用来提高创造力的各种写作技巧,它也可以应用于编程世界。当谈到借鉴想法时,有奥斯汀·克莱恩所说的“好的抄袭”和“坏的抄袭”。

与Tambouri 的社区牧羊人一样,管理者应该了解以下几点:道德方面的考量在软件工程中发挥着越来越重要的作用,尤其是随着 ChatGPT 和 GitHub Copilot 等人工智能辅助代码生成工具的兴起。

结语

本文探讨了创造性程序员的七个核心主题:“创造力和技术性”、“成功的创造性协作”、“基于约束的批判性创造性思维”和“如何培养创造性思维”。

它们总结了管理者可以采取哪些措施来促进“支持创意工具箱的建设”。

有一点是最重要的。提醒你的同事,创造力就像练肌肉一样,是一种可以训练和学习的技能!

许多年轻的程序员认为他们要么有创造力,要么没有创造力,而实际上他们可能还没有创造力。如果说管理者能做些什么的话,那就是认识到创造力是一种可以通过耐心培养的技能!当然,创造力的水平因项目不同、因人而异。

此外,创造力不断发展且与环境相关。但大家需要记住的一件事是,任何人都可以成为一名富有创造力的程序员,编码快乐!

作者:知识挖掘师

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论