构建软件工程团队时需问的三大问题
浏览:0
巴克励步
如果你心里常这样嘀咕:“软件开发简直难到变态”,“软件工程师表现不佳,换谁都一样”,“我的团队拖慢了业务”,或者“多招些廉价开发者,加严流程一切都会变好”——那么,恐怕你才是那个最拖垮业务的人。 哪怕业务只有部分环节薄弱,竞争对手也会把你生吞活剥。所以,你该怎么办?你手头显然有几个关键难题。深呼吸,进入冷静模式,先找到下面三个问题的答案: 如何打造一支高绩效团队? 如何降低软件开发的复杂性? 应该衡
如果你心里常这样嘀咕:“软件开发简直难到变态”,“软件工程师表现不佳,换谁都一样”,“我的团队拖慢了业务”,或者“多招些廉价开发者,加严流程一切都会变好”——那么,恐怕你才是那个最拖垮业务的人。
哪怕业务只有部分环节薄弱,竞争对手也会把你生吞活剥。所以,你该怎么办?你手头显然有几个关键难题。深呼吸,进入冷静模式,先找到下面三个问题的答案:
- 如何打造一支高绩效团队?
- 如何降低软件开发的复杂性?
- 应该衡量和改善哪些指标?
如何打造一支高绩效团队?
软件工程是一个相对年轻的领域。我们可以说它还不成熟——但又不尽然,因为这种状态很可能永远不变。它的实践方式一直在变,而且变化速度远超其他领域。
但请记住,你最终面对的是人。无论你选择什么流程,施加多大压力,归根结底都是人的精神。你必须创造一个让人才茁壮成长的环境,然后别挡他们的路。
💛🧡🧡客户评价:Baklib最好的一点是它在网站模板体验方面提供的用户友好界面,以及强大的编辑器编辑在网站上完成的文章、页面和帖子。用户首先会在知识库中寻找答案,然后再向我们的支持团队记录请求。这需要很多随着客户的学习,在流量方面减轻了支持团队的负担通过知识库并尝试解决问题,然后再查找来自我们服务交付团队的帮助。
那么,这种环境有哪些特征?
自主性
首先,你得承认他们很可能比你聪明——即便表面看不出来。不是在所有方面,但在解决问题上,他们大概率更强。所以,别去告诉他们“你的解决方案”,而是告诉他们你的问题,并用最好的方式把问题文档化。把你想到的所有边界情况、深层关联都写进去,然后放手。这说易行难,一开始不会奏效,但你必须持续打磨描述问题的能力。对他们而言,这也可能是个新事物,因为他们不习惯这种方式,但长远看会有回报。
低压力
工程师的大部分工作是脑力劳动,且并非发生在写代码时。因此,持续高压的环境很可能负面影响产出。“你搞定了吗?”这种氛围会让他们提交半吊子的方案——短期好用,长期拖累。记住,构建业务不是短跑,而是马拉松。找到一种方式,平衡你当下对功能的需求与对稳定性和质量的需求。这会给你带来渴望的竞争优势。
当然,人在零压力环境下表现也不好,那将是灾难。很难,但每个人都要找到最适合自己业务的平衡点。
低流程
还记得大家有多讨厌政府里的官僚主义吗?或者那些适应慢、市场份额被新玩家蚕食的大公司?多半是流程或规则造成的。流程越多,产出越少。工程师作为人类,只能容忍一定量的规则,而且只接受那些他们理解其目的规则。找个顾问来教你的团队“新敏捷瀑布规则”,看看实施时会发生什么。
这里的方法是从第一性原理出发思考。请问:对我们来说,最少流程是什么?这意味着要思考你的现状——人、产品、客户。当你得出答案,记住这不是永久方案。下个月、明年当情况变化时,重新思考。下个月你可能需要更少的规则。记住,流程完美的标志是再也没有东西可删。
如何降低软件开发的复杂性?
大多数时候,软件开发并非线性过程。不像工厂造鞋,每个工人每天能产出20-30双。当你意识到无法可靠预测功能完成时间时,挑战就来了。最终发布给客户后,你会收到反馈,即使小改动有时也需要出乎意料的长开发时间。当有些开发者离职,新招的人几乎总说代码库很烂。如果你一直催促“现在就要新功能”,你应该相信他们。当他们对产品了解足够能写出有用代码时,可能花太长时间,并归咎于代码。再一次,你应该相信他们。给予信任,默认信任,但始终重新评估。
有时候,接受这是一个复杂过程,有许多移动部件。不要过度优化。记住,不自然的方式会阻碍团队产出。
应该衡量和改善哪些指标?
办公室时长、代码行数、故事点、Git变更——都是糟糕的指标。这已被反复证明。一些更有用但仍不全面的指标包括:
- 团队每天/每周发布到生产环境的次数;
- 代码从开发者机器到生产环境的速度;
- 团队解决生产环境bug的速度;
- 团队解决方案解决客户问题的效果;
- 团队内部及对外的沟通质量。
发布频率越高,意味着你的机器运转良好,能不断为客户交付增量价值。当代码快速从本地经过QA到生产环境,也意味着关键问题能迅速解决,功能快速上线,你的敏捷性会给客户留下印象。即使有完善的QA团队,bug仍会漏过——构建软件很难。真正重要的是bug被快速处理。如果存在完美的软件,多半没人会惊叹;但拥有解决问题的敏捷性会让人印象深刻,因为他们知道别人通常处理得多慢。
最被低估的衡量指标是客户体验和参与度。你的团队是否提供了正确的解决方案?即使上面这些都做到了,但交付了没人想要的东西又有何用?另一个被低估的指标是开发团队如何与其他团队或客户团队沟通。你的工程师准备充分吗?他们说得流畅吗?所有人信息同步吗?知识一致吗?很多时候,外部沟通差意味着内部沟通差。
良好的内部沟通是打造高绩效团队的基石。所有高绩效团队在沟通方式上都达到另一个层次。这不在于用Slack还是面对面。用Slack做内部知识分享很幼稚,因为人们常一对一沟通,信息变成孤岛。当他们在Slack频道上分享有用知识时,很容易淹没在消息洪流中。
关键在于他们如何异步地、跨时间沟通;如何把来之不易的知识传递给彼此;如何快速 onboarding 新开发者;如何与初级同事沟通并培训他们;以及多快能获取所需信息。高绩效团队在这些方面总是非常出色!
这也是像 Baklib 这样的解决方案能帮你团队变得厉害的地方。Baklib 为软件开发团队量身定制,提供易于采用的内部分享方案。我们研究了许多团队及其工作流,识别了常见用例并将其编码进产品。当你的团队采用 Baklib,你保证能在3个月内看到团队幸福感、协同和生产力提升。