到目前为止,作为软件开发人员,能力主要来自于打破常规 (当然,并且要快速修复它) 。 老实说,我不相信任何人都可以解决他们无法打破的问题(排除偶然性)。
等待! 为什么我们需要修复?
因为,我们的东西无法按预期工作。 这是我们系统中的错误情况。
但是,什么是错误?
当我们谈论错误时,通常是指代码库/系统中的错误行为。
如今,我认为错误的意义不仅仅在于技术异常,还包括驱动,构建或与我们的产品搭配的行为偏差。 从这个意义上讲,虫子就像使食物咸的那些多余的盐粒。
因此,作为开发人员,如果我们的沟通不力,这是一个错误,需要修复。 错误与您与利益相关者和同事进行交互的方式存在,因此应加以管理和修复,它们成为里程碑,使您无法成为自己希望成为的出色开发人员。
快进……现在您处于一个具有真实业务价值的真实项目中
除了与真正的团队合作,遵守团队指南和文化外,您还需要构建供实际人员使用的产品。
这是困难的,但并非没有不可能(保持我们的思想) 。 目标和人员不断变化(有时,因为他们可以做到) ,想法广而广。 在这些变化中,保持灵活性有时会非常困难。
最重要的是,您正在为这些产品开发产品的人不像您这样认为。 实际上,他们没有写您的用户故事。 大多数时候,他们不阅读指南/文档。 在与您的应用程序进行初始交互时设置了许多假设。 由于用户的这些假设,我们强调测试极端情况。 实际上,忽略这些假设通常会导致我们快速解决问题 。
您会发现,用户是伟大的思想家,他们想告诉您应用程序的工作方式。 有趣的是,他们大都是对的。
就像里克·库克(Rick Cook)所说的那样: “今天的编程是软件工程师之间的竞赛,他们努力构建更大,更好的防白痴程序,而整个世界都在尝试构建更大,更好的白痴。 到目前为止,宇宙正在胜利。”
我在一家庆祝失败但不被接受的公司工作。 我什么意思 当失败发生时,我们会庆祝失败,并从中汲取经验来构建好的东西。 我们不接受失败,因为我们致力于不让失败再次发生。 我工作的安德拉(Andela)拥护这种文化。 这使我们成为更好的程序员和更好的人。
那么,我们如何解决这些错误?
对于世界级的程序员来说,人际交往能力甚至更为重要。 不仅是因为我从那些有更多经验的人那里听说过,而且这是我每天都能看到的。 以下是我的首选:
- 简洁 :就像史考特·卡尔顿(Scotter Carleton)( 撰写本文时,安德拉(Andela)技术副总裁)所说: “使事情变得简单比使事情变得聪明更难。 保持简单。 简单即美”。 关键是,人们应该能够在您的解决方案中使用和推理。
- 过度沟通:我们会问尽可能多的问题。 避免不必要的假设,并确保人们像您一样理解您的观点。 问题增加了工作量。 只是说出来,直到对每个人都有意义为止。
- 整体思维:让您的工作尽可能整体化,即考虑所有可能的角度以及它们与团队任务的关系。 需要满足哪些优势案例? 此代码提供什么业务价值? 通过整体思考,您通常也会获得卓越的成就 。
- 团队合作和倾听:您可能会与团队合作。 帮助您的团队了解您,您也了解其他所有人。 及时与每个成员进行同步,有时还会进行全组同步。 倾听人们的观点,在讲话之前先了解他们。 通常,要友好和礼貌。
- 同理心和调试技巧:学会同理心,并对代码和操作有第二个人的看法。 如果您认为这对除您之外的其他人也有意义,那么也许就足够了。
- 获取导师:这非常重要,因为您将利用导师的多年经验。 实际上,它为您提供了将上述几点付诸实践的机会,而且影响较小( 如果有的话 )。
从本质上讲,不仅您编写的代码会打扰您,而且您所做的事情尤其会影响他人。
在安德拉(Andela),我们拥有EPIC (卓越,热情,诚信和承诺)的文化。 您可以安装此chrome扩展程序,也可以阅读Rotimi Okungbaye的“我们是EPIC”来帮助您开始使用EPICness 。 #再见