写东西的时注意力不集中就去看了看Hacker News和Reddit。有一篇《面试开发人员为什么要问架构设计?》吸引了我的注意力,让我想起了“维护型开发者”这一术语。这些迷一样的开发者坚持认为他们的工作跟其他开发人员有本质的区别。就像Ted Winslow 指出“他们不需要了解架构相关的知识,其他人也认为他们不会影响到代码不需要培训。参加会议也是浪费时间,然后他们所做的就只有维护……”
看起来就像,那些开发者去上班,在公司待上8个小时然后没有写任何代码回家了。那么这些开发人员到底都干什么了?他们换机油了吗?他们填满了仙尘容器?他们是在防卫大怪兽一点点把软件工程吃掉?
不同?
每当我问一个维护型开发者,他们都会有不同的说法。他们在已有代码上新增功能,修复系统bug。他们可能使用一门过时的技术来完成任务,但是和其他任何一个开发人员做的是同样的事情:他们都在已有代码上增加新功能和修复bug。
那为什么会有“维护型开发者”这个称呼?他们和其他人一样都是开发者。确实,他们最后一次执行“文件—新建—工程”操作可能已经是好几年前的事了,但是这个小操作程序有那么重要吗?即使在新建项目——如果真的存在——一旦项目结构完成之后工作就开始了。当写了第一行代码之后,其他的就都是”添加新功能和修复BUG“。
细节与质量!
”但是我们做的不止这些!“维护型开发者说道。特别专注细节并且不会破坏任何功能,是他们尤其感到自豪的。诚然,这是很重要的。但是这在任何一种项目中对每个开发者都很重要。难道会有一个客户会说”在我的项目里,你可以只做你喜欢的功能,并且尽你所能写糟糕的代码“?
如果只有维护型开发者关心软件质量和维护已有功能,将会发生什么?这是否意味着其他开发者不需要关心这些?他们可以无视自己的行为带来的后果,因而为所欲为?
如果是这样,软件工程是有多糟糕?难道还有人相信修复这一团糟的工程师不需要任何培训?
是时候说再见了
8年多以前,”维护型开发者“这一术语就已经是焦点话题。Jeff Atwood曾经在《The Noble Art of Maintenance Programming》一篇中列举了各种不同观点,这些观点至今仍然适用。
现在维护型开发者这一说法只是为了区分开发人员。这样就有人制造,有人修复,有人在很酷的团队,有人从来不需要培训。我认为是时候废除“维护型开发者“了,是时候称他们为开发者了。毕竟,他们所做的就是开发。