請(qǐng)不要讓程序員在黑暗中摸索
不知道各位有沒(méi)有玩過(guò)魔獸、X-COM、文明帝國(guó)、紅色警戒之類(lèi)的策略游戲。
這些游戲使用了所謂的“戰(zhàn)爭(zhēng)迷霧”。剛進(jìn)入游戲的時(shí)候,每一個(gè)玩家的地圖都是被黑暗籠罩的,想要前行的唯一途徑就是不斷的摸索。隨著我們不斷地移動(dòng),地圖越來(lái)越可見(jiàn)化。
這種戰(zhàn)略的劣勢(shì)是:玩家看不到周?chē)奈kU(xiǎn)、障礙以及機(jī)會(huì)。每一次的成功都需要一點(diǎn)點(diǎn)的運(yùn)氣。
有木有感覺(jué)這種情景有點(diǎn)熟悉?
“戰(zhàn)爭(zhēng)迷霧”完美地形容了開(kāi)發(fā)人員的工作處境。他們總是被要求去搞定某一段特定的代碼,但是卻不告知任務(wù)的相關(guān)情況,等于是在讓他們自己在黑暗中摸索。
對(duì)于開(kāi)發(fā)人員,看到“整個(gè)的游戲地圖”很有必要。對(duì)全局有一個(gè)清晰的把握有助于他們做出正確的決策。下面這些問(wèn)題是他們所需要知道的:
為什么要?jiǎng)?chuàng)建這個(gè)功能?它為客戶(hù)提供了哪些方便?
圍繞這個(gè)功能的代碼經(jīng)歷了怎么樣的一個(gè)發(fā)展過(guò)程?
此功能會(huì)影響應(yīng)用程序的其他哪些部分?
這是否會(huì)影響業(yè)務(wù)的其他部分?
我們?nèi)绾魏饬窟@個(gè)項(xiàng)目的成功(或失?。?/p>
當(dāng)開(kāi)發(fā)人員掌握整個(gè)框架之后,才能有針對(duì)性地開(kāi)始工作。他們的深思熟慮謀定而后動(dòng)非常有助于項(xiàng)目的成功。
同時(shí)也有巨大的激勵(lì)效應(yīng)。Joe Stump總結(jié)道:
開(kāi)發(fā)人員對(duì)于任務(wù)背后的問(wèn)題往往得自己摸索,這意味著對(duì)于給定的對(duì)象可能開(kāi)發(fā)人員并不能真正地思考到點(diǎn)子上。
但是如果夠負(fù)責(zé)的話(huà),開(kāi)發(fā)人員會(huì)沉浸于這個(gè)問(wèn)題的思考,因?yàn)槠涔ぷ骶唧w說(shuō)來(lái),更為依賴(lài)于在商業(yè)上的成功。
舉個(gè)例子,如果我是后端開(kāi)發(fā)人員,你告訴我去實(shí)現(xiàn)一些API端點(diǎn),我需要考慮一下為什么你需要這些端點(diǎn)。
這突顯了了解每個(gè)項(xiàng)目背后的目的和任務(wù)的重要性:
目的:我們?yōu)槭裁匆@么做?
任務(wù):目標(biāo)是什么?做到怎么樣的程度算完成?
在了解了目的和任務(wù)之后,開(kāi)發(fā)人員也就成為了規(guī)劃進(jìn)程中有價(jià)值的合作伙伴。他們可以預(yù)見(jiàn)一些潛在的“地雷”,以免你踩到從而付出高昂的代價(jià)。在一篇雜志文章中,Paul Boag描述了將開(kāi)發(fā)人員摒棄在一些相關(guān)會(huì)議之外的危險(xiǎn):
在Digg的鼎盛時(shí)期,Daniel Burka(Digg的首席設(shè)計(jì)師)和Joe Stump(其主要開(kāi)發(fā)人員)之間就一個(gè)Digg按鈕曾舉行過(guò)一次會(huì)議討論。Daniel想要更改其設(shè)計(jì),因?yàn)閺乃慕嵌瓤?,變化不大。但是?duì)于Joe 來(lái)說(shuō),他發(fā)現(xiàn)這個(gè)小設(shè)計(jì)將會(huì)對(duì)網(wǎng)站的性能產(chǎn)生很大的影響,迫使Digg因?yàn)檫@么一個(gè)按鈕而升級(jí)它的處理能力和服務(wù)器架構(gòu)。
你能做什么
首先我們應(yīng)該負(fù)責(zé)任地參與到產(chǎn)品、支持和工程規(guī)劃的會(huì)議討論中去。
會(huì)后,我們可以創(chuàng)建接下來(lái)所需要的有關(guān)規(guī)范文件。
管理人員不是將軍,開(kāi)發(fā)人員也不是戰(zhàn)士
有時(shí)候,管理人員搞的好像這個(gè)項(xiàng)目是什么緊要機(jī)密一樣,只給出一些“需要知道的基礎(chǔ)知識(shí)”。
但是這種保護(hù)措施卻不會(huì)導(dǎo)致更好的代碼、更受歡迎的項(xiàng)目,也不會(huì)增加銷(xiāo)售。不要讓開(kāi)發(fā)人員在黑暗中摸索,應(yīng)該邀請(qǐng)他們一起參與到整體的戰(zhàn)略討論中來(lái)。