写了15年代码,我终于总结出提升10倍效率的三件事

作为开发团队,我们必须不断地选择我们要做什么和什么时候做。

所有软件开发工作项目都属于以下三类:

我们必须做的事情

我们需要做的事情

我们想要做的事情

我们必须为客户完成新功能。我们需要修复软件中的 bug。我们想减少些技术债务或开发一些酷的新产品功能。这些都需要平衡取舍。

我们应该同时开展所有三个维度的工作项目。我们不能把所有的时间都花在技术债务上,但也许我们应该花一小部分时间在这上面。

开发人员还必须知道何时在其代码中构建复杂的体系结构。我宁愿保持代码尽可能简单,直到不添加架构就会死的时候我才会添加架构。

开发者也必须知道什么时候避免追逐时髦的东西。他们倾向于使用新的工具和技术,但是这些东西可能只会减慢一个项目,而不是更快地完成它。

10倍效率的开发人员擅长于优先级排序,并了解何时将时间投入到架构中,而不是使用一坨意大利面条般的代码来实现某种工作。请记住,你的用户并不关心你的软件是如何工作的,也不管该架构有多花哨。他们只想它能解决问题。10倍效率的开发人员理解这一点。

掌握是什么(What),为什么(Why),什么时候(When)成为10倍效率的开发人员

现在让我们来谈谈成为10倍效率的开发人员的重要技能:掌握是什么(What),为什么(Why),什么时候(When)。

从为什么(Why)开始

成为10倍效率的开发人员的第一步是对你要解决的软件和问题变得充满热情。你需要从里到外完全理解它。这首先是要对你工作的公司及其使命充满激情。

不要因为别人告诉你要写一个按钮(button),然后你就只写一个按钮。努力在更高层次上去理解为什么(Why)。如果你持续关注为什么,你对你的团队和公司会有更大的价值。

做一个好的开发者和优秀的问题解决者,而不是最好的程序员

我会把自己描述成一个黑客开发者。我是那种能很快把一些丑陋的代码拼凑起来并解决几乎任何问题的人。我的代码很少是美丽的,但它能解决问题。这才是最重要的。

你不必编写完美的代码与单元测试来成为一个10倍效率的开发人员。你需要知道什么时候要做和什么时候不做这些事情。

一个10倍效率的开发人员擅长解决特定的问题,并通过代码满足业务需求。你能做的最聪明的事情就是在你把项目交给其他人(他们更善于最后敲定一些架构和其他一些细节)之前就知道它能走多远。

什么时候(When)在你的内心,或者不在

知道什么时候要建立一个复杂的架构,而不是拼凑一些东西,需要经验和你蜘蛛侠般的感官。你要么有这种感觉,要么你根本不知道。

我曾与一些最聪明的开发者共事过,他们总是很糟糕的优先考虑模式和架构,而不是功能和排期。他们总是过度实现或者一遍遍重构,争取 “完美的代码”,而不是 “可交付的代码”。

10倍效率的开发人员必须利用他们的经验和本能来知道什么时候要专注于架构和完美,什么时候就是把事情搞定。

知道该做什么(What to Do)和该问什么(What to Ask)

许多软件开发归结于沟通技巧。可惜的是,在我们要工作的项目上许多注释和要求都不是很详细。一个10倍效率的开发人员知道如何阅读这些,应用他们知道的业务里的 “为什么”,并提出相关的问题。

最好的开发者知道在寻求帮助之前要在某件事情上花多少时间。他们也知道要问什么问题,以阐明需求来推进项目。

结论

我已经写了超过15年的代码。可以说我是一个10倍效率的开发人员,或者至少我能。我知道我擅长什么,当我做我擅长的事情时,我可以很快地完成大量的工作。

如果你想做一个新产品的原型,我就是你要找的人。如果你需要寻求Angular,React或其他一些 前端的帮助,我绝对不是你要找的家伙。在这些任务上我将是一个负10倍效率的开发人员。

10倍效率的开发人员不是一个神话。他们确实存在。他们很可能是开发经理、架构师、首席开发人员或公司创始人。如果他们不是的话,他们应该转变。我后来成为了公司的创始人,到现在为止都两次了。