没有TDD的程序员到2022年将失业(预测)

传统上,新年是预测的时候,我阅读的一些博客都在进行预测(例如Ian Sommerville的“ Software Engineeringng展望20年”。 )。 这不是我通常从事的传统,但是我想成为一个传统。 (下一次我将回到软件经济学 ,我需要得出一些结论。)

实际上,这不是一个新的预测,这是我几年来一直在口头上做出的预测,但我从未将其记录在案,因此请继续:


如果您不定期练习TDD,那么到2022年将不可能获得专业的编程工作。

几年前,我说:“十年后”,我就开始做出这个预测了,有时当我重复这个预测时,我坚持了十年,而有时我补偿了,说了九年或8年。 我可能会有点不高兴–如果我认为有任何事情会尽快发生而不是迟些,那么2022年可能会比较保守。

TDD是指测试驱动开发,也称为测试优先(或设计驱动)开发。 这可能是Classic / Chicago-TDD,London-School-TDDDan North风格的行为驱动开发 。 从广义上讲,尽管存在显着差异,但是涉及相同的技能和类似的工具,即,如果您没有能力进行TDD,则无法进行BDD,但是BDD的意义要大于TDD。

我关注的特征是:

  • 开发人员编写的自动化单元测试,例如,如果您编写Java代码,则可以用Java…或Ruby或其他某种计算机语言编写单元测试。
  • 定期至少每天自动执行一次单元测试

这可能意味着重构,尽管正如我听到的Jason Gorman所指出的那样:对重构培训的兴趣远不及对TDD培训的兴趣。

我想认为,TDD(尤其是伦敦学校)是标准的,它也意味着更多的延迟设计决策,但是我不确定这是否会继续下去。 部分原因是因为有一群“设计师”(高级开发人员,年长的开发人员,通常带有“建筑师”的头衔),他们乐于交谈,并且可能会“设计”,但不会would贬自己编写代码。 在修复我们的职业模型之前,大型前期设计将一直存在。 (另一篇博客文章我必须写一天……)

我没有对TDD的质量做出任何预测。 像一般的编程一样,我期望最好的将是真正优秀的,而大部分将是中等的。

我声称的是:

  • 在面试中质疑TDD是不可接受的。 人们会不知道TDD是什么,不能在锻炼中使用TDD或声称“我不做TDD因为浪费时间”或“ TDD未经证实”而被接受,这将被接受。工作。 (我已经知道这种情况下的公司,我希望到2022年将成为普遍的公司。)
  • 程序员将再次被期望为其工作编写单元测试。 (在家庭计算机革命之前,我相信大多数专业程序员实际上都是这样做的。我们这一代人没有。)
  • 单元测试将实现绝大多数自动化。 手动测试是一种罪过。 手动单元测试加倍。

而且我相信,总体而言,由于这些更改,软件会更好(错误更少,可维护性更高),结果程序员的生产力通常也会更高(即使他们编写更少的代码,也只会修复更少的错误)。 )

为什么对做出这个预测充满信心?

正是由于最后一点:采用任何形式的TDD都减少了代码错误的数量,增强了可维护性,并提高了生产率。 这些都是程序员和企业都想要的好处。

我建议的时间范围纯粹是直觉,这可能发生在2022年之前,也可能发生在2022年之后。 由于我的工作,我是最难问的人之一,我绝大多数看到那些不这样做但会从中受益的公司-如果他们听他们为我付钱的建议,他们就会开始这样做。

但是,我相信我们正在Swift接近“临界点”。 一旦TDD作为标准达到一定的临界质量,它将成为规范,即使那些不积极选择这样做的公司也会发现他们的程序员开始以简单的专业精神来做。

一个更有趣的问题是: 什么意思? 这意味着什么?

现在,我认为该行业正在经历一项重大的技能大修,因为那里所有不知道如何做TDD的程序员都将学习如何做。 由于TDD是一项可测试的技能,因此很容易分辨出谁做了/可以做到,以及谁刚刚决定对自己的简历/简历进行“性化”。 (这与敏捷通常不同,在敏捷中很难说出谁真正理解它以及谁刚刚读了一本书或两本书。)

在接下来的几年中,我认为提供TDD培训和辅导的人员将会有很多工作–我会定期询问有关C ++ TDD的信息,而对其他语言的询问会少一些,但TDD和TDD培训在那儿会更广泛。 这项工作不会枯竭,但是会从“ TDD入门”变为“ Improving TDD”和“ Advanced TDD”风格的课程。

自称教授编程的大学和其他学院将受到更大的冲击。 我遇到的几乎所有应届毕业生都根本没有接受过TDD的培训。 如果甚至提到了TDD,那么他们将领先于竞争对手。 我确实遇到了一些被教过以这种方式编程的人,但他们之间相距甚远。

简单地说:如果大学不将TDD作为课程的一部分进行授课,那么他们的毕业生将无法就业,这将使大学对优秀学生的吸引力降低。

不幸的是,我还预测,直到大学看到他们的学生找不到工作,大学才会坐视不理。

如果您是潜在的学生,希望在大学学习计算机科学/软件工程,我建议您忽略任何不教授TDD编程的大学。 如果您是一所大学,希望从IT课程中培养可聘用的程序员,我建议您尽快采用TDD –这将为您在现在招募学生方面带来优势,并为您的学生提供寻找工作的优势。

(如果您是一所声称要运行“敏捷”模块的大学,请确保教TDD –是的,我特别想到的是一种令人尴尬的Ric。)

而且,如果您仍然是一所大学,仍然认为计算机科学专业的学生实际上不需要编程,因为他们是科学家,后勤学家,数学家,根本不应该编程,那么请确保在您的计算机上用大红色字母写出来招股说明书。

在业务中,简单地做TDD,尤其是做得好,随着时间的流逝将解决软件公司和公司IT所解决的许多日常问题, 供应方面将得到改善 。 但是,除非公司解决供应方面的问题,否则,如果有任何事情会变得更糟,他们实际上将不会看到很多好处(请阅读我的软件需求曲线分析或等待有关软件经济学的下一篇文章。)

最后,调试器的重要性将降低,良好地使用TDD消除了对调试器的大部分需求(这就是时间的来源),这意味着IDE的重要性将降低,这意味着开发人员工具市场将发生变化。

(后记:对于第一次上传的格式问题,我们深表歉意。)


翻译自: https://www.javacodegeeks.com/2014/01/programmers-without-tdd-will-be-unemployable-by-2022-a-prediction.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值