軟件隨想-項(xiàng)目上線后
從開發(fā)到上線差不多用了3個(gè)月,其實(shí)第一個(gè)月就把大部分功能實(shí)現(xiàn)了,之后兩個(gè)月都是需求的再次確認(rèn)和修改BUG,期間穿插的做別的一些事情。總的來說比較順利,一馬平川沒有任何卡住的地方,也沒有出現(xiàn)“大腦CPU使用率突然飆升的情況”,但瑕疵太多,在此做一下簡單的記錄。
簡單介紹一下我們的作戰(zhàn)方式。頁面由專門的人切,只制作出部分頁面,類似的自己搞定,之后的樣式問題自己搞定,一個(gè)產(chǎn)品經(jīng)理,兩個(gè)程序員,所有的需求都問產(chǎn)品經(jīng)理,基本上是除了切頁面,其他的都由我們程序自己搞定。做的是一個(gè)公司內(nèi)部的項(xiàng)目管理軟件(網(wǎng)站)的改版和升級(jí),對于我來說基本上是新開發(fā)一個(gè)系統(tǒng),因?yàn)橐郧暗膶?shí)現(xiàn)方式不太好,我換了一個(gè)實(shí)現(xiàn)方式,大約重寫了91.1%的代碼。
對需求的理解不夠全面。了解需求來自兩個(gè)方面一個(gè)是產(chǎn)品經(jīng)理另一個(gè)是現(xiàn)有代碼。產(chǎn)品經(jīng)理先跟我大致的介紹了一下,然后自己看現(xiàn)有的代碼,兩者結(jié)合得到自己的想法,于是開始開發(fā),期間有問題隨時(shí)問產(chǎn)品經(jīng)理。剛開始的時(shí)候加入太多自己的想法在里面,導(dǎo)致對需求的理解有些偏差,導(dǎo)致后期做了一些不必要的修改,修改就是對原有代碼的破壞,本來寫得還行的代碼,被一點(diǎn)點(diǎn)的修改,因?yàn)樾〉男薷奈覀兛偸遣辉谝猓拇a就變得不好理解,到后期對部分代碼產(chǎn)生陌生的感覺,我怎么會(huì)寫出這樣的代碼。盡管開發(fā)期間多次確認(rèn)過需求,但還是有的地方被忽略掉了。用于理解消化需求的時(shí)間太少,導(dǎo)致后期一連串的惡化反應(yīng)。代碼被改得不好理解,在改之前是別人對你的否定以及自我否定,因?yàn)槟憷斫庑枨笥姓`,而現(xiàn)在的實(shí)現(xiàn)方式又是你對需求理解的結(jié)果,毀掉自己的代碼是痛苦的,特別是自己認(rèn)為寫得好的代碼,還有就是很浪費(fèi)時(shí)間。總之一句話:在需求調(diào)研時(shí)引入的BUG危害是最大的。
出來混遲早是要還的。不要抱僥幸心理,以為這不會(huì)發(fā)生,用戶不可能這樣操作,但是要知道,有的測試人員是很“變態(tài)”的,用戶也是很懶的,測試人員的一些變態(tài)操作會(huì)深深植入你的腦海,于是你在測試過程中也會(huì)做出異常的因?yàn)椋谑悄愕某绦蚓捅罎⒘耍玫模憬K于意識(shí)到這是個(gè)問題,于是你又開始了你的代碼修改之旅,也許是個(gè)快樂的旅程,更可能多的是痛苦的枯燥的沒什么意義的自我批評(píng)。可能你還是無視測試人員的變態(tài),運(yùn)氣好的話這種問題一直都沒出現(xiàn),直到遇到一個(gè)相同變態(tài)的用戶,地獄之門突然向你打開,你開始承認(rèn)錯(cuò)了,你該承認(rèn)錯(cuò)誤了,在開發(fā)中我認(rèn)為可能出錯(cuò)的地方大部分都被測試人員發(fā)現(xiàn)了,沒有被發(fā)現(xiàn)的,我也默默的改了,因?yàn)槲蚁嘈懦鰜砘爝t早是要換的。
成也蕭何敗蕭何。程序員成就了自己的軟件,也是最了解自己作品雞肋在哪的人,如果我們像測試人員一樣摧殘我們的軟件,或許我們能發(fā)現(xiàn)測試人員發(fā)現(xiàn)不了的問題,同樣測試人員發(fā)現(xiàn)的BUG就越少,你的BUG列表就干凈多了,在這次開發(fā)過程就是自己測試太少了,前前后后至少改了大大小小150個(gè)BUG。也明白別人發(fā)現(xiàn)自己那么多錯(cuò)誤多沒意思,你發(fā)現(xiàn)的問題越多跟別人口水的時(shí)間久越少,效率一直都是我追求的,也是因?yàn)橐恢弊非箝_發(fā)效率導(dǎo)致這么多BUG。
要有一點(diǎn)喬布斯精神,追求完美。因?yàn)槲覀兪浅绦騿T,我們是有思想有主見的人。我們不能別人讓我們怎么做我們就怎么做,這樣很沒勁,被否定久了就必須反擊。需求可能不是很合理,咋們可以給個(gè)更合理更完美的實(shí)現(xiàn),頁面板塊的色調(diào)搭配不合理,我們就應(yīng)該大膽的質(zhì)疑,給出自己的方案,你不覺得否定別人的方案給出自己更好的方案很爽嗎,軟件是我們程序員的作品,它應(yīng)該有我們的思想,我們的設(shè)計(jì)理念,軟件對于我們來說不應(yīng)該僅僅是執(zhí)行、實(shí)現(xiàn)。我們必須打一場漂亮的反擊戰(zhàn),反擊設(shè)計(jì)、反擊測試、反擊產(chǎn)品經(jīng)理。只有這樣更好的提高自己,才可能做出更好的軟件。軟件使我們的孩子,必須有我們的DNA,我們應(yīng)該讓他出生后比人的孩子更帥更聰明,直到有一天你很淡定的告訴別人:這是我的優(yōu)良品種。
心有多遠(yuǎn),思想就有多遠(yuǎn),軟件隨想還在繼續(xù)......
作者:陳太漢
浙公網(wǎng)安備 33010602011771號(hào)