October 22, 2012

Developer的價值在哪裡?

前陣子CIO來訪,約我出來見個面聊聊天,順便跟我說說在我休假期間公司發生了哪些事。CIO跟我提到了一件令他頭痛的事,想問問我的意見。他說團隊中有個dev不聽他的話,不受控制,想知道我的想法,畢竟我是team lead。

事情的原由大概是這樣。目前團隊正專注於某個專案M的開發,而且CEO相當重視這個專案($$$),希望團隊可以在九月結束時完成第一階段功能並且在十月初開始做UAT。這個專案當初是由我建議CIO由某個資深人員A來跟總公司進行需求分析、系統分析及開發,理由是A是最資深的,分析能力不錯,也有一些架構設計經驗。當時只有A一個人獨立作業,因為其它成員都在忙於另一個時程更緊的專案N,而專案M相對的不是那麼趕。後來專案N完成後,所有的資源也開始投入到專案M,而專案M也開始由A主導帶領三個開發人員一起做這案子。

由於有CEO的聖旨,CIO也跟A表示九月底要完成第一階段功能。A在電話中跟CIO表示不可能,他要十月中才能完成。詳細的電話內容我不清楚因為我人,不在現場,只知道CIO與A在電話中有些爭吵,而且最後A真的不甩CIO,在十月中才交付出功能,讓CIO被CEO罵得臭頭,而且CIO還不能把問題推給A,因為這表示CIO管理無方。CIO跟我說他認為這時程是可以做到的(CIO是有16年技術背景的工程師),而且A還有三個dev可以用,接著有點不悅的跟我說,the last person who did this to me was ....you know。想當然他火掉了那個不受控制的人。

聽完我有點驚訝,雖然大家都會私底下抱怨東抱怨西,但對於上面的人要我們交付的功能還是會準時完成,即便心中有千萬個不願意,畢竟那是老闆。我跟A不算熟,但據我對他的側面了解及觀察,他是個心思細膩且追求交付品質的工程師,這是很好的特質但卻也是會讓自己陷入危機的特質,尤其又是在一個IT只是個被視為支援團隊的公司。

CIO跟我說I'll try to avoid this, but if it doesn't work, I will let him go。不過CIO也提到讓他傷腦筋的不只這個,因為A其實是有貢獻的,而且也會在六日到公司加班,只是他也不清楚A六日來到底做了些什麼,再來就是他擔心火掉了A,會影響其它成員的情緒,降低了團隊的performance,但又擔心不對A做些動作,會讓其它成員有樣學樣。

聽完這個事件後,可以發現公司在軟體開發流程及專案管理上都有些問題存在,其實這些也都是既有問題。不過這件事讓我深思的是另一個問題,Developer的價值到底在哪裡?寫出漂亮有效率的code?了解很多domain knowledge?etc, etc, etc...可以被列舉出來的我想都是。但很現實的一點是,如果無法準時交付老闆所要的功能,你的價值可能瞬間化為零,畢竟老闆不知道你寫的code有多漂亮,系統跑起來有多快,有時甚至不管你的bug有多少,只知道準時完成讓他們快點賺到錢子就可以了,至於系統的品質及穩定性嘛,哈。當然這事件中CIO在意的是不只是準時交付,還有團隊合作的問題,畢竟developer是不是個team player,也是其價值所在。

準時交付軟體只是讓我們能保住工作,至少下個月五號時還有一點微薄的薪水進帳。我並不認為developer只要準時交付軟體就可以了,而是developer在心態上需要開始做改變,讓自己去適應整個環境,從中尋找出自己的價值,而不是期待這個世界給你一個你想要的環境,因為這機率跟中樂透頭獎有得拚。

No comments: