為什麼做軟體類專案,會出現人多,事少,工作量大的情況?

S_king_發表於2018-09-19


  人們常說人多力量大,似乎這才符合常理,但是往往在軟體專案開展的過程中依舊會出現人多、事少、工作量大的情況,這跟我們以往的認知大相徑庭。

  首先,要解釋下標題的意思。人多,指的是同一個專案團隊、同一個小組或者同一個部門的範圍內;事少, 指的是做出的效果,真正的產出少;工作量大,指的是,工作時間長,工作忙,實際的投入大。
  其實,人多事少工作量大,說白了就是效率低,而影響效率的,原因千萬種,有人員問題、溝通問題、流程問題、管理問題、技術問題.....
  一線工作人員,沒讓專業的人做專業的事,導致效率低;沒讓專業的人做專業的事情, 是工作開展的大忌,在工業上,早已證明了一切,在工廠生產中,工人流水化作業,一個人只專注一件事情,會越做越熟練,越做越快,越做效率越高。
  在軟體開發分工越來越明確的今天,讓後端人員搶前端人員的飯碗,去寫網頁、樣式,效率能高嗎?讓後端人員去搶DBA的飯碗,去做資料庫優化,效率能高嗎?
  不專業的人做不專業的事情,可能和公司的發展歷程、組織架構、人員規劃有關;也可能和任務安排有關。
  公司發展初期,養不起很多專業的人,可能更需要“全棧”工程師,啥都一把捉;公司發展的過渡期,有點錢了,也意識到了要讓專人做專業的事情,但是人員還沒招齊,那沒辦法,你也得兼職著做各種各樣的事情。如果公司有錢了,發展也成熟了,不是屬於以上兩種階段,在IT組織中,連前端、後端、測試、架構、DBA、網路、伺服器運維、技術支援、安全、產品,這些職能都沒區分好的話,就會對工作效率有影響。IT一線工作人員,每個坑位,都需要一顆專業的螺絲釘。
 
● 開發人員不注重程式碼質量,導致後期返工,導致效率低
  有時候,快即是慢,對於經驗不足或者習慣不好的開發人員,開發前期,被迫或者自己沒意識到,為了追求進度,邏輯沒考慮周全,沒做好自測,程式碼能跑起來就算完成任務了,表面上任務完成得很快。但是在專案後期,測試階段,問題大規模爆發,甚至要返工,由於測試後期,離自己寫程式碼的時候,可能隔了一段時間,有的東西自己都忘了,再回過頭去重新“熟悉”,效率能不低嗎?更為嚴重的後果是讓專案進度不可控。因此,就算進度再緊張,也頂住壓力,必須要做最基本的測試,再進入下一個任務點。
 
● 個體組織人員膨脹,出現溝通成本大的問題,導致效率低
  溝通成本是人員膨脹後,暴露出來的首要問題。
  舉個簡單的栗子,很多公司都有每天晨會習慣,如果一個組有5個人,開晨會彙報工作,平均一個人彙報2分鐘,就需要10分鐘,現在一個組增加到10個人,一人彙報兩分鐘,都要20分鐘才能彙報完。時間就這樣過去。
  再舉個栗子,30人天的工作,分給2個人做,可能需要15天,共耗費30人天,但是分給5個人做,6天能完成嗎?
  資訊在溝通、傳遞的過程中,可能會“失真",你想的,不一定能100說出來,你說出來了,別人也不一定能100理解,而且每個人的理解能力、知識體系都不一樣,理解起來容易產生偏差,產生偏差就容易做錯事情。
  因此,如果人員出現膨脹,要以專案為單位,進行合理的專案拆分、人員拆分。同一個“小專案”最好不要超過4個人負責。溝通的時候,推薦使用口頭 書面 複述,減少溝通過程中的資訊失真。
 
● 上、下屬之間相互不信任,做事有阻礙或者導致重複工作,導致效率低
  上下屬相互信任是一切工作的基礎。如果上級不信任下屬,不敢授權給下屬,凡是都要自己過一遍,而上級往往是一對多的關係,這個時候,工作瓶頸會出現在上級身上;如果上級不信任下屬,搞一堆監督機制,為了下屬不做錯事情,又讓別人同事過一遍,又要耗費額外的成本,勞民傷財,而下級得不到信任,做事受阻,久而久之就會畏手畏腳,很難獨當一面,或覺得自己有能力沒地方使,乾脆走人。上級應該充分信任下級,放心授權讓下級去做事情,但這些都一個前提就是要有一個較好的軟體管理過程,包括開發環境和測試團隊和在完成任務的過程中進行一些輔導和進行重要節點管控和監督。
  上級不信任下級,經常碰到,而下級不信任上級也很要命。程式設計師是很有個性的工種,不好管理,往往特別多想法。就好像車輪子陷入泥潭中,上級說車子往前推,有的人又說,往後拉,各自發力,估計車子永遠都擺脫不了泥潭,還談何效率?
  因此,如果有意見,前期可以提,但是解決方案一旦定下來,應該上下一心(即使有意見也埋在心底吧),朝著目標一起去努力。 

● 不同部門之間溝通存在隔閡與障礙
  軟體開發過程中,在IT範疇內,不同部門難免有交集,例如開發與運維、開發與測試,不同崗位承擔的責任、掌握的知識體系、考慮問題的角度往往不一樣,導致處理事情受阻。
  舉個栗子,有一次,開發人員為了驗證某個問題,需要運維人員協助重啟某個站點。對於開發人員來說,這個站點,用的人比較少,而重啟也是一瞬間的事情,風險為基本為0,但是由於運維人員掌握的知識體系不一樣,怕重啟了會造成很大影響,甚至害怕出了問題要自己承擔責任,明明可以瞬間操作解決問題的,又要等到中午或者半夜三更沒人的時候才敢重啟,效率就是這樣降低了。這個時候,需要運維人員,去學習一下相關知識,或者引入新流程,例如,重啟站點,需要某個專業人士口頭同意,即可立即執行。
  因此,不同部門之間的人,應該互相學習,才能更好地溝通;做事情,儘量做輕量級的流程化、標準化。 

● 上級工作安排不到位
  上級工作安排不到位,也會導致工作效率低。有時候會有這種怪現象,可能很多事情沒做,但是下面的人沒事可做;或者有的人很忙,有的人很閒。軟體開發分工,不像搬磚頭,一人搬一車就行了。軟體開發,工作量化本身就是一個很難的地方,如果專案經理沒有做專案計劃,沒有做工作點、任務點拆分工作就很難安排到位。特別是剛剛從程式設計師轉型做專案經理的人,過程性思維,不會對專案做整體的把握、整體規劃,想到哪裡就做到哪裡,想到什麼就分配什麼工作,最後一團糟,一會把下面的人累死,一會又讓下面的人閒死。
 
● 需求傳達不明確或者理解有偏差導致返工
  探知客戶內心潛在的需求很難,而需求確定後,資訊傳遞的媒介,往往是需求文件。語言文字這種東西,傳遞的過程中容易失真,丟失原有的意思。這種情況儘可能比較,需求傳遞跨越太多層次才到最終到達開發人員身上。如果是這種結構,每層資訊丟失2都不得了,做錯了,返工的效率和代價就十分巨大。
 

相關文章