万圣节是时候谈论恐惧了。 我在一家IT公司担任产品经理,所以这将是开发人员的噩梦。 但是不是普通的,而是那些在变化时期出现的。

当一家公司发展时,它改变了开发方式,创建了新产品并扩展了现有产品的功能,雇用了数十名员工,而那些以旧方式工作的人会发现很难进行重组。 我们为这些变化感到高兴,但有时候,为什么躲起来,我们却害怕这些变化。 我已经担任产品经理一年了,在这段时间里,我面对了我团队的五个主要恐惧。 今天,我将谈论这些恐惧以及我们如何克服这些恐惧。
1.害怕丢掉一切
测试是发布没有错误的产品的可靠方法。 但是有时没有设备可以检查代码。
我们创建了
DCImanager ,这是一个用于管理服务器和数据中心的面板,通常无法创建在虚拟环境中代码可以工作的条件。 例如,我们在控制面板中添加了对新交换机,路由器或PDU模型的支持,但测试台上没有此类设备。
在某些情况下,测试可以忽略不计,但我们的并非如此。 错误是昂贵的。 您不仅可以初始化一个变量,而且一半情况下将停止安装操作系统。 您可能会误认为几行代码-数据中心将“躺下”。 如您所知,没人愿意对“倒下的”数据中心负责,因此这种恐惧首先出现在我的团队中(尽管这与公司的转型无关)。
如何克服掉落一切的恐惧- 所有团队开发人员都要对每个功能进行代码审查。
- 我们保留事物列表,没有这些事物,任务将无法释放。
- 在开发版本发布之后,我们分析我们没有考虑到它。 我们详细描述了已完成的操作和观察到的行为,以便您随时可以返回任务并恢复内存中的所有内容。
- 不断更新知识库。 我们将时间用于开发人员的文档编制,并在彼此之间共享知识。 训练和站立。
- 最后但并非最不重要的一点。 我们在提供的设备上为客户测试定制开发。
一旦我们为现有交换机添加了端口聚合控制。 如果出错,则数据中心网络设备的运行将完全停止。 客户于凌晨三点到达他的数据中心并控制了情况,因此在这种情况下,他可以快速回滚到旧版本并恢复设备操作。 我们可能会失去远程访问权限,并且数据中心将瘫痪。
2.害怕没有测试员
我们的开发人员编写单元测试,并且每个人都进行手动测试。 但是一旦发生不可抗力,团队就没有了手动测试仪。 我们无法发布功能,因此开发人员必须相互检查。
这是对自尊心的打击。 碰巧的是,我们团队中的所有程序员都离开了测试人员(手动和自动)。 返回对它们的手动测试-退后一步。 这些人担心,如果他们能自己应付,测试人员将不会回到他们身边。 但是事实证明,这种恐惧是毫无根据的,经过几次冲刺,测试人员取代了他在团队中的位置,并且从经验中我们学到了很多有用的东西。
交叉测试有什么好处- 他们想起了“青年”,并再次从测试人员的角度看待了事态发展。 在某些情况下,添加了其他操作以使测试人员的生活更轻松。 例如,生成统计数据以进行验证。
- 他们证实了众所周知的事实,即开发人员对某些事情视而不见,因此无法测试其代码。 因此,他们测试了彼此的代码。
- 我们再次确信测试人员是团队的重要组成部分。 他们对发布的功能的质量负责。
3.害怕加入另一个团队
DCImanager于2013年发布。 六年来,技术发生了变化,是时候制作一个新版本了,我们决定从头开始。 我们绘制了原型,确定了MVP并确定了优先级。 旧版本的开发被冻结,但是他们无法启动新版本-已经为发布准备了两个新产品,所有的力量都献给了他们,我们不得不稍等。 在
休假期间,我的开发人员将成为
BILLmanager (我们用于托管自动化的其他产品)的项目团队。
然后又出现了另一种恐惧。 工程产品的开发人员在产品这个词的各个方面都不敢承担费用。 在他们看来,这不是他们的领域,理解一大堆账目是没有意思的。 我担心这会激励我的开发人员。 与我们不同,计费团队很高兴能卸载。
对于一些冲刺,我们开始从事BILLmanager的工作,这种经验也很有用。
简要介绍实施过程- 为了最大程度地减少切换到其他产品的压力,该团队保留了一个团队,并且不依赖BILLmanager的员工。
- 根据“您昨天需要做,但您没有足够的手”的原则选择任务。 产品专家讨论了这些任务,然后在计划下一个冲刺时,我将它们翻译成团队。
- BILLmanager的开发人员是我们的导师。 接待人员回答了所有问题,团队负责人告诉了它应该如何工作以及如何工作
- 我们有两次站起来。 首先,我们去计费,然后在团队内部讨论结果。
开发人员从介绍到另一个团队带来了什么好处- 另一个产品是您需要了解的其他人的代码。 加上其他工作逻辑以供理解。 得益于辅导员的指导和执行人员的耐心,我们成功地习惯了计费,注入了新技能并很快看到了改进之处。
- 当然,我们监视着另一个团队内部的某些事情。 似乎每个人的情况都是一样的,但是无论如何。 不同之处在于细节。 通常,他们会以自己最好和最方便的方式(例如,监视自己,并稍作改动后开始使用Scrum板,采用某些代码风格点,等等)。
4.害怕成为导师/没有团队领导就留下来
该公司需要尽可能多的强大程序员,因此,当开发人员投入大量技能并进入中级水平时,培训初学者就成为他的责任。 但是总体指导通常取决于团队负责人。 在我们的团队中也是如此,直到在其他产品中迫切需要领先开发人员的经验之前。 没有团队协作的程序员必须接受初学者和彼此的培训。
成为导师很可怕。 您需要分心任务,调适他人,在直觉水平上解释自己有时会理解的内容,并以一种易于理解的方式进行解释。 如果帕达万不了解,这是您的问题。 如果他犯了一个错误而您没有注意到,您会回答。
我不会就如何成为一名好导师提供建议,这是另一篇文章的主题。 但是我们设法做到了,并且从这种颇有压力的经历中我们学到了以下几点:
- 在解释中,需要给出更多的上下文。 一切都是美好的,当你告诉它时,事实证明它被撕毁了并且难以理解。
- 人们不仅应该查看评论中的代码,还应该理解一个人试图用该代码解决什么。 然后,更容易理解其逻辑并查找错误。
- 分享知识是有帮助的:学习形成思想; 把所有东西都放在架子上; 在解释时,您会找到解决该问题的最佳方法。
5.害怕不学习新技术
平静结束后,就该启动新版本的DCImanager产品了。 似乎这是期待已久的时刻。 现在,在一个由雄心勃勃的团队组成的团队中,我们将从头开始所有内容-无需查看代码中的旧错误和历史悠久的奇怪依赖关系。 但是那里有一个恐惧的地方。
几年来,技术取得了长足的进步。 我们使用C ++ 11编写了旧版本,并使用make来创建新版本,我们选择了C ++ 17,CMake,Conan和Docker。 团队需要学习所有这些并学习如何申请。 离开舒适区的另一种方式是挑战和思想:“如果我不能,并且会比其他人更糟”,“如果还有更多问题在等我,我将不会解决并把我踢出去。” 我们仍在掌握新技术,并且仍在与这种恐惧作斗争。
如何更快地学习新技术- 不要害羞地问年长和有经验的同事,不要害怕显得愚蠢。
- 记录下来,是为了加快新移民的沉浸过程,而不是说同一件事一万次。 维护知识库。
- 好的,Google总是会为您提供帮助。 如果不起作用,请参阅第1点。
不是恐惧,而是挑战
我将实验作为学习新事物,变得更好的机会,并且尝试让我的团队也关注他们的恐惧。 我认为这些家伙的心情在很大程度上取决于我。 当您相信产品和开发人员时,在站立时倾听他们的意见并回顾分析问题,在遇到困难时为他们提供支持,并解释对变更的需求,那么他们就更容易克服恐惧。
但说实话,库存中仍然有一些不败的恐惧症。 例如,害怕截止日期,或者害怕与初学者不相处。 到目前为止,似乎对它们无能为力-只能忍受。 但是也许随着时间的流逝,我们的观点会改变。
你为什么害怕
PS:如果您想第一个看到DCImanager演示版,请发送主题为“我希望看到新的DCImanager”的联系人到bizdev@ispsystem.com。 准备好后,我们会写信给您。 或者,如果您需要用于服务器管理的产品,但是由于某种原因当前的DCImanager不适合并且市场上没有合适的解决方案,请写下您对此类软件的愿望,也许我们会在开发计划中包括一些内容。