跳到主要内容

保存的文章

故意对软件开发人员进行练习

Dave Nicolette |领导敏捷
Dave Nicolette 高级顾问
阅读: 故意对软件开发人员进行练习

我经常阅读并听到软件开发人员必须注意提供正确的解决方案。这是浪费时间,金钱和努力,建立错误的事情。客户对错误的事情不感兴趣。

这是真的。

但它经常被误解。

什么都不做的开发者

许多开发人员我遇到了解释“不要建立错误的事情”,表示他们应该真的做什么都不重要除非直到“某人”数字,否则就是正确的东西,然后告诉他们想建造它。

当然,他们并不是真的这么做没有什么.他们扮演乒乓球,他们吃零食,他们聊天。他们学会忙碌。但在许多(大多数?)案件中抓住机会练习他们的手艺。

这是一个问题。当他们需要构建正确的东西时,开发者却不知道该如何去做。他们必须弄清楚如何在输送压力的条件下建造正确的东西。这不是学习的最佳条件。

我会观察缺乏准备是质量差的软件的原因。它倾向于引导人们复制和粘贴来自stackoverflow的代码.它往往会导致适用于我的机器问题。它倾向于生产落入左下角的代码这个代码质量矩阵

不是我的工作

请注意,在关于从StackOverflow复制和粘贴的链接中,假书封面顶部的声明是:“为满足任意的管理期限而抄近路。”知道这意味着什么吗?这意味着开发人员不理解临时交付问题的真正原因。

当然,有经理们随意设定最后期限,但大部分日期是由市场考虑和商业战略驱动的。亚博vip9通道他们不是任意的。出现这些问题的一个更常见的原因是,开发人员没有准备好在时间到来时完成他们的工作。他们没有练习。

如果你认为从不练习你的技艺是可以的,压力大的时候你可以即兴发挥,那么你也可以买张票去听一个从未练习过音乐的乐队演奏任何(音乐)在他们登上音乐会舞台之前。你还认为住在一个由一群在第一天施工前从未碰过锤子的人所建造的房子里是可以的。你还认为让一个在你开膛破肚前从不开膛破肚的外科医生给你做手术是可以的。你还认为让你的孩子由第一次开车的公交车司机送去上学是可以的。

客户和雇主不想向我们付出代价如何做我们的工作。他们希望我们知道如何完成我们的工作。这意味着在“之间”期间,我们需要投资我们的一些时间和精力,以保持我们的技能剧烈。

刻意练习

我在LeadingAgile的一个同事,里克·奥斯汀,推荐这本书Peak:来自专业知识这门新科学的秘密.作者描述了人们在各种领域开发Stong专业知识的方式。主要发现是,谨慎的做法或刻意的实践加速和增强了技能的发展,并逐步设置,短期目标有助于我们指导我们的努力。

这些观点让我想起了2012年的一篇博客文章,我们为什么要做代码katas?.作为软件开发人员,实践我们的手艺意味着设定一个短期学习目标,然后进行实践用心地一遍又一遍地仔细观察细节。不是盲目的重复,而是用心的练习,有一个明确的目标和对细节的密切关注。

许多开发人员告诉我他们不想花所有的业余时间写作代码。如果这是他们的借口不能练习他们的工艺,我想这意味着我们面临两种选择:花费100%的业余时间写作代码,或花0%的时间写作代码。

但这里有个小秘密:你可以把超过0%的时间和不到100%的时间投资在自己的事业上。如果你用心和刻意地练习,你将不需要花费几乎和你“随机”练习一样多的时间。

怎么做

想一些你想要变得更好的事情。设定一个目标。一个小的。一小时就能完成的事。

如果您想更精通重构呢?设定一个这样的目标:“使用提取方法来纠正长方法代码的味道。”然后找一些代码,提供一个机会来实践,如镀金玫瑰重构kata。然后,再次又一次地练习特定的重构序列,直到它变成了第二种性质。如果一个小时不足,那么另一天再做一次。当您对技能充满信心时,找到另一个代码块并重复练习。

如果您想更加精通Java的函数式风格编程,该怎么办?设定这样的目标:“将循环转换为等效的函数式代码。”寻找或编写一些能够支持该目标的代码。这是一篇文章关于Java 8的习语。考虑副标题“功能组合的力量”下的示例。您可以一次又一次地手动转换该代码片段,而无需在第一次尝试后参考解决方案。重复一个小时。如果这还不能成为第二天性,那改天再做一次。选择另一个稍有不同的例子,并练习转换它。

你不必在一天内学到一切。第一天你不必拿到它。你不必花费100%的业余时间这样做。钥匙是设定小目标,然后练习精心练习。随着时间的推移,您将熟练地掌握任何技能。

下一个;Java:平台还是语言?

评论(3)

  1. Vin P
    回复

    伟大的思想食粮。我没有把这个技巧用在自我提升上。读完你的文章后,我打算这周去做。

    回复
  2. Gaurav Budhori.
    回复

    我今天在互联网上找到的最好的写作,附加链接很棒,我将开始从这些步骤开始我的编程职业。
    感谢分享! !

    回复
  3. Mihir Sevak
    回复

    我正在阅读这本书的高峰,老实说,我正在努力练习我的技能,使我成为软件方面的专家。谢谢你的这篇文章。如果你有任何进一步的想法,请分享。

    谢谢。

    回复

留下你的评论

您的电子邮件地址不会被公开。必需的地方已做标记