协作难在何处
直到現在中國人還做不了像Windows 95這樣大型的軟件?!敖o再多的錢也做不出來!軟件組織機構越大越難管理,大到一定時候就無法控制了,就會出現管不了,失控的局面。” “軟件是大家的,我為什么要多操那個心。”
為什么會有這么難?程序員多起來,自然就要有分工,有分工的時候,心態調整問題就會凸現出來:原先作坊式作業的時候,軟件是一兩個程序員寫的,軟件寫完了,雖然在產權上這個軟件或許不是自己的,但程序員心里會覺得這個軟件就是自己的,對這個軟件的感情就像對自己的兒子一樣,關于這個軟件一切成敗榮辱都被看成是自己的,在這種心態下,程序員會不分白天黑夜地超常投入。而軟件“工廠”模式的直接結果是一個軟件由幾十個、甚至上百個人寫,軟件寫成以后究竟是誰的?有了榮譽是誰的?都不是太明確。同樣,軟件有點毛病也不專是哪個人的,而是大家的,既然是大家的事情,那就讓大家來做,我為什么要多操那個心?但“大家”是一個概念,就像可以拿來一個蘋果,不可以拿來一個“水果”一樣,“大家”這個概念同樣落不到實處,而對軟件的責任心卻必需落到實處。
軟件越做越大,越做越復雜是不可抗拒的世界潮流,一家軟件公司要參與未來的競爭就必需有做大軟件的能力,而做大軟件就必需要有分工協作,決不能因為協作會降低個人的積極性,協作起來會遇到重重困難就否定協作,那樣做等于因噎廢食。因此,問題的關鍵是怎樣在分工協作的模式下,最大限度地調動大家的積極性。
要調動程序員的積極性問題,首先要在分工上做適當的考慮。“不能咱倆合作,所有的設計我都做完了,叫你去編碼,那樣你可能會覺得很枯燥,會感到沒有發揮你的創造能力?!?/p>
事物是歷史的,有些軟件最初就是一兩個人寫的,這一兩個人會覺得這個軟件是他的,會有很多感情,而后來加入開發的程序員則會面臨心態融合的問題,后加入的程序員會覺得“我寫這個模塊,是分配給我的任務,不用想別的,那就做吧?!迸龅竭@個問題,盡量將年青人推到項目經理、測試經理和支持經理崗位上,讓他們感覺到是他們在控制著軟件的發展,感覺到是他們自己在做主。
溝通的時候,鼓勵大家把想法都說出來。不把程序員看成只是完成代碼的機器,而是千方百計試圖將新加入的程序員變成集體的一分子,讓他們感覺到共同完成的軟件之中有著自己的一份功勞。
培養程序員對軟件的感情,讓程序員開展示會的時候去盯展臺,當程序員看到自己寫的軟件有人買,聽到用戶在議論自己寫的程序的時候,會自然而然地和產品發生關系。
無論在哪里錢都是非常重要的,但是做軟件僅僅有錢是遠遠不夠的,還需要培養程序員對企業、對產品的感情,后進來的人是在為已有的軟件加功能,是在維護軟件,他并沒有權改造軟件,只有權改BUG,這樣的工作很繁復,沒有什么新意,具有犧牲的意義,為此,堅持給這些程序員高待遇,評項目獎的時候,不分資歷想辦法多給他們一些榮譽。
分工協作遇到的另外一個大難題是溝通問題,解決這個問題最直接的方法是開會。組內的人要經常交流,組和組之間、課題和課題之間要考慮接口問題、配合問題。開會是容易的,通過會議解決問題卻是困難的。討論交流難免會有爭論,這個時候一定要有人站出來仲裁,否則,討論下去永遠不會有結論。
軟件是工程,不是理論問題,所以,能夠也必需通過仲裁的方式解決分歧,而不是通過進一步的研究分出到底誰對誰錯,軟件工程花不起研究的時間。軟件不是算1+1,1+1你要說等于3,我非和你爭不可,工程問題討論起來,可能會討論明白誰更高明,但很多時候是這樣也行,那樣也行,并沒本質的差別,這個時候再固執地爭論下去就沒意思了。
溝通困難也有程序員性格和習慣方面的原因,做技術的程序員很容易把自己已經做成的事情看得很簡單,覺得沒什么好講,“很顯然的事,你怎么就不明白呢?這還用解釋嗎?”是程序員面對請教最常態的反應,對這樣的程序員,要教育他們愿意把自己的想法主動告訴別人,愿意去傾聽別人是怎么想的。
轉載于:https://www.cnblogs.com/lovewindy/archive/2005/06/03/167186.html
總結
- 上一篇: 根据当前日期返回星期数
- 下一篇: 模拟栈数据结构改进版(使用异常)