那些已經逝去的專業軟體研發精神

大衛張33發表於2013-09-27

enter image description here

我們最近的多次軟體釋出都出現了問題。或是因為某個程式碼低階錯誤發生回滾;或是因為SQL未仔細檢查導致釋出出現線上問題;或者是流程響應不及時導致客戶業務不可用;甚至還有Copy程式碼導致資損。

面對這種情況,團隊處理了問題,進行了回顧總結,還制訂了一些措施。你看,我們及時的處理了問題,糾正了錯誤。我們還戰勝了自己,敢於把問題暴露出來,直面問題。這些問題的發生都不是存心故意,屬於不小心的偶然遺漏,不是主觀原因;或者只是我們相信了別人的程式碼;或者是規範執行的力度不夠;或者是管理層不重視,因此有所疏忽。對此,我們也進行了深刻的反思,我們還制定了後續措施,例如“加強Review”“加強規範執行”等等。藉此,我們可以發現一些問題,推行一些新的措施,加強規範執行。這一切似乎都很正常,甚至讓人感到開心。

可為什麼我卻一點也開心不起來,羞愧、疲累、痛心,心中五味陳雜,輾轉難眠?

不應該這樣的!我們的釋出應該很順利,客戶應該感受到新功能帶來的好處併為之歡呼雀躍,為未來業務的發展充滿憧憬展望。而不是像現在這樣,或者是大為光火,重要的業務功能不能使用;或者是對我們將信將疑,不相信我們有能力履行承諾。我們沒有給客戶現在,更別奢望承諾將來。為此,我們可以找到很多理由原因,但我們無力解釋,因為我們確實沒有做好本該做好的釋出。我為我們的表現感到羞愧,愧對我們對客戶的承諾。
不應該這樣的!我們應該順利進入後續釋出的研發,而不是花時間為上一個釋出或者更早的釋出搽屁股。有了這些時間,我們本該去關注那些超炫的新技術,並考慮如何應用到釋出中,讓其他技術團隊羨慕嫉妒恨。有了這些時間,我們本該去考慮對客戶有更大幫助的新功能,閃瞎客戶的鈦合金雙眼。有了這些時間,我們本該去想想如何提升自己的技能,關注自己能力的成長,爭取做一個有尊嚴的無證軟體研發人員。而現在,我們的時間用在哪裡?釋出時通宵達旦,還要拜關公波多野結衣;釋出後不斷發現與解決問題,還要花不少時間溝通協調,推動資料訂正釋出回滾;更無聊的是,還要開什麼缺陷分析會議,寫什麼故障總結,上面還非要寫些我們明知道永遠不會真正執行的Action。我真心感到羞愧,我們的忙有很多都是自找的,我們浪費了自己的時間,成為了每天都在救火的救火隊員。
不應該這樣的!我們應該是擅長學習的、有尊嚴的軟體研發人員。我們應該是最善於解決問題的人,我們本該能夠找到方法,讓之前出現的問題不會再度出現。我們應該是有尊嚴的軟體研發人員,自己關注自己的飯碗,有能力把自己寫程式碼的技能提升,真正對團隊負責的釋出、自己寫的程式碼負責,保證不出低階問題,而不是像奴隸一樣需要被別人用鞭子來規範、像碼農一樣被圈養。我們團隊不少人都參加了對外面試,想想你們給別人的評語:“在公司這些年,只是完成了工作,沒有太多學習思考,被荒廢了,不滿足我們的招聘需要”。再想想自己,曾幾何時,我們也已經失去了勇氣,喪失了尊嚴。純粹被工作推動,被動完成,不再敢為自己寫的程式碼負責,開始為自己找到時間太緊等諸多理由;不再敢對不合理的要求抗爭,都是被PDPM逼的,即使沒被人逼,也要多做些東西,哪怕做錯都可以。曾幾何時,寫出更好的程式碼,做更好的釋出變成了其他人,尤其是主管、域專家、PM的職責,我們開始放棄進公司時的聰明才智,開始隨波逐流。只要管理者們不強調的東西,慢慢我們都不做了,因為這肯定不重要。我們開始忘記為自己負責,認為這都是別人逼我們做的,忘記了去寫出漂亮的程式碼、去很好的理解業務、去把控質量有效交付,忘記了我們需要不斷提升這些能力,忘記了因為這些能力我們才有被僱傭的價值。我覺得很疲累,不是因為釋出出了問題,而是因為作為軟體研發人員沒能從釋出問題中學習提升;我覺得很疲累,作為團隊的負責人,是我沒做好,沒能喚醒團隊同學的勇氣和尊嚴;我也感受到了大家的疲累,大家雖然都想努力做更好的軟體研發人員,卻已經累了,不想再抗爭,開始當一天和尚撞一天鐘。
不應該這樣的!我們應該共同為客戶、產品負責,研發團隊應該為釋出負責。出現問題是我們大家的問題,沒有人能置身事外。這個問題是不可能測試出來的,所以測試沒錯;都是某個同學不小心,規範執行不到位,所以都是他的錯;反正領導也不重視,出錯了也是不重視的原因;需求都沒弄清楚,開發同學就做了,都是他的錯;我是PM、主管,程式碼我不熟悉,程式碼Review不關我的事。還有自測不充分、明知道問題也不提醒,反正有諸多錯誤,我們孜孜不倦的尋找他人的錯誤,致力於找出誰的錯誤更大,找出自己不在場的證據,動不動就想訴諸於暴力,彷彿懲罰了他人的錯誤,加強規範進一步奴隸化就能解決問題。這些有什麼用?這就是我們對待同事、對待夥伴的態度?我們到底是不是一支團隊?我們是想找人為錯誤負責,還是真的想向客戶交付高質量的軟體?我為此很是痛心,不是因為我們釋出出了問題,而是因為不少同學置身事外,因為團隊內的同學相互指責,更是團隊外的同學麻木不仁。如果真的希望是夥伴,即使夥伴不完美,我們也應該相互提醒,共同去為客戶交付更好的軟體,小研發團隊為釋出負責,大研發團隊為客戶、產品負責。

作為軟體研發人員,我們還能喚回職業的勇氣與尊嚴嗎,能夠為自己而不是為別人工作嗎?需要我要為團隊做點什麼,才能讓團隊擺脫現在的狀態?作為團隊的一員,你又能為團隊做點什麼?

深夜之中,臥床之上,腦海裡又回想起那對我有重大影響的書《演員的自我修養》,耳邊傳來那振聾發聵的聲音“其實,我是一個演員!”。不禁在想,如果我們每人心中都有一本《程式設計師的自我修養》,那該多好!

相關文章