如何成为更好的软件开发人员

英文原文:https://medium.com/devtrailsio/how-to-become-a-better-software-developer-dd16072c974e

如何成为更好的软件开发人员

对于现在的许多人来说,这听起来有点过分夸张。随着敏捷方法的兴起,越来越多的公司从这种僵化的方式转向由混合专业人士组成的小型团队。但即便如此,我们也看到人们并没有真正去了解别人的工作。您经常对设计师感到烦恼,因为他们希望您实现一个过于耗时的自定义复选框之亦然,受到批评,因为你忘了使用正确的字体。
只要关注他人的工作,就可以克服很多这些差异。与您的设计师坐下来解释他,实现自定义复选框需要一段时间,并且有一个库可以提供您可以重复使用的不同类似的复选框。作为回报,学习排版的基础知识并理解为什么选择正确的字体会产生影响。对经理,业务分析师,QA工程师,支持和营销专家持同样的态度。引用T. Huxley:
尝试学习关于某事的一切事物。
通过向每个人学习,您将能够预测他们的需求,缩短反馈循环并实现更频繁的交付。此外,它将赢得所有其他人的爱和尊重。
了解客户的需求
您需要了解有关客户的一件重要事情:他们不了解您正在做的大部分事情。敏捷,函数式编程或非关系型数据库对他们来说都是黑暗的。即使那些密切关注你的工作并且真正感兴趣的人仍然大部分都处于黑暗中。这有几个后果。

如何成为更好的软件开发人员

通常只学习单一技术的开发人员会将其应用于遇到的每个问题。不出所料,这种方法导致次优结果。相反,在解决新问题时,请暂停并思考您所使用的工具是否真的适合此类工作。如果您有疑问,请稍微调查一下,然后列出一些可能更好的替代方案。为了更容易,编译一个问题列表并逐个评估不同的选项。每个评估的问题可能不同,但它可以沿着以下方式进行:

它必须支持哪些平台或设备br> 什么是非功能性要求,例如性能或内存使用情况br> 购买许可证是一种选择,还是需要免费或开源的东西br> 该解决方案是否提供了开箱即用的所有功能,或者您需要自己编写一些东西吗br> 您是否有任何其他限制,例如公司政策,法律考虑或团队中缺乏专家br> 回答这些问题可以帮助您构建头脑中的选项,并将其缩小到候选人名单。
Experiment Safely
那么如果你认识的东西都不适合你的情况并且你想尝试一些新东西会发生什么呢没有经历某事的这一事实并不意味着它是不可能的。这只是意味着您需要考虑一些额外的事情:

你有足够的时间准备吗果项目的时间表没有压力,您可以在开始实施之前尽可能多地学习,并在整个过程中学习其余部分。或者至少采用“fake it till you make it“接近并说服客户,你知道你在做什么。
确定首先需要测试的内容。 Take the “fail fast“在完成实验之前,”接近并确定您需要评估的关键事项。怀疑系统的性能建一个最小的原型并运行负载测试。不确定特定库或与外部服务集成独实现,然后构建其余部分。
请记住,走这条路仍然对您和您的客户都有风险,他们需要了解风险和潜在的好处。毕竟,从长远来看,为期两周的调查可能会节省数月的工作,这听起来很不错。即使实验失败,你也只会失去两周。您对客户的信任度越高,他们就越可能同意这样的事情。
建立在巨人的肩膀上

如何成为更好的软件开发人员

不仅在技术方面,而且在方法论方面努力改进。就像正确设计和优化的软件一样,完善的工作流程将使您能够以更少的工作量和压力工作,同时产生更好的结果。建立一个有效和高效的工作流程并非易事,而且有很多关于这一主题的书籍和材料。但首先,请考虑以下几个方面进行改进:

团队和项目管理方法。由于我们大多数人都是团队合作,因此采用一种可以改善协作并为每个人建立共同工作节奏的流程非常重要。软件开发中的敏捷运动催生了许多广泛采用的方法,例如Scrum or Kanban。它们有助于组织整体工作结构,但不包括所有内容。还有其他方法可以帮助您进行估算,确定问题的优先级,改善沟通等。您需要确定您正在努力解决的领域,并寻找有助于解决困难的最佳实践。
Personal processes.像管弦乐队一样,有效的团队必须具有相同的节奏,但这并不意味着每个人都必须以相同的方式工作。每个人都有自己的偏好,应该以提高工作效率的方式工作。例如,许多人不喜欢在编码时被打扰几个小时,但我个人喜欢短时间工作一两小时,中断之间(不太严格的版本)pomodoro technique)。我也不喜欢在家工作,以避免与家庭有关的分心,更喜欢在办公室或咖啡馆工作。找出适合您的方法并坚持下去,同时确保您的习惯不会给其他团队成员带来麻烦。
工程实践。许多实践都存在于技术和方法之间的边界上,并侧重于改进实际的开发过程。例如,test-driven development and behavior-driven development帮助保持代码库的良好结构和测试。Code reviews有助于减少代码中的缺陷,并在团队中传播知识。Continuous integration and continuous delivery确保更简单,更安全的部署过程。将这些实践与其他组织方法结合使用可获得最佳结果。
请记住,没有适用于所有人的流程,您需要在自己的环境中进行试用。此外,请确保您完全理解该过程并正确实施。向已经完成整个过程并从他们的经验中受益的团队寻求建议。不要忽视有助于您采用流程的软件和材料工具。获得真正的看板和现代化的持续交付平台。采用新工艺需要付出努力,甚至可能导致短期的生产力损失。给它一些时间,然后评估事情是否有所改善。
Remove obstacles
在解决障碍时必须另外说一点。忽视可能看起来不重要但实际上可能对你的工作产生毒害的小滋扰是一个常见的错误。您的产品设计师是否坐在单独的房间或建筑物内意味着需要花费更多的努力才能过来并进行对话,有些事情将不会被讨论。写新测试难吗后很多东西都不会被测试。
这些东西中没有一个本身特别危险,但它们往往堆积起来并造成严重后果。令人讨厌的是,你经常不会注意到它们,直到它已经太晚了。特别是当有更严重的危险需要解决时。记住有关的寓言boiling frog and the notion of creeping normality.
保持警惕,并在他们找到你之前在他们的根源上对抗这些事情。
专注于基础知识

如何成为更好的软件开发人员

们在本文中已经讨论过很多内容,但在结束之前还有一些我想强调的要点。这些小技巧更多地关注你的个人特质而不是专业特征,但我仍然认为它们对你的工作生活有很大的影响。
Share the knowledge
通常人们认为囤积宝贵的知识会使它们成为不可或缺的。在你的团队中有这样的人会让你接触到“bus factor“如果这样的人要离开这个项目,你可能会陷入困境。如果您是这些人中的一员,请考虑除了让您不可或缺之外,您的专业知识也会使您无法驾驭和“不可取消”。您可能会错过组织中的其他职业机会,因为您担任此职位。相反,与同事分享知识,如果可能的话,将您的部分工作委托给他们,并使用此协作在他们的工作之上构建更多的东西。
不要怪自己或别人
Don’t be an asshole

如何成为更好的软件开发人员

Wrapping it up
关于我们工作的最好的事情是它没有限制。旅行和龙都有新的道路要杀。无论您是刚刚开始旅行还是经验丰富的专业人士,请记住这些事情。他们应该帮助您找到自己的方式,并在每个步骤中成为更好的开发人员。
英文原文:https://medium.com/devtrailsio/how-to-become-a-better-software-developer-dd16072c974e

更多文章欢迎访问 http://www.apexyun.com/
联系邮箱:public@space-explore.com
(未经同意,请勿转载)

来源:yinghe_one

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年1月10日
下一篇 2019年1月10日

相关推荐