本文內容僅代表個人觀點,歡迎大家拍磚!
今天有一個朋友在msn上問我這樣一個問題:
客戶要求可以自訂報表的格式,如果自己去寫一個報表設計師,太複雜了,請問你有沒有什麼好辦法?
於是我就問:什麼叫自訂報表格式?(我一開始還以為是指定報表的匯出格式。)朋友說:就是客戶要自己來設計報表,而且要求盡量簡單,能夠讓只會Office的人來用(昏哦。。。)
我馬上覺得比較納悶,怎麼會有這種需求,那豈不是要做一個Crystal Report出來?!怎麼會有這種客戶?那他幹嘛不去買一套國外的報表設計系統呢?怎麼可能有只會Office的人用的報表系統?微軟的Excel也需要大量的培訓才能讓使用者作出報表來。一個又一個問題從我腦海裡蹦了出來(還好沒有buffer overflow,呵呵)
我很明確的告訴他:這做不到的,否則要開發人員幹嗎?!之後我還建議他說服客戶,突出開發成本和後期維護成本之後,還有就是人員培訓成本!舉個很簡單的例子,微軟的Excel算夠簡單了吧,微軟花費了大量的人力來開發這套產品,但到目前為止,有多少人能夠在從來沒有使用過Excel的情況下馬上用Excel做出一個報表來,我相信大家也看到過外面有很多Office培訓,還不是教人們如何使用Word和Excel,這樣優秀簡單的軟體培訓成本都如此之高,更何況自己做的報表設計系統呢?退一步講,就算可以做,就算把這樣的系統中做出來了,又有多少普通使用者能夠用這樣的系統做報表,我相信這絕對不是大部分受培訓者!
所以這個需求完全是不合理的,可以被認定為客戶的無理要求,必須在一開始就槍斃掉,不要給客戶任何希望,否則最後苦的是程式員們。其實加班在很多情況下就是這樣引起的,專案經理或者架構師錯誤的評估了技術可行性以及人工,導致開發人員不得不遵循一個本來就沒有可能在規定時間內完成的計劃,到最後工期越來越緊,老闆則要求程式員加班,這些加班就是這樣出來的!當然我們不排除一些開發人員效率低的情況,但我相信這絕對是少數。如果team裡面有10個人,有2個人經常加班,那麼我們可以說可能這兩個人的效率有待提高;但如果10個人每個人每天都要加班,那麼就是管理或者計劃的問題了!雖然很多時候,作為開發人員也只能忍氣吞聲!
作為領導或者專案經理,應該時刻做換位思考,如果你是程式員你能完成多少?以你所知道的技術能不能做到?否則即使生意談成了,接下來只會有一連串的問題:程式員會罵你垃圾領導、根本不懂得管理;程式員只能無奈地加班,同時你的成本也上去了(當然,那些黑心老闆除外,我最討厭那種加班不給加班費的老闆!);程式員的埋怨必然影響代碼的品質以及進度,這隻會形成一個惡性的迴圈;一旦無法在規定時間內完成,客戶會抱怨,甚至可能要求公司賠償損失,對於公司來說,這樣的損失是很嚴重的!
雖然我們時常說:客戶就是上帝!但回過來想想,這些上帝把我們當成什麼呢?上帝做不出來的東西讓我們幫他們做,難道我們是上帝他爹?當然不是!其實應該說,客戶把我們當成上帝了,他們總認為任何的需求對於我們這些開發人員來說只是小菜一碟,我們在他們眼裡無所不能,只要他們提出來的需求我們肯定能做到,這就像我原來在某公司的支援人員中心做開發支援人員一樣,客戶經常會說“你不是微軟的嗎?怎麼會有不知道的東西?快點幫我解決了!”要不是因為最後有survey,我們真的很想對客戶說:我們又不是神!我們不是萬能的!你們做不出來不等於我們就一定能做出來或者馬上能做出來,總要給我們點時間吧。
很多老闆或專案經理會說,如果我對客戶說“不”,那不就沒有生意做了嗎?!我的業績怎麼辦?!其實不是的,說“不”有很多技巧,並不是讓你一上來就幫客戶說:你的需求太無理取鬧了,我們做不來!其實通常情況下,我們可以幫客戶說理,為什麼這個需求我們實現不了?我們的改動對貴公司的成本有多大的影響?以後的維護和培訓又會是怎樣的。我相信大部分的人聽到這樣有理有據的分析之後,會改變他的看法,畢竟作為客戶最關心的無非是軟體品質和成本。當然如果遇到少數無聊客戶,那我覺得也沒有太大必要談下去了,說起來我們也是仁至義盡了!