程序員的生產效率源于需求,而不是工具!

jopen 9年前發布 | 5K 次閱讀 程序員

程序員的生產效率源于需求,而不是工具!

英文原文:PROGRAMMER PRODUCTIVITY STARTS WITH REQUIREMENTS, NOT TOOLS!

你確定你真的知道到底是什么促使一個程序員高效率的嗎?是因為使用了 VIM 和 Emacs 這些強大的編輯器,還是因為應用了最新的 Haskell Web 框架,抑或是你最喜歡的 NoSQL 數據庫?

很抱歉,如果你注重的是工具、框架,甚至是進程,那么我不得不說,你搞錯了!程序員生產效率的真正起源是:正確的需求。

為什么你作為一名程序員也必須關心需求——而不僅僅是業務人員!

顯然,產品負責人必須滿足客戶的需求,因為這樣才能讓客戶心甘情愿地付出報酬。對此,開發人員又是怎么看的呢?

曾經有位開發人員說出了大多數人的心聲:“直接構建。出現了問題,就放到開發過程中處理。這樣,至少我們開了一個頭,不是嗎?“

我們將這種做法稱之為:馬上啟動,永不結束——一開始構建的時候沒有什么準確的目標,至少有一半的內容是尚不清楚的。

你怎么知道你已經搞定了?

由于并不是 100% 了解,所以在開發過程中狀態百出——不知道接下來該做什么,自以為快完成了卻這里忘記了,那里有遺漏,功能不匹配,等等等等。

再問一句,請問你打算如何去測試模糊不清的需求呢?對此,你最喜歡的 BDD 工具可是束手無策的哦。

如果輸入是不明確的,測試也是不明確,那么輸出就更加不明確了。

你總是特別有積極性,可能嗎?

所有開發人員都非常討厭的一種情況是,業務人員頻繁地給出不確定的需求。這表明業務人員本身也不知道客戶真正想要什么功能。

而這也意味著,很多你構建的東西會被棄之于垃圾桶。一鼓作氣,再而衰,三而竭,程序員的積極性就是這樣給磨滅的。

那么什么樣的才算是正確的需求?

現在說說什么樣的才是正確的需求?是不是一句寫在索引卡上的話——“作為一個用戶我希望能夠使用亞洲建行信用卡”,好了,over,就 ok 了呢?

一個正確的需求包括(1)經過業務人員和程序員雙向的溝通和研究;(2)反復解構,解構,再解構;(3)論證,其中包括我們常說的”angling“和”skinning“。

拜托!我是一個程序員,需求不是我的工作!

的確,在一些大型的公司中,通常會有專門的業務分析人員,其唯一的工作職責就是在遞交給實施團隊之前先整理出詳細的需求說明。在理想的情況下,你只要照著說明編碼就行了,但是,這在現實中顯然是不可能的。

而且,企業越小,程序員的工作就混雜。可能你的老板就是這么認為的:你,作為一個”程序員“不僅要知道怎么實施,也應該清楚需求。

無論如何,你都應該專于此!

升級 AngularJS 2.0 路徑肯定比研究客戶的問題領域和需求要有趣的多——這是毋庸置疑的。

但是,你的技術技能,你的框架,還有你的算法都只是你每天日常工作的一部分。而所有開發工作的依據卻是:正確的需求。

最后,歡迎分享你的感受。

譯文鏈接:http://www.geekwww.com/programmer-product-not-tools.html

翻譯作者:極客網 – John

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!