在初创公司担任开发人员的26课

在过去的三年里,我在柏林的一家小型B2B创业公司工作我是第一个后端开发人员,加入了从200到720个企业客户的增长,从年收入20万美元到320万美元,以及5到25名员工。

以下课程是我在那段时间学到的非常简单的个人总结没有更多,没有更少请享用。

(1)回顾是至关重要的。我们经常作为一个团队坐在一起,思考最后一次迭代回顾和评估的重要性不容小觑每个参与者都需要考虑好的事情以及需要自己改进的事情第一小组讨论才开始每个人都表达了他们的想法通过这种方式,每个人都能够提出重要的问题 - 比那些“最响亮”主导谈话的会议要好得多。

(2)花时间进行常规1:1s。在繁忙的启动环境中,可能很难证明这一点每周给你的经理一个小时但这就是我们所做的,它的工作非常出色您可以深入,及时地讨论问题,并简单地感受到员工的重视没有替代品。

(3)只需为开发人员工具付费。对于计算机,每GB或MHz都有助于更快地工作对于软件而言,每个有助于提高效率的有用工具都很重要为开发人员提供快速,现代的工具集也表明公司重视他/她不应该讨论这个问题期。

(4) Meet your customers.我们定期拜访当地客户,每年都会去客户热点(例如纽约和旧金山)这一切都有所不同与客户交换电子邮件是一回事,但与他们见面是一种完全不同的体验,并亲自听取他们的痛苦和成功当您重新开发时,它会对您对用户的看法产生强大而持久的影响。

(5)不要让构建变慢。你知道当缓慢的构建成为办公室里的堵嘴时,你的行为太迟了(XKCD任何人?)没有什么比缓慢的反馈周期更令人沮丧我们在后端使用Java,在前端使用Webpack本周两者都变得越来越慢最后,它让我想把头撞在墙上从长远来看,缓慢的构建不能通过购买更快的机器来修复You need to think about the structure of your application to deal with it; modularising it, for example没有快速解决方案。

(6)跨职能团队FTW。在我们组建跨职能团队之前,我们只能有效地解决小型项目一旦我们拥有一个由设计师加上前端和后端开发人员组成的团队,事情便开始了它使我们能够开发更大,更有影响力的功能它带来了一系列挑战,但总体而言,它是创业公司发展过程中的关键一步。

(7)Trello不能很好地扩展为bug或项目管理工具。我们用过Trello管理我们的错误我喜欢Trello,但我总觉得它不足它很难搜索,只能扩展到某一点项目管理也是如此在某一点上,简单性和易用性逐渐消失,它变得过于庞大和无效我更喜欢专门的工具,它们实际上支持并促进您想要实现的目标。

(8)承担责任或消亡。要在任何公司取得成功,您需要承担责任越大越好与企业环境的不同之处在于,这样做非常容易:角色不是一成不变的,很容易抓住无人认领或不受欢迎的责任你必须成为家伙/ gal为了提高你的地位你需要积极主动并塑造自己的形象 - 否则其他人会为你做如果您将此与公司目标保持一致,则可获得奖励积分你可以成为一名优秀的代码架构师 - 但是当公司只重视功能开发时,你就会赌错了马。

(9)适应或离开..或者如果你需要打架。您可能在某些事情上不同意您的管理层在这种情况下,您需要确定这些问题对您的重要性如果它非常重要,那么能够接受挑战,争取坚持你认为正确的事情但往往这将是一场艰苦的战斗如果你周围几乎没有人支持你,或者更糟糕的是,甚至不赞同你的意见,那么你需要问自己是否值得你可以忽略它并一起玩或寻找另一份工作。

(10)寻找实际重要的好处。很多初创公司都吹嘘着大量的好处有些人为他们的乒乓球桌感到自豪,有些人想在星期五晚上用开放式酒吧留下深刻印象,有些人则展示他们选择的高果糖玉米糖浆糖果It's a trap! Look for富有意义的午餐和学习的好处,教育预算或健康福利。

(11)CEO应该可以休假。当一家创业公司成长时,首席执行官不得不放弃越来越多的责任,因为一个人无法随之扩展基本上,首席执行官必须逐步替换自己一个很好的指标,如果这是成功的是他/她决定去度假。

(12)您需要一种实时消息传递策略。We used Slack and while it was fun at times, I think it killed a lot of the productivity我们对如何使用该工具没有共同的心态明确定义最终应该在聊天中的内容以及最好留给电​​子邮件,面对面交谈或维基的内容非常重要。

(13)你(可以)影响人们如何看待你 - 起初。无论你说什么和做什么都会影响别人对你的看法如果你周末工作,你将成为'工作狂'如果您想出新功能,您可能会成为“神奇的孩子”事情是:坚持下去通常,早期印象是最重要的改变周围人的感知变得越来越困难。

(14)平衡高级和初级人员。在后端,我们几乎只有高级开发人员,总共有55年以上的经验但令我惊讶的是,这导致了大量的讨论,很少取得很好的结果那些讨论非常激烈有时候我想知道每个人是否会活着另一方面,在前端,每​​个人都是初级他们表现出很多热情和创造力 - 虽然意义很好 - 往往会错过大局,缺乏高水平的最佳实践关键是初级和高级人员的正确组合。

(15)在开始编码之前,始终要进行视觉模拟。一个新功能有许多利益相关者例如,有项目经理,设计师,产品所有者,CEO,开发人员和客户他们都有自己的期望和议程传达新功能的愿景的最佳方式似乎是尽可能接近最终结果的视觉表现这一次又一次帮助我们防止误解并将每个人都放在同一页面上。

(16)每队一个办公室。它已被证明再次再次再次再次再次再次再次再次开放式办公室是一个坏主意我认为一家公司通常希望节省办公室租金,并将其作为合作和创造力的天堂出售根据经验,我可以告诉您,您需要一个安静的环境来完成工作 - 但您仍需要能够与您的团队成员轻松沟通如果你保持团队规模小的话,我发现“每队一个办公室”规则取得了很好的平衡。

(17)外向者主导每一次讨论,除非减轻。对于像我这样内向的人来说,工作场所可能具有挑战性外向的人喜欢说和写 - 很多内向的人通常无法竞争我们处于严重的劣势,因为外向的人可以更快,更自信,更精细地回应任何没有解决这个问题的公司都会因其“沉默的少数人”而失去伟大的想法和贡献。

(18)开发人员需要谈论他们共同的心态。一旦从单个开发人员转到开发人员团队,就会出现冲突Everyone is different这就是为什么分享关于代码风格,架构,开发和错误处理,代码审查等事情的共同心态如此重要的原因。简单地在维基中写下规则是行不通的它需要在环境需要时生活,理解和改变没有什么可以替代经常谈论它。

(19)定期更新状态是激励。知道了,在第二天的站立时,我的整个团队都会倾听我的工作动机对于每周状态更新更是如此当我们的创业公司还很小时,每个人都用上述几句话分享了上周的成功和失败当公司变得更大并且只有团队的共同努力被提出时,它就不再那么激励了。

(20)学习预算需要及时衡量,而不是金钱。虽然我们有学习预算,但除了参加会议之外,它几乎没有被用于其他事情研讨会可能会很受欢迎 - 通常甚至连最新技术都没有但是和我的许多同事一样,我能够从博客,书籍和视频中学到新东西因此,我建议允许开发人员每年投入几天的时间来自己学习这是我们必须要做的 - 通常在周末 - 但这样公司可以直接支持这些努力。

(21)结对编程被低估了。在团队成员甚至团队之间共享知识的一个很好的工具是结对编程就个人而言,我发现它比评论更有效编码过程中的互动和讨论是非常宝贵的它的有效性往往取决于两个开发人员能够相处得多好 - 从经验来看,我可以说,将不同的人组合在一起实际上可以产生最好的结果。

(22)如果没有适当的释放过程,功能会卡住。这个似乎很明显,但很容易被遗漏我已经目睹了几个月陷入困境的功能,因为没有人真正知道如何使用坐在分支中的完成功能最重要的是要清楚地了解谁有哪些责任,或者更好的是,有一个人的工作就是照顾它。

(23)有自治权时会发生很大的事情。让开发人员有机会在一边开展工作可以成为创新的强大源泉当一家公司支持优秀的开发人员拥有的这种天然驱动器时,会发生很如果没有,那么最敬业的开发者无论如何都会创造自己的机会(例如加班或周末加班,从长远来看会导致不快乐甚至倦怠。

(24)当你想要留言时,一次又一次地说出来。您有一条重要信息,希望每个人都能理解,分享和记住你不能只说一次或者只是将它放在幻灯片上,用粗体字母表示你需要一次又一次地重复它它必须是清晰的你说的话应该毫无疑问如需进一步的建议,请阅读优秀书籍让它坚持下去

(25)黑客是创业文化的重要组成部分。创业公司总是有比做资源更多的事情要做确定优先顺序至关重要这通常意味着快速破解几乎无法运行的解决方案有时候出于好的理由,比如对一个特征进行原型设计并看它是否坚持但如果确实如此,你很少有时间回去让它变得更好然而,我一直觉得非常恼火的是可以庆祝多少黑客总觉得对我作弊但我已经接受了它的意思:黑客在任何初创公司都是必不可少的恶魔请不要过分。

(26)截止日期是愚蠢的。在当今不断变化的世界中,截止日期是过去的一件神器截止日期只会让经理感觉良好,但会杀死一切对软件开发有益的东西截止日期越远,它变得越荒谬和危险唯一更糟的是截止日期一套要求这让我们回到了软件开发的古老起点将来没有截止日期的地方。

谢谢你的阅读我很快就会加入另一家创业公司,这次是在多伦多我确信我将在那里学到许多新课程。


评论由Disqus