曾几何时10速是光驱的代名词,而10速程序员也是当今软件行业讨论的热门话题,我想在这方面分享一下观点。
老实说,我也不知道10x程序员的确切定义,我认为它指的是超高效的程序员。可能不会映射到生产率的10倍,而是达到接近或超过10倍的显著水平。
基于我在为初创公司以及为企业提供大型软件产品时所取得的一些成功,包括与一些***开发人员的合作工作经验,我来分享一些关于这个主题的见解。
10x程序员
在功能,安全性,性能和可扩展性方面,与现代的软件相比,20、30年前开发的软件要简单得多。另一方面,那时只有少数几个库或框架可用于实现功能。
因此,20 - 30年前编写的软件涉及编程方面的工作是相对少的,在该上下文中定义10x程序员相对容易。为
实现10x的同一组功能的核心编程工作量与常规程序员之间的差异,来看下图所示:
当今的10x工程师
在进入细节之前,让我们明确一点:软件开发是一个复杂的过程,编程只是为现代软件做出贡献的细分领域之一。
随着软件的用量增加,特别是互联网上,消费者和企业都已经大规模使用,软件变得非常复杂,从头开始构建产品可能显得比较疯狂。老实说,除非它是一个完全新的平台或操作系统,否则开发现代软件所需的核心编程与原有的工作相比并不那么强烈。
虽然编程知识和工作仍然非常重要,但构建优秀软件(无错误,安全并可销售)所需的工作量需要更细致的工程。
因此,在今天的背景下,10x的程序员可能不会在行业中带来太多价值,但10倍的工程师会在开发过程中产生非常深厚的影响。
很好地利用工具
软件开发是一个复杂的过程,涉及许多不同的工作。除了编码之外,还涉及从记录过程到格式化数据,从阅读日志数据,到发送报告,从自动测试,到手动测试,从复杂调试,到手动调查问题等等的努力。
通过使用适当的工具与平台(符合客户预算与其他约束),可以***化提高工作效率。
编辑器
开发软件涉及一个或多个编辑器,其中一些也称为IDE(集成开发环境)。现代IDE(比如Visual Studio或Eclipse)提供了一大坨的强大功能,可以使开发人员高效工作,但大多数开发人员都不知道这些功能怎么用起来。
流行的IDE有商业也有免费插件(如Resharper),这些都可以显著提高开发人员的工作效率。除了IDE之外,其它编辑器如NotePad ++,MarkdownPad等在开发环境中也非常有用。
公有云和在线服务
使用第三方实用程序和在线服务,如读取或搜索大型日志文件,HTTP调试程序,如Fiddler,构建与部署工具等。
有属于自己的工具
10x工程师可以开发自己的工具集来执行重复的操作,而外部可能无法找到相应的软件产品。
在很多情况下,软件公司的企业主似乎并不想对开发人员的工具投入太多,但使用正确的工具箱可以实现惊人的生产力。
对于软件开发人员来说,他们是最昂贵的人才,为他们花费正确的工具是值得的。
作为.NET开发团队负责人,我按照***的.NET编码实践开发ASP.NET Core和Visual Studio入门模板帮助团队提高了三倍的整体工作效率。
不重新发明轮子
软件行业在过去三十年已经非常成熟。开发人员试图通过编码解决的几乎所有问题都已经解决,并且可以作为API(作为二进制或Web服务)使用,其中一些是商业的,而另一些是开源、免费的。
此外,开源框架还提供了很大的灵活性,可以根据用户的需要了解底层API行为或自定义。
能(连续)写出精美的工程级代码
编写出色的软件需要一个良好的架构,不仅要遵循良好的设计模式和原则,还要擅用现代基础架构。精心设计的代码不仅可以更快地编写新功能,还要显著减少错误。
然而,优秀的软件工程是需要不断改进的。
在我的职业生涯中,我在不少软件项目中看到了大量低质量的代码,技术债务不断累加。
一个5年前开始的简单项目充满了劣质设计的丑陋代码,需要20多人来处理开发周期(他们花80%的时间实际上是在修复bug)。
我发现,这种可怕情况背后的主要原因之一是人们的“恐惧”。
组织,尤其是企业实体,主要担心变化。软件开发在工具,框架和工程方面是一个的快速变化的学科,需要不断挑战才能到达正确的地方。
变化会让人们害怕,但它并不像听起来那么危险,尤其是在软件行业(只要有合适的工具和人员)。但如果没有按预期完成,那么项目将会在某一天被完全放弃,这不会花费太多时间~
作者:Ashraf Alam Mar
编译:小谦
来源:https://dev.to/ashrafalam/10x-programmers-myth-or-reality--4ge5