服务器提供商_高性能_游戏云虚拟主机

2021-02-27 05:50

服务器提供商_高性能_游戏云虚拟主机

你可能知道也可能不知道,我们正在招聘。采访中经常会出现的一个问题是"Pipedrive中的工程是如何工作的?"以下是我在博客中的回答。也许这对于决定是否在这里申请一个职位,或者对你当前组织中的工程流程进行微调很有用。我们工程设计的理念在长跑中有一个很常见的心理技巧:把距离分成更小的部分。在路边选一个路标,然后一直跑到它,然后选下一个。冲洗,重复。我们喜欢用这种方法来比喻Pipedrive的产品开发工作。我们知道我们想去哪里,但我们也知道前面的路还很长,所以我们选择集中精力在这一周和即将到来的任务上。在我2013年10月加入Pipedrive之前,工程是由我们的CTO Martin Tajur负责的。一个由10名工程师组成的相当小的团队正在使用体位法来组织他们围绕不同产品理念的工作。产品开发更多地使用基于项目的方法,在集成到产品中并发布给客户之前,更大的特性将在几个迭代中开发出来。一个长期运行的项目会被暂停或停止,转而进行其他更紧急的改变,这种情况并不罕见。例如,我们的一个后端开发人员已经完全重新设计了定义公司和用户之间关系的方式—无论用什么标准衡量,这都是一项很大的工作—但是由于其他较小的更改需要"更紧急的关注",重新设计就被留在了他的办公桌上,几个月后才得以实施。当我加入公司并了解到这一点后,我们最终完成了开发。我们采用的框架很明显,对于我们想要和需要开发的更大的工程组织来说,这种方法既不有效也不可扩展。这就是为什么我们决定采用Scrum开发方法,它促进多个独立的小团队和快速的产品迭代,在这种迭代基础上经常进行真正的用户价值交付。从那以后我们就一直在使用Scrum。Scrum的鸟瞰定义是,它是一个用于完成复杂项目的敏捷框架。这个过程是围绕着一个按优先级排列的任务列表来组织的,团队需要完成这些任务,以便将产品发送给客户。Scrum重视团队的努力,并为团队定义了一些简单而健壮的规则。在我们使用Scrum的道路上,品高云,我们已经对我们的流程进行了实质性的改变和改进。我们从三个独立的iOS团队和Web应用程序开发团队开始。Web应用程序团队是最大的团队,很快就被分成了两个独立的团队。Scrum方法中有一个元素叫做回顾,它已经成为团队中流行的仪式。人们给予和接受反馈,并寻求改进。这是所谓的动态稳定性的支柱,即持续但相对较小的变更努力的过程,涉及对现有实践的重新配置,而不是创建新的实践。有意思的是,回顾会上讨论的主题是如何随着团队成员的技能和成熟度而发展的。最初,当人们试图理解什么是最有效的时,大部分的斗争都围绕着过程本身进行。一旦例程被打破并成为人们的第二天性,围绕规范和任务定义的问题就出现了。我向我们的一些开发人员征求了他们对我们使用的Scrum方法的看法。老前辈们说,对他们来说,最大的改变是对优先事项有了更清晰的认识。新来者将Pipedrive视为Scrum实际工作的组织。用martinkapp的话来说:"在scrum之前,每个人或多或少都可以自由地做他们想做的和需要做的事情,但是保持专注和保持动力也是很困难的。Scrum为我们提供了关注点和明确的目标,云服务器特价,让我们知道我们的产品将何去何从,以及我们实际想要交付什么。"henrikroosmann证实:"Scrum提高了未来任务的可见性和可预测性。我们的团队对公司的发展方向有了更好的理解,我们正在努力实现更大的目标。"Scrum在Pipedrive中的应用2015年初,我们将我们的网络团队分成了四个独立的小团队。除此之外,我们把冲刺时间缩短到只有一周。结果发现,两个同时发生的变化对组织来说太多了。然而,我们还没有恢复这两个方面的任何一个,因为这两个都是必要的改变,但我们已经吸取了教训,并将谨慎地避免在将来一下子改变太多。我们的团队是跨职能的-理想情况下,每个团队中应该有五名开发人员、一名质量保证专家和一名产品经理。经历了组织规模的不同阶段意味着这种完美的组合可能永远不会存在,至少不是每个团队都存在。我们要么在某些团队中增加新人,这样他们就能更快地掌握知识和技能,那云,要么将团队分成更小(人手不足)的团队,这样我们就可以轻松地增加新员工。展望未来,我们不太可能再拆分产品团队了。相反,我们将根据业务需要增加新类型的团队。下一个重点领域是数据分析、核心后端基础设施、开发人员和操作工具。我们的首要任务是雇佣能够覆盖所需区域或从现有团队中解放一些人员的人员。我们认为,把思想和实施之间的摩擦和时间减到最小是至关重要的。我们也不喜欢重复我们自己。我们努力坚持通过使用可用的最佳工具和自动化来尽可能减少所需工作量的原则。我们衡量什么-我们怎么知道我们做得很好?为了更好地了解团队绩效以及发生的流程和工具更改的影响,我们遵循以下几个指标。Sprint的速度、承诺和交付是很重要的,为了了解一个团队是过度承诺还是不够努力。在下面的图表中,您可以看到sprintq1w10的承诺金额远远超过了之前交付的点数,从而导致实际交付量的损失更大。有人可能会说,可能还有其他原因,但是失败的过度承诺的冲刺是一个非常臭名昭著的趋势。另一方面,承诺适当数量的积分产生了大部分的价值交付。到达那里需要大量的反复试验。Scrum承诺vs.完成我们遵循的另一个度量标准是平均任务周期时间,因为它创建了关于开发中的问题的有见地的讨论,并显示了任务定义和价值交付方面的积极趋势。jiraagilereports部分的控制图提供了所有任务周期时间的统计平均值的概述,并显示了异常值,可以仔细查看这些异常值的详细信息和原因。我们的目标是将所有任务的平均周期时间保持在3天以内,使我们能够在一个sprint内准备好任何任务。这对于我们在一周的冲刺中交付承诺任务的能力至关重要。另一个重要指标定义了我们的错误修复策略。团队净错误分数定义为已解决的错误数减去注册的错误数。我们试图在一段时间内保持我们的分数为正,也就是说,我们修复了比添加到已知错误列表中更多的错误。我们使用的工具我们的自由形式的通信在空闲时间进行,所有关于自动化故障和从这些故障中恢复的重要通知也是如此。团队也会通过松弛的渠道获得有关最重要的业务指标(如新客户或流失客户)的通知。Atlassian Jira敏捷工作流非常精确地反映了一个成功的Scrum组织应该如何运作,好的云服务器,我们正在充分利用它。每个开发人员都可以自由选择自己喜欢的、最有效率的代码编辑器。PhpStorm已被大多数后端开发人员采用,Sublime Text被所有人用作通用编辑器。移动开发人员使用特定于平台的工具,如Xcode和androidstudio。Github是存储我们所有代码的中心位置。它使得与代码交付和部署链中的其他工具集成非常容易。我们对所有的代码更改都使用代码评审,Github pull请求可以帮助我们做到这一点。我们已经部署了Jenkins作为CI解决方案,但是我们目前正朝着代码交付的方向前进,因为我们遇到了一个问题:在将代码合并到主代码之前,我们要在每个代码分支上运行Jenkins。我们的本地化过程可以称为最先进的。我们设法将本地化作为一个与开发并行的过程来实现。在每次代码提交时,我们提取新添加的字符串并自动将它们发送到我们的翻译平台。同时,我们检查以前提交的字符串是否有任何新的翻译,大数据市场,并将它们包含到我们的代码中。我们的测试方法类似于本地化——它必须与开发过程并行进行。我们在测试自动化方面投入了很多。单元和集成API测试在每次代码提交时执行。UI自动化测试由开发人员手动执行,以捕获功能回归。所有更大的功能更改都隐藏在特性切换之后,并在向客户公开之前进行彻底测试。学习新技术和新技能对我们也很重要。我们为所有工程师定期召开会议,称为技术交流会(TEX),有时还参加办公室外的特定培训课程。有时我们还会让一位工程师介绍一种新技术或解决方案,或者从Youtube上挑选一个有趣的演示文稿,一起观看,然后再讨论。我们还参加了一些关键技术会议,比如苹果WWDC和谷歌I/O。如果你对这个话题有疑问,请在下面留言。如果你有兴趣的话

分享到:
收藏
相关阅读