《如何管理知识分子》一书。 我,书呆子和怪胎

图片 专用于项目经理(以及那些梦想成为老板的人)。

编写大量代码很困难,而管理人员则更加困难! 因此,您只需要这本书来学习如何做到这两者即可。

有可能将有趣的故事和严肃的教训相结合吗? 迈克尔·洛普(Michael Lopp,又称兰德(Randes))成功了。 关于虚构人物的虚构故事,这些虚构人物具有非常有用的(尽管是虚构的)经历,等待着您。 这是Randy分享他在大型IT公司(苹果,Pinterest,Palantir,Netscape,赛门铁克等)的多年工作中获得的,有时甚至是奇怪的经验的方式。

您是项目经理吗? 还是想了解你该死的老板整日干什么? 兰德(Rand)会教您如何在充满毒性的土耳其膨胀世界中生存,并在功能失调的充满活力的人们的普遍疯狂中壮成长。 在这个陌生的狂躁的明智社区中,甚至还有陌生的生物-经理们通过神秘的组织仪式获得了许多人的计划,思想和银行账户的权力。

这本书不像任何有关管理或领导力的手稿。 迈克尔·洛普(Michael Lopp)没有隐藏任何东西,他只是告诉所有事情(也许不是所有故事都应该公开:R)。 但是只有这样,您才能了解如何与这样的老板一起生存,如何管理怪胎和书呆子,以及如何将“那个他妈的项目”带到幸福的终点!


摘录。 工程思维


关于该主题的想法:您是否需要继续编写代码


兰德(Rands)关于领导力规则的书中有很短的现代必备经理列表。 该清单之所以简短,是因为“必须”的概念是绝对的,而对于人来说,绝对概念很少。 成功地管理一个员工的方法对另一个员工来说将是真正的灾难。 这个想法是管理“必做”列表中的第一项:

保持灵活性!

考虑到您已经知道一切,这是一个非常糟糕的主意。 在唯一不变的事实是世界上不断发生变化的情况下,灵活性成为唯一的真实位置。

矛盾的是,列表中的第二项令人惊讶地僵化。 但是,这是我个人最喜欢的项目,因为我认为它有助于为管理人员的成长奠定基础。 本段内容如下:

停止编写代码!

从理论上讲,如果您想成为领导者,您应该学会信任为您工作的人,并完全向他们传递代码。 这些建议通常很难“消化”,尤其是对于新领导人而言。 他们成为领导者的原因之一可能是他们在开发中的生产力,当事情出现问题时,他们的第一个反应就是诉诸于他们完全有信心的技能,即,他们具有编写代码的能力。

当我看到一位刚认识的领导者在编写代码之前“倒下”时,我告诉他:“我们知道您可以编写代码。 问题不同:您知道如何领导吗? 您不再对自己一个人负责;您对整个团队负责。 而且我想确保您可以让您的团队自行解决问题,而不必自己编写代码。 您的任务是弄清楚如何扩展自己。 我希望你不要成为唯一的,我希望有这么多人像你一样。”

好建议,对不对? 规模 管理学 责任感 这样常见的流行语。 遗憾的是该建议是不正确的。

不对吗


是的 该建议是错误的! 并不是说这是完全错误的,而是错误的,以至于我不得不打电话给一些前同事并道歉:“还记得我最喜欢的声明,您应该停止编写代码吗? 错了! 是的...再次开始编程。 从Python和Ruby开始。 是的,我是认真的! 您的职业取决于它!”

当我在Borland担任软件开发人员的职业生涯开始时,我在Paradox Windows团队工作,这是一个庞大的团队。 只有一名应用程序开发人员是13个人。 如果我们增加了其他团队的人员,这些人员也一直致力于该项目的关键技术,例如主数据库引擎和主要应用程序服务,那么我们将有50名工程师直接参与该产品的开发。

我曾经为之效力的其他团队甚至都没有接近类似的规模。 实际上,随着时间的流逝,我工作的团队中的人数正在逐渐减少。 这是怎么回事? 我们的开发人员集体变得越来越聪明吗? 不,我们只是分配负载。

在过去的20年中,开发人员一直在做什么? 在这段时间里,我们写了一堆废话。 代码之海! 我们编写了如此多的代码,我们决定:简化所有内容并切换到开放源代码将是很好的。

幸运的是,由于有了Internet,该过程现在已变得尽可能简单。 如果您是软件开发人员,则可以立即查看! 在Google或Github上搜索您的名字,您会看到一个早已被遗忘的代码,但是任何希望找到的代码都可以找到。 吓人吧? 您不知道代码永远存在吗? 是的,他永远活着。

该代码永远存在。 好的代码不仅可以永远存在,而且还会不断增长,因为那些不断珍视它的人会注意它不会失去新鲜感。 这类高质量且维护良好的代码有助于减少工程团队的平均规模,因为它使我们不仅可以专注于编写新代码,还可以专注于现有代码,并在较短的时间内与更少的人员一起工作。

这种推理听起来令人沮丧,但我们的想法是,我们所有人都是一堆集成机,这些集成机使用胶带将现有事物的不同部分连接在一起,以创建同一事物的稍有不同的版本。 这是热爱外包的高层管理人员的经典思路。 “这可以由任何知道如何使用Google并有胶带的人来完成! 那为什么我们要向自动售货机支付大量资金呢?”

我们付给这些类型的高管很大的钱,他们认为这是胡说八道。 再说一遍:我的主要想法是,我们星球上有许多杰出而勤奋的开发人员。 尽管他们没有花一分钟时间坐在获得认可的大学中,但他们确实是杰出而热心的。 哦,是的,现在越来越多!

我不建议您仅仅因为某些聪明的同志捕食他而开始担心自己的位置。 我建议您开始担心他,因为软件开发的发展可能比您快。 您已经工作了10年,其中有5年担任领导者,您认为:“我已经知道软件是如何开发的。” 是的,你知道。 再见...

停止编写代码,但是...


如果您遵循我的最初建议并停止编写代码,那么同时您将自愿停止参与创建过程。 出于这个原因,我在外包方面并不特别活跃。 机器不创造,它们产生。 精心设计的流程可以节省很多钱,但不会给我们的世界带来任何新鲜事物。

如果您的团队很小,而且花很少钱做很多事,那么停止编写代码的想法似乎是一个错误的职业决策。 即使在拥有无穷无尽的法规,流程和政策的巨型公司中,您也无权忘记如何自己开发软件。 并且软件开发在不断变化。 她正在改变。 脚下! 这第二秒!

您有异议。 我明白了 让我们听听。
“兰迪,我在去导演椅的路上!” 如果我继续写代码,没有人会相信我能够成长。”
我想问你一个问题:自从你就座以来,“我很快将成为董事!”,你是否注意到即使在公司内部,软件开发领域也在发生变化? 如果您的回答是“是”,那么我将再问您一个问题:它到底有多大变化,您将如何处理这些变化? 如果您对我的第一个问题回答“否”,那么您需要转移到另一位主席,因为(我愿意!)第二步将改变软件开发的范围。 如果您慢慢地但肯定忘记了如何开发软件,您将如何成长?

我的建议是不要为自己的下一个产品提供大量功能。 您需要不断采取措施,以随时了解团队如何创建软件。 您既可以担任董事,也可以担任副总裁。 还有吗
“呃,兰迪! 但是有人一定是仲裁者! 有人应该看到全局。 如果我编写代码,我将看不到前景。”
您仍然必须保持仲裁人的身份,仍然必须广播决定,并且仍然必须在每个星期一早上四次在建筑物周围四处走走,与您的一位工程师一起聆听他每周30分钟的演讲:“我们都注定了! 但是除此之外,您还必须自己掌握工程学的思维方式,因此不必成为一名专职程序员。

我对保持工程思维的建议:

  1. 使用开发环境。 这意味着您应该熟悉团队中的工具,包括代码构建系统,版本控制和编程语言。 因此,当您的团队谈论产品开发时,您会说流利的语言。 它还将允许您继续使用自己喜欢的文本编辑器,效果很好。
  2. 您必须能够绘制详细的架构图,以随时随地在任何表面上描述您的产品。 现在,我不是指具有三个单元格和两个箭头的简化版本。 您必须知道详细的产品图。 最困难的。 不仅有任何漂亮的方案,而且还有一个难以解释的方案。 该卡应适合完全了解产品。 它在不断变化,您应该始终知道为什么会发生这些或其他变化。
  3. 承担功能之一的实现。 我写这篇文章时确实有点发抖,因为这一点充满了许多潜在的危险,但是我真的不确定您是否可以履行第1款和第2款而不必承担至少一项职能。 由于其中一项功能的独立实施,您不仅可以积极参与开发过程,还可以让您定期从“负责一切的经理”角色切换到“负责执行一项功能的人员”的角色。 谦虚谦虚的立场会让您想起小决策的重要性。
  4. 我还在发抖。 似乎已经有人对我大喊大叫:“负责执行该功能的领导者?! (我也同意他的观点!)是的,您仍然是领导者,这意味着应该做些小事情,好吗? 是的,您还有很多事情要做。 如果您无法以任何方式进行该功能的实现,那么我有个备用提示:处理一些错误。 在这种情况下,您不会感到创作的乐趣,但是您将了解产品的创建方式,这意味着您将永远不会被浪费。
  5. 编写单元测试。 在人们开始发疯的生产周期的后期,我仍然会这样做。 将其视为您产品的健康检查表。 经常做。

再次提出异议?
“兰德,如果我编写代码,那么我会让我的团队感到困惑。 他们不会知道我是谁,领导者还是开发商。”
好啊

是的,我说:“好!” 我很高兴您相信只有在开发人员的池塘里游泳才能使您的团队感到困惑。 这里的一切都很简单:软件开发领域中各种角色之间的界限目前非常模糊。 UI专家正在做通常称为JavaScript和CSS编程的事情。 开发人员越来越了解有关设计用户交互的知识。 人们彼此交流,了解错误,他人代码的失窃,并且领导者没有充分的理由不能够参加这种大规模的,全球性的,相互授粉的信息细菌。

另外,您是否想成为由易于更换的组件组成的团队的一部分? 这不仅使您的团队更加敏捷,还将使每个成员都有机会从多种角度看产品和公司。 在看到汇编脚本的简单优雅之后,如果不这样做,您如何仍然尊重弗兰克,他是负责布局的好人?

我不想让您的团队感到混乱和混乱。 相反,我希望您的团队中的沟通更加有效。 我相信,如果您自己参与创建产品和开发功能,您将与您的团队更加紧密。 更重要的是,您将更接近组织内部软件开发过程中的不断变化。

不要停止发展


我的一个Borland同事曾经口头攻击我,称她为“编码员”。
“兰德,编码器是一台无脑的机器! 猴子 编码器除了写无聊的无用代码行外什么也不做。 我不是编码员,我是软件开发人员!”
她是对的,她会讨厌我对新领导人的初步建议:“停止编写代码!” 并不是因为这样我应该假设他们是编码员,而是因为我主动建议他们开始忽略他们工作中最重要的部分之一-软件开发。

因此,我完成了我的建议。 如果您想成为一个好的领导者,那么您可以停止编写代码,但是...

要灵活。 记住,成为工程师意味着什么,不要停止开发软件。

关于作者


迈克尔·洛普(Michael Lopp)是一位软件开发资深人士,他仍然没有离开硅谷。 在过去的20年中,Michael设法在包括苹果,Netscape,赛门铁克,Borland,Palantir,Pinterest在内的各种创新型公司中工作,并且还参与了一家逐渐消失的初创公司。

除了工作之外,Michael还在Rands的笔名下建立了一个颇受欢迎的技术和管理博客,他在此与读者讨论管理思想,表达了对与时俱进的关注,并解释说,尽管为所创造的产品提供了丰厚的回报,但只有成功才有可能感谢您的团队。 可以在www.randsinrepose.com上找到该博客。

迈克尔与家人住在加利福尼亚的红木。 他总是抽出时间骑山地自行车,打曲棍球和喝红酒,因为保持健康比忙碌更重要。

»这本书的更多信息可以在出版商的网站上找到
» 目录
» 摘录

小贩优惠券20%- 管理人类

支付纸质版本的书后,将通过电子邮件发送该书的电子版本。

PS:这本书的成本的7%将用于新计算机书籍的翻译,移交给印刷厂的书籍清单在此处

Source: https://habr.com/ru/post/zh-CN440842/


All Articles