leo談程式設計師的職業素養 上
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
版權宣告:原創作品,允許轉載,轉載時請務必以超連結形式標明文章原始出版、作者資訊和本宣告。否則將追究法律責任。本文地址: http://blog.csdn.net/jobchanceleo/archive/2007/12/10/1928141.aspx
(原文刊登於《程式設計師》雜誌07年第11期第24頁)
說起職業素養,可能大家腦子裡馬上反應出的是西服領帶公文包的精幹白領形象,其實作為程式設計師來說,有更多內在的職業素養?一個具有職業素養的程式設計師應該是什麼樣的呢?本期調查分享兩個研發小組的故事,讓大家在統計資料的基礎上進一步瞭解——什麼是程式設計師需要的職業素養?
案例一:對客戶堅稱“一點也不復雜”的團隊A
DDD公司是個在發展壯大中的貿易公司,由於業務發展員工從剛開始的10人半年內增加到150多人,管理上出現了溝通效率低、對員工工作難以監控的現象。公司想近期上OA系統,以加強公司的工作效率、支援快速增長的業務。DDD公司找到了OA專業開發公司OOO公司,經過幾次與OOO的銷售溝通後,雙方確定了合作意向。而在OOO內部,有兩年開發經驗的開發工程師蘇成自告奮勇希望承擔該專案的開發管理工作,公司考慮到蘇成不錯的開發能力、希望提高自己的期望,安排他成為這個專案的專案經理帶領三個開發人員,建立了專案組A,開始了這個DDD的OA專案。
專案不大,公司沒有特別安排需求開發工程師。按規定作為專案經理應該在與客戶確認需求後進行開發。但初為專案經理的蘇成信心爆棚,認為自己開發能力強,當專案經理也一定成。
ü 對外,蘇成採用了就想當然地按照合同後附的簡單需求說明草率進行開發。
ü 對內,蘇成認為專案經理擁有絕對權力。“今天不努力工作,明天努力找工作。”成了他的口頭禪,每次用威脅的口氣說出時,蘇成都會有種滿足感。同時,任何關於開發的不同意見都聽不進去,在第一期快結束時,蘇成已與專案成員發生了N次爭吵,大家紛紛要求調離專案組,團隊面臨全面崩潰。
在二個月未與客戶溝通的狀態下,蘇成專案組向DDD提供了OA系統一期產品,按合同規定包括了:員工管理一項功能和其他四個子項(公司紀律規定、部門工作分類表、職務分配表、工作內容調查週報表)。
看完基本功能演示之後,蘇成隨即向客戶提出希望儘快部署和收款的要求。
DDD公司的HR經理Helen幾乎要尖叫起來!於是,發生了下面的對話。
(H:Helen,Z:蘇成)
H:“這個員工管理怎麼沒跟考勤部分聯絡想來呢?而且按你說的在這個系統裡增加一個新使用者需要五步!太複雜了吧。”
Z:“一點兒也不復雜,一點兒也不復雜。我現在給你再演示一下。”
一邊說Z一邊動起手來。系統是按他自己的理解開發的。運用起來自然十分嫻熟,演示增加人員的步驟5秒鐘都沒用,當然,H也和剛才的演示一樣,沒怎麼看清楚。
H:“還是太複雜了,能改成一步嗎?”
Z:“一點兒也不復雜,要不要再給你演示一次。”
H:“算了,先不談這個。我們希望在這部分里加個統計功能,之前也和你們銷售討論過這個問題,我們希望能統計出公司員工交週報的情況和部門比例。”
Z:“這個有困難,做不了。其實公司人也不多,建議這部分還是手工統計吧。”
H強壓怒火:“按這個思路都可以手工統計,根本不用您來開發,但公司是因為要發展才要上軟體的。”
……
實際情況是,因為開發時即沒要求留下文件,加之團隊其它幾個成員均已準備離開專案組,任何在此模組中的小小變化都會面臨所有程式碼重新開發的局面,更不要新增什麼功能了。蘇成非常清楚,客戶是不會再花一個專案的錢,只開發一個新功能的。所以,蘇成壓根兒都沒提因為需求變更,要加錢做這個功能的事兒。
最終結果可想而知,蘇成辛苦開發幾個月沒有得到相應回報,客戶不滿意、專案組成員不滿意、研發部總監更是對他的能力產生了懷疑,在幾經努力拿到DDD公司在第二期專案開發合同之後,更換了專案經理。
Leo點評:程式設計師如何以明確需求為基礎與客戶溝通?
如果有專門掌握需求編寫技術和經驗的需求工程師作為客戶和程式設計師之間的橋樑是最理想的狀態,但是,以國內目前的國情下,每個專案組都配有需求工程師的並不多。因此,無論是從現實出發,還是從程式設計師自身提高的角度出發,正確地幫客戶表達需求、正確地理解需求就成了程式設計師的基本素質之一。否則,到最後多是像本文中提到的蘇成,搞得人、財兩空。此次調查中66.67%的被訪者認為“能幫助客戶正確提出需求”是程式設計師自身的修煉之一,此種修煉肯定能在中國當今的環境下,提高程式設計師自身的能力和素養,可見在程式設計師內部已就此達成了相當的共識。認為“能使客戶需求更完善”是程式設計師自重重要修煉之一的佔到此次調查的55.13%。說明超過一半的程式設計師認識到,幫助客戶完善需求會節省雙方的時間和精力。
那麼如何才能提高自己的需求分析能力呢?以下分享幾個有關需求的幾個小技巧:
1、儘量提高自己的表達和溝通能力。
良好的表達和溝通能力能在客戶不能清楚表達需求時,融入到客戶組織內部,瞭解客戶的工作流程,與客戶共同更好地、更準確地定義和分析需求;此次調查中60.90%的被訪者認為溝通能力(能與客戶和同事良好相處溝通)是程式設計師應具備的基本能力,只有28。85%的參加調查者認為“表達能力(能準確表達自己的看法以及清楚準確地撰寫文件)”是程式設計師必備的基本能力之一。溝通固然很重要,但我們更應該進一步認識到準確表達自己的觀點和意見也是成功溝通的基礎之一。如果只“溝”而不“通”仍然是對方面資源的浪費。
2、應用多種方式瞭解需求。
常用的方法有:問題分析法和建模分析法(結構化分析法、面向物件分析法)以及幾種方法的結合。比如在問題分析法中應用面向物件的思想,與客戶的員工談話,訪談首先要面向工作流程,面向任務,面向角色,也就是用面向物件的思想幫助客戶理清思路。
3、不臆測需求
如果有專門的需求工程師,對需求這塊而針對程式設計師的要求有一點要特別強調,就是編碼過程中當需求不明確時,必須與專案經理或需求工程師及時溝通,程式設計師不能自作主張地猜測客戶的需求。
4、不過度承諾。
很多銷售為了拿到專案,向客戶大包大攬,甚至完全不顧公司的現有開發能力向客戶承諾很多功能。在定義需求階段,一定要向客戶說明“什麼是我們能做的,什麼是我們應該做的,什麼是我們不能做的”。客戶付了錢就應該得到相應的產品,很多時候過度承諾導致了新功能無法實現的同時,原有功能也受到影響。過度承諾而無法完成相應功能,開發人員會因此產生嚴重的挫折感,誰都不開發讓自己最終會“心中有愧”的產品,。此次調查中59.62%(近六成)的被訪者,正確地認識到對客戶提出的不合理需求拒絕得當也是程式設計師內在修煉的一個重要方面,這是非常難得的。
相關文章