維護型開發者(maintenance developer)的神話

lily01發表於2014-07-27

寫東西的時注意力不集中就去看了看Hacker News和Reddit。有一篇《面試開發人員為什麼要問架構設計?》吸引了我的注意力,讓我想起了“維護型開發者”這一術語。這些迷一樣的開發者堅持認為他們的工作跟其他開發人員有本質的區別。就像Ted Winslow 指出“他們不需要了解架構相關的知識,其他人也認為他們不會影響到程式碼不需要培訓。參加會議也是浪費時間,然後他們所做的就只有維護……”

看起來就像,那些開發者去上班,在公司待上8個小時然後沒有寫任何程式碼回家了。那麼這些開發人員到底都幹什麼了?他們換機油了嗎?他們填滿了仙塵容器?他們是在防衛大怪獸一點點把軟體工程吃掉?

不同?

每當我問一個維護型開發者,他們都會有不同的說法。他們在已有程式碼上新增功能,修復系統bug。他們可能使用一門過時的技術來完成任務,但是和其他任何一個開發人員做的是同樣的事情:他們都在已有程式碼上增加新功能和修復bug。

那為什麼會有“維護型開發者”這個稱呼?他們和其他人一樣都是開發者。確實,他們最後一次執行“檔案—新建—工程”操作可能已經是好幾年前的事了,但是這個小操作程式有那麼重要嗎?即使在新建專案——如果真的存在——一旦專案結構完成之後工作就開始了。當寫了第一行程式碼之後,其他的就都是”新增新功能和修復BUG“。

細節與質量!

”但是我們做的不止這些!“維護型開發者說道。特別專注細節並且不會破壞任何功能,是他們尤其感到自豪的。誠然,這是很重要的。但是這在任何一種專案中對每個開發者都很重要。難道會有一個客戶會說”在我的專案裡,你可以只做你喜歡的功能,並且盡你所能寫糟糕的程式碼“?

如果只有維護型開發者關心軟體質量和維護已有功能,將會發生什麼?這是否意味著其他開發者不需要關心這些?他們可以無視自己的行為帶來的後果,因而為所欲為?

如果是這樣,軟體工程是有多糟糕?難道還有人相信修復這一團糟的工程師不需要任何培訓?

是時候說再見了

8年多以前,”維護型開發者“這一術語就已經是焦點話題。Jeff Atwood曾經在《The Noble Art of Maintenance Programming》一篇中列舉了各種不同觀點,這些觀點至今仍然適用。

現在維護型開發者這一說法只是為了區分開發人員。這樣就有人制造,有人修復,有人在很酷的團隊,有人從來不需要培訓。我認為是時候廢除“維護型開發者“了,是時候稱他們為開發者了。畢竟,他們所做的就是開發。

相關文章