Santiago Palladino是Open Zeppelin的团队负责人,Open Zeppelin是一家位于布宜诺斯艾利斯的公司,该公司为区块链创建开发工具并审核区块链应用程序的安全性。他与我们分享了他克服领导团队与分布式区块链开发团队合作的独特挑战的方法。
以下是Santiago采访的三个关键要点,概述了他为构建和维护大型复杂产品的有效开发团队所做的工作:
- 开发区块链具有挑战性,因为方法不同且一切都在不断变化。创建区块链应用程序的要求不同于Web或移动应用程序。它也在不断发展,安全性至关重要,应用程序的使用方式是全新的。
- 使用区块链,您永远不会停止新团队成员的入职。由于一切都在不断变化,您必须不断学习和适应。新成员如果潜入并练习,几个月后就会变得富有成效。
- 在挑选新的团队成员时,先前的经验并不像寻找对挑战充满热情和动力的人那么重要。他们的面试过程侧重于寻找能够有效沟通并对这样一个充满活力的新空间感到兴奋的人。
- 在全球团队中建立有效的联系始于面对面地了解人们。他们总是有新的团队成员在主办公室工作,并且他们在一年中举行务虚会,所以每个人都有面对面的时间。这使得通过书面或虚拟通信进行连接变得更加容易。
软件开发的一个新领域是区块链,它是一种创建去中心化和分布式分类账的方法。圣地亚哥从没想过自己会成为使用这项令人兴奋的新技术的领先工程师团队。这是偶然发生的,因为他慢慢地对其他开发人员进行了更多的规划和指导。
现在,他管理着分布在世界各地的20名工程师,他们致力于开发帮助他人创建实用区块链应用程序的工具。Santiago分享了他在高度动态的软件开发领域构建和领导分布式团队的经验。
为区块链开发
圣地亚哥首先承认区块链受到了很多不好的宣传,其中一些是它赢得的。然而,他指出“区块链的主要吸引力在于它是一种全新的构建范式。”他发现这个领域具有挑战性,因为它是如此新,人们开发应用程序的方式是独一无二的,并且支持应用程序的工具不断变化。
“区块链需要改变编码方式和构建方式。”
即使面临这些挑战,圣地亚哥仍然认为这是一次千载难逢的机会,可以参与将带来世界变化的新事物和令人兴奋的事物。他认为它使人们能够控制自己的合同和金融交易。他观察到,将区块链用于智能合约是基于该技术的积极应用的一个很好的例子。
招聘区块链
区块链开发的独特性使招聘成为一项挑战。Santiago的职业生涯始于用Java编写Web应用程序;事情已经建立并稳定了。借助区块链,尤其是区块链的主导平台以太坊,事情正在快速发展。方法、工具和算法都在不断变化和发展。这就是Open Zeppelin聘请了来自不同背景的各种人员的原因。他们“寻找想要学习、受到挑战激励的充满激情的人。他们追赶的速度之快令人难以置信。”
Santiago分享说,Open Zeppelin从筛选面试开始其招聘流程,然后与团队负责人进行讨论。然后,他们做一些不同的事情;他们有一个有偿测试项目的前景工作,来自OpenZeppelin的工程师担任教练。
“这个想法是申请人一直在与他的教练沟通,完成这个项目的设计和开发。教练可以帮助解决技术问题,并帮助确定优先级,最重要的是,评估沟通。”
他们希望“将您的兴趣和动力与您的需要相匹配。了解与这些人一起工作的感觉对您有好处,并且让我们了解您的工作方式、建设方式、方式你优先考虑,你如何处理挫折。”这有助于OpenZeppelin团队找到可以作为团队不可或缺的一部分工作的合适人选。
区块链入门
当被问及开发人员入职需要多长时间时,Santiago说:“我大约两年半前加入公司,现在还在入职。当然。老实说,我认为你永远无法完成入职过程这里。”为了让人们快速上手,他首先将他的新团队成员指向在线资源,并让他们尽快参与到项目中。
“我们要求他们做一些更实际的事情。假装你是用户,根据需要尽可能多地弄脏手,通过练习,你最终会学到东西。”
除了为区块链开发人员编写工具外,OpenZeppelin还提供安全审计服务。该领域的新员工专注于理论和安全以及学习区块链编程。这两种类型的员工都与经验丰富的工程师合作,他们会仔细检查他们所做的一切。
Santiago亲自尝试通过撰写自己的关于该主题的书来填补这一空白,《面向Web开发人员的以太坊:学习在以太坊区块链之上构建Web应用程序》。
安全培训
在整个采访中都提到了安全性,因为区块链应用程序的一个基本功能是提供一种安全且分散的方式来记录交易。这就是为什么圣地亚哥强调通过严格的审查过程创建安全文化至关重要的原因。
“最大的培训来自实践和对我们构建的一切的非常彻底的审查。”
为了创建安全的应用程序或有效地审计其他人的应用程序,他觉得“第一件事是操作安全。你必须先保证自己的安全,然后才能保证你建造的东西安全。这是让人们树立正确心态的第一件事。”
打造高效分布式团队
Santiago还花了一些时间讨论他认为作为领导者面临的最大挑战是什么;管理全球开发团队。尽管Open Zeppelin在阿根廷布宜诺斯艾利斯设有办事处,但其大约一半的工程师居住在世界各地的不同国家。他们开始通过雇佣有远程工作经验的人来解决这个问题。这些员工带来的技能和方法帮助OpenZeppelin创建了一个有效的分布式团队。
“关键是雇用有远程工作经验的远程人员。”
其中一种解决方案是以书面形式记录所有内容。圣地亚哥认为,分散开来让每个人都无法听到正在讨论的内容。所以他们把事情写下来;每个人都可以在他们的时区工作时查看它。OpenZeppelin采取的另一种方法是每周通过互联网召开同步会议。每个人都分享他们正在做的事情以及他们个人生活中正在发生的事情。
他们还强调面对面的会议。当新工程师加入团队时,他们会在布宜诺斯艾利斯办公室工作两到三周。然后每年两次,团队在世界某个地方聚在一起见面。圣地亚哥发现,在现实世界中见面“有助于建立这种归属感,并在镜头之外建立个人关系。当你面对面地认识一个人后,虚拟交流就会变得容易得多。”
为开发人员创建软件
采访结束时讨论了为开发人员创建应用程序。作为一个小型组织,他们没有特定的产品经理。相反,他们作为一个团队来改进他们创建的软件。Santiago将计划描述为“团队制定计划并由首席执行官和研究主管决定的协作过程”。
“通过审计一个项目,我们可以对建造它的人所经历的事情有一个独特的了解。”
由于Open Zeppelin还对其客户创建的最终用途产品进行安全审核,因此他分享说,他们的优势在于可以亲眼目睹人们如何部署他们的工具。审计员向开发团队报告什么有效,什么无效,以及客户需要为自己构建什么。他们可以添加缺失的功能并修复现场发现的问题。