程序員應(yīng)該將質(zhì)量要求視為需求。
有一個(gè)老笑話就是這樣的:一個(gè)美國(guó)公司向一個(gè)日本制造商訂購(gòu)了10萬(wàn)個(gè)集成電路。規(guī)格說(shuō)明書(shū)規(guī)定缺陷率只能是一萬(wàn)分之一。幾個(gè)星期后,訂單完成了,貨物交付了。除了一個(gè)大盒子的芯片,還有一個(gè)小盒子,里面裝著十個(gè)帶有標(biāo)簽的芯片,上面寫(xiě)著“這些是有問(wèn)題的”。
要是我們能像那樣控制質(zhì)量就好了。但是現(xiàn)實(shí)世界不允許我們生產(chǎn)太多真正完美的產(chǎn)品,尤其是沒(méi)有任何錯(cuò)誤的軟件。時(shí)間、技術(shù)和急躁都在與我們作對(duì)。
然而,不要過(guò)于灰心。正如Edward Yourdon在IEEE Software雜志上的一篇文章中所述,“足夠好的軟件是最好的軟件”,你可以訓(xùn)練自己編寫(xiě)足夠好的軟件 - 對(duì)用戶和未來(lái)的維護(hù)者來(lái)說(shuō)足夠好,只要它帶給你內(nèi)心的平靜。你會(huì)發(fā)現(xiàn)自己變得更加高效,用戶也會(huì)更加滿意。而且,讓你更加高興的可能是,更短的開(kāi)發(fā)周期實(shí)際上可以改善你的程序。
在進(jìn)一步討論之前,我們需要在我們即將討論的內(nèi)容上設(shè)定一些界限?!白銐蚝谩辈⒉灰馕吨颐蛸|(zhì)量低劣的代碼。所有系統(tǒng)必須滿足用戶的要求才能被認(rèn)為是完整的,并且必須達(dá)到基本的性能、隱私和安全標(biāo)準(zhǔn)。從用戶的角度來(lái)看,你正在做的是否足夠好?最好給用戶一個(gè)參與評(píng)估的機(jī)會(huì)。
在權(quán)衡中涉及用戶。
通常情況下,你是為他人開(kāi)發(fā)軟件,你總是記得要識(shí)別他們的需求。但你是否經(jīng)常問(wèn)他們,他們希望軟件有多好?實(shí)際上,很多時(shí)候沒(méi)有選擇。如果你的軟件用于心臟起搏器、航天器或廣泛使用的庫(kù),那么要求會(huì)更嚴(yán)格,你的選擇會(huì)受到限制。
然而,如果你正在開(kāi)發(fā)一個(gè)全新的產(chǎn)品,那么限制將會(huì)不同 - 市場(chǎng)已經(jīng)做出了承諾,最終用戶可能已經(jīng)根據(jù)交付計(jì)劃進(jìn)行了規(guī)劃,公司肯定會(huì)受到現(xiàn)金流的限制。不考慮用戶需求,任意地將功能堆疊到程序中,一遍又一遍地打磨代碼,這些都是不專(zhuān)業(yè)的行為。輕率當(dāng)然是不可取的,比如承諾一個(gè)無(wú)法實(shí)現(xiàn)的時(shí)間表,然后為了滿足截止日期而做出必要的妥協(xié) - 這也是不專(zhuān)業(yè)的。
對(duì)于你創(chuàng)造的系統(tǒng),其應(yīng)用領(lǐng)域和要達(dá)到的質(zhì)量水平必須作為系統(tǒng)需求的一部分進(jìn)行討論。
(程序員的軟技能:ke.qq.com/course/6034346)
將質(zhì)量要求視為需求。
人們常常面臨需要權(quán)衡的情況。令人驚訝的是,很多用戶寧愿今天使用一個(gè)不太完善的軟件,而不愿再等一年,等到一個(gè)經(jīng)過(guò)打磨、功能完整的版本(而實(shí)際上,一年后他們真正需要的可能完全不同)。許多預(yù)算受限的IT部門(mén)可能會(huì)同意這種觀點(diǎn)。與你心中明天的完美軟件相比,今天相當(dāng)不錯(cuò)的軟件通常更受歡迎。如果你讓用戶提前嘗試一下,他們的反饋經(jīng)常會(huì)引導(dǎo)你找到更好的最終解決方案。
知道何時(shí)停止。
在某種程度上,編程就像繪畫(huà)。你從一塊空白的畫(huà)布開(kāi)始,只有一些非?;镜牟牧?。你將科學(xué)、藝術(shù)和工藝融合在一起,決定如何處理這些材料。你勾畫(huà)出一個(gè)大致的形狀,填充底色,然后添加細(xì)節(jié)。你不斷以批判的眼光審查你完成的工作。你可能偶爾會(huì)放棄一個(gè)畫(huà)布,重新開(kāi)始。
但藝術(shù)家會(huì)告訴你,如果你不知道何時(shí)停下,你所有的努力都會(huì)白費(fèi)。如果你不斷地堆積細(xì)節(jié),繪畫(huà)就會(huì)在顏料中迷失。
不要讓過(guò)度的完善侵蝕一個(gè)運(yùn)行良好的程序。繼續(xù)前進(jìn),讓代碼在需要的地方停留一段時(shí)間。它可能不是完美的,沒(méi)關(guān)系 - 它不必永遠(yuǎn)完美。
(程序員的軟技能:ke.qq.com/course/6034346)