調校文件

SOW/WBS 內有效能調校,但沒有工項要出文件。

甲:需要文件證明有做效能調校

乙整理了文件,記載包含冷熱資料切割、索引調校、code review/rewrite…等諸項

甲:為何這個資料整理的批次排程不能多個一起跑

乙整理了 MPP 和 SMP、SQL Server 平行作業原理…等分析文件,解釋多個批次,或一個批次內多個 step 是否可以平行,是依商業邏輯是否有依存關係決定,系統本身可以平行。而為何單一批次 Job 內單一 step 處理大量資料難以切割的原因

甲:既然做了效能調校,就寫份如何監控/分析的文件

乙:當初沒要出這份文件,這將近一年來的各種調整,並未留下截圖與文件,現在寫不出這份文件。

因此乙出了份有可能透過那些工具蒐集分析,但現今沒有這些佐證,無法推論回想找瓶頸與解法的文件。

尚不論寫文件耗的工時可能高過做事情的工時,是否有人看,看的人是否看得懂等面向。既然有做,就一定可以出份文件的想法過於簡單,事過境遷後,沒有記憶力,沒有佐證資料,就是寫不出文件。

找效能瓶頸是千頭萬緒,諸如:商業需求、架構設計、程式邏輯、軟/硬體規格皆需要探討,提升效能的方式希望滿足最小成本,最快時間、最少更動。面對大型複雜的系統,效能不足的原因太多。效能的瓶頸點,往往是觀察了很多面向,才推論出可能的關鍵瓶頸,進而找出關鍵證據,而後用一兩種工具留下關鍵證據。不是一開始就選對了一個工具,以該工具直接凸顯瓶頸。

而尋找解法是集思廣益的結果,是多次正規或臨時的會議,多次訊息往返的討論,避免效能好了,資料錯了功能壞了。若沒有文件需求,這些求解的過程往往也不會留下可用的紀錄。

聽調校成果的人往往只看到了最後那個工具圖示與解法,不知道前期花了多少推論,直覺就是一個工具一個答案。

或許,口頭要成果的人以為調校的世界是柯南世界,先射箭再畫靶。故意留下瓶頸,可以精準選對工具。

漫長時間後,系統早已經是多種調校後的面貌,要人回想之前的瓶頸,可能用那些工具推論瓶頸,進而提出佐證解法。是要寫歷史小說嗎?

我理解 IT 人期待以文件治理系統,以文件佐證驗收,以文件學習成長。但凡可以讓人有收穫的成品,就一定是靠其他人努力付出來產生,既然有人要付出,就不會無中生有,無價可得,需要時間蘊釀,依靠素材完成。

製作文件需要時間、成本,工項沒列文件,就是為了省這項支出,不會無償產出。

買菜送蔥

Line 的完整對話,沒任何增刪,只有稍許修正錯字與屏蔽當事人/團隊

客戶 Batch job performance tuning要求,是我們當初RFP所列的要求,只是當初基於信任關係沒有把要求的內容細化
客戶 現在做的東西不夠符合我們的要求
客戶 要求強化為什麼要我們寫PCR?
客戶 這樣的總經理真的有點過分耶
客戶 我認識這麼多S I的公司的總經理好像沒有因為$100,000要我寫PCR的
我 我們先請 PM 釐清再論
客戶 我很想回信跟你們OO,要跟我收$100,000寫PCR你們才肯做事的話,那我到時候效能不驗收可以吧
客戶 因為沒有說你們認為所做的效能驗收,就是我同意合約可以驗收的內容吧
客戶 合約上大家基於過往長期的合作什麼東西都沒講得這麼白
客戶 當初把你推薦給XX團隊
客戶 也是基於未來希望可以長期好好合作
我 妳覺得合約沒寫到我們都要做,跟合約沒寫到我們都不做的差別在哪
客戶 我不想跟你論述這個
客戶 但是我絕對會找到方法不驗收的
客戶 沒有廠商會這麼不知道感恩甚至讓人家覺得有點過河拆橋
客戶 做生意不需要這樣啊 做人更不應該這樣
客戶 這麼小小的服務也不願意幫忙
我 我們有想要好好合作,就是基於付出與收穫等價,否則我們拿什麼給服務者
我 我們已經做了多少小服務妳知道嗎
我 還是我們先列出小服務談談
客戶 老實說這個工具我們早就可以自己做了,只是對這樣子的服務心態無法接受
我 恭喜
客戶 我不知道你對誰做了多少小小的服務
客戶 我現在在談的是我範圍內的工作Task
我 所以我們先開個已經免費提供的會好了
我 免得我們集英內部先炸了
客戶 有你在炸不死的
客戶 相較起我們其他專案的S I 你太硬了啦
客戶 而且我的同仁又沒有要求過你們做什麼事
客戶 太誇張了啦
我 工作內容與金額可以談,我可以為了兩方順利,提供優惠價
我 但若要免費,這就要經過我們內部會議,不是我說了算
我 專案是需要士氣的,我若同意免費,我將失去領導力,團隊也失去士氣
客戶 不是免費
客戶 是強化
客戶 這些話,你可以跟其他XX的主管講
客戶 但是當初這個案子真的是我強力推薦你們進來的
客戶 你可以再跟我說你都賠錢
客戶 但是我要一個合情合理的需求滿足
客戶 當時我的部門也包含使用你們幾百個人天
我 我們以 WBS 或合約精神是系統滿足效能需求,不是維護工具與效能調校教育訓練
客戶 沒有要你做教育訓練
客戶 沒有期待
我 今天的會議不就是在教妳們如何解釋
我 而這張報表是方便你們維護
我 並不是這個專案的調校
我 寫了這張報表整個系統的效能毫無變化
我 與這專案有何關係

客戶 我如果連這種報表的解釋都要你們教的話,我的龐大系統SAP的效能就掛點了
客戶 今天看你們所謂的batch Job 設計跟Tuning的方式,真的讓我們瞠目結舌
客戶 單一thread 在跑,真的懷疑你們有沒有做過金融業的batch job ,現在這種單thread的跑法,肯定成為我們同業的笑柄

團隊在處理數億筆紀錄,於優化效能的會議時,甲方的維運團隊基於營運監控,要求我們開發一張結合 Performance Counter、SQL Server 當下 Statement 與 Job 時間區段內的相互比較,可下鑽細節。這明顯非專案範圍,與此案的效能好壞無關。但從早上 10:00 要求到晚上 10:00,希望免費。

同是 IT 人,卻希望 IT 的工作免費,總讓人無奈。削減成本是職業經理人的責任,但應以專業角度探討成本,做到如質、如實、如預算。拿掉預算,再談如質、如時,殺雞取卵。當一位 IT 人這樣對待其他 IT 人時,也就是告訴其他人這樣評價她自己的 IT 價值。

同意免費,且自己做完不造成同仁麻煩,就我個人原本是個選項,在 IT 界當義工已是日常。但這是兩方多人參與的大型會議,一旦這次公開免費,日後,必須的、有此功能比較好的、順帶試一下的 CR…都來談,ㄠ到賺到,兩方將陷於大量爭論免費與低價的 CR。如質、如時蕩然無存。

買菜送蔥深入人心,人力不值錢由來已久,甲方聲東擊西也是常態。但這位主管犯的大忌是要我免費。若她透過下次的專案會議表達難處,同仁可以替甲方說情,剖析利弊,為大利犧牲小利,同仁與我間可以討論在生存不易的環境中,因地制宜的做法選項。但她直接用 Line 私下喬,身為領導者隨便同意免費,這讓抱頭燒腦的專案團隊情何以堪。主事者軟弱,自己的工作沒價值,結案後沒獎金…總總負面情緒將讓燒了三年的團隊成員無以為繼。

連續煩心的事如潮水,這個吵鬧就隨 Blog 葬在此吧

隔閡

今天收到離職同事發的律師函,讓我覺得兩邊價值觀是錯開的時空,沒有交集。也就無法同理與溝通。

律師函文:

1….戰戰兢兢,努力工作,未曾受有客訴、懲處,因表現優異而領取績效獎金…

2.惟本人工作表現優異,並無任何不能勝任之情事…恣意解雇,未為任何解雇以外之懲處、訓練、調職等手段,與解雇最後手段性原則有違…違法終止與本人之雇傭關係當屬無效…本人仍有繼續提供勞務之意願

集英一直都是師徒制,不敢直接讓新人單獨面對任何一位客戶,客戶的抱怨自有資深人員應對。自始至終,leader 都不敢讓她獨立負責任何案子,一直是參與學習。對其表現不滿,也僅是給全公司最低的績效獎金當作懲處。

原本人事主管建議,既然解雇,是否就不必給績效了,她的態度遠不如到職數月的新進人員,而新進人員沒貢獻自然沒績效獎金,對她應該一視同仁。但 Leader 覺得團隊有賺錢,未解雇前仍視她為成員,這一年沒功勞但算些苦勞吧。因此給了半個月薪當作績效。而今,這善意在我眼前扭曲形變。

如同今天早上她進公司,實證了律師函內所主張的第二點,我無奈地表示:妳的帳號已經全部凍結,且不是要工作我們就生得出來。今天來是要在會議室坐一天嗎?

自認在團隊內表現不差應是人的天性,否則很容易憂鬱。但入職工作者也要客觀看待人際間的互動,有幾點她該捫心自問:

  • 集英沒有末位淘汰制,為何公司只請她離職?
  • 為何可以即刻解雇,不需要任何交接?
  • 訓練新人的成本不小,為何寧願再聘新人,也不要老人?在集英,試用者不到一半可成為正式的新人,但試用期的薪水照發,且是師徒二人的薪資。要讓一個人到客戶端,需要長期等待,一再驗證其技術與心態。而這次,我們誤判心態了。
  • 給被解雇者年終(固定一個月)和績效(半個月),且資遣費額度超過勞基法。當 Leader 希望保有善意,卻收到了這樣的律師函,有可能讓她回公司工作嗎?
  • 妳有意願提供勞務,我就有辦法給出工作?在資訊業內,能者要為無能者規劃工作,這規劃本身就是個難活,往往自己做比較快,因為要弄懂無能者的想法,為其解 bug,很痛。僅因管理者交辦帶人,能者才與無能者合作。當能者磨光了耐心,就變成管理者的難活了。
  • 如何懲處,或許我們還沒學會?在公司,對她只有訓練。或因沒興趣,成效不彰,也就認為沒受到訓練。調職發生過,但可能忘了。懲處是真的沒有,或許因為 Leader 們都對事不對人,連責備都少。或是 “Leader" 們,本就忙著衝在第一線解問題,並非 “Manager" 專責管人,所以沒空也不會懲處。在集英,犯錯就教,知錯就改,不改請走。

有位 Leader 對此律師函開玩笑:工作爽成這樣,所以無論如何都不想走?當集英大到有 Manager 時,或許,我會懷念今天。

過客

面臨一起勞資爭議,團隊副 Leader 請一位同仁離開,而那位同仁不認同。
起因為年底的 One on one 面談,就我認為的重點約略如下

Leader:妳的表現不夠積極…
同仁:我對資訊沒興趣,會做被派的工作,但僅此為止。現在念的夜大不是資訊相關科系,等畢業後,也不會留在集英

其餘的對話對我的決定來說,都不重要,也就不討論了。

請財務提供了該位同仁的貢獻度,到任一年的時間裡,有參與團隊工作的僅約一個月,而無法派工的原因是能力不足、態度不積極,難以合作。

有印象的這幾個月,她唯二參與直接承做的客戶案子中,一個是跟 Team Leader,另一個是跟我。而我留下的印象是:

  • 申請在家上班,但該客戶必須透過專屬配發才能工作的 NB 與自己的 NB 卻留在公司
  • 工作分派上,原是她為主,我給方向與作法,有困難時從旁協助。但時間過了一半,卻無聲無息。幾次詢問後,我接回自己做,並儘量切出她可做的,以保持她仍有參與
  • 整個案子完成後仍在狀況外,以至於團隊月會上,她說:這個案子結束了,她完全不了解,請我整個說明一次

就我願意主持集英,僅有一個原因,想跟團隊一起努力。而維護團隊,是我的重中之重。針對以下幾點傷了團隊,我支持副 Leader

  • 年底是以考績分紅利的結算日,成員紅利的多寡取決於團隊一年的績效,沒有貢獻的成員僅是團隊的成本,傷了整個團隊的績效。考量每位成員的來年,是為團隊爭取績效的 Leader 應有的決斷
  • 集英的每個團隊都一直持續在成長學習,這是資訊產業的必須,而我們接的工作大多有挑戰與難度。該同仁先前就有跟我講過相同對資訊沒興趣的話,就我的考量,我接受同仁在公司內的貢獻度可以養活自身,不拖累公司績效即可,所以我並不反對她的觀點,但這價值觀不可以擴散。當該成員不只一次對其他同仁強調自身對資訊沒興趣,不想學習,進而傷到團隊學習的氛圍,這有傷團隊的未來。
  • 集英可以等待,很多同仁都是從零開始,至今成為獨當一面的優秀顧問。我們可以等,先期的薪資費用、資深員工教導陪伴、犯錯的補救措施….等待一個人可用的龐大成本都是對人的投資,但若預告了離職,等於團隊 Leader 直接預估該人總體可能的收益,並得到很差的結果時,請人離開才是負責的 Leader
  • 團隊合作最重互相,尤其集英日常會並行數個多人合作之案子,隨時需要旁人主動提供援手。每當有人需要短時間完成突發的大量工作時,會詢問當下誰可以幫忙,總有手上有空的數位同仁依自己能力分擔部分工作,合作氛圍與日常工作態度都落在 Leader 眼裡。但該同仁僅抱持著派工才做,這傷了主動合作的態度與情感。
  • 團隊合作期待是人與人願意組隊合作,因為該同仁消極被動,與不主動求知解決問題的心態, Leader 面臨無人願意與其合作,這直接導致難以派工,形成該同仁對團隊毫無貢獻的惡性循環
  • 分工合作要靠主動訊息溝通,沒有兩個人的默契可以好到心有靈犀,精準對接每個人的產出才不會有 bug,這需要一再地告知與追蹤客戶與夥伴狀況,其基本是一顆要做好的心,而不是有做即可。程式碼沒有智慧,不會自己補救疏漏。合作的疏漏要靠多顆心一起彌補,有做即可的心態是在挖洞讓夥伴跳。

如同人月神話一書所描述的,IT 團隊要如外科團隊,每個手術由專精者主刀。主刀的醫師雖是核心,但另一個重點是,團隊中的其他成員也都是專業地各盡其職,否則這個手術依然會因感染、麻醉…等其他問題而失敗。

我始終認為公司是個驛站,同仁是過客,我珍惜每次的相遇,我接受異鄉人,獨自休息片刻。但異鄉人的房費不可以由其他人代墊,也不可以破壞入住的人組團的氛圍。

資訊之樂

很可惜的,人類對於相同刺激引發的快樂會疲乏,這讓追求快樂如同滾輪上的白鼠。

在衣食足後,物質帶來的快樂往往起於比較。但技術發達的今日讓金錢、物質容易集中,隨著貧富差距加大,中間層消失,相對剝削感更嚴重,形成普遍的不快樂。向下比較後的快樂只有一瞬,就再度失落於向上比較中。優劣差異如此明確,物質總量有限,追不到的奢華繚繞心頭。

另一方面,克服資訊問題後的快樂如同爬山、歌唱…是向內探索,自給自足的。更好的是,一般向內探求快樂的活動是獨樂樂,但解資訊難題是與人樂樂,因為解了他人日常的麻煩。

爬到山巔後的快樂是登山者的獨特經驗,而各種山難後仍讓人冒著危險攀登大山,可知哪份悸動之於愛山者。我只走過大眾路線,無從感受那悸動,走在大眾路線,我仍知過程中的難受,而後在小小之巔一覽眾山小,滿足於寡人之雄風。

資訊之樂或可堪比,其心靈活動的龐雜與困難不下於任何其他吸引人的領域,初入手的茫然,技術如海而自己孤獨以對,跌跌撞撞地學習,偶有心領神會,但隨之而來的是更多的不會。挫折多而少有成就感,如同剛入山道,將雄心與體力耗在無盡重複地走。

經年累月地,集結了各種知識與技巧,也磨練了溝通與學習的能力,一點一滴地能涉入不同領域,解不同的問題。在我以 PowerShell 設計平行與容錯架構,透過 REST API 存取 SAP HR、以 RFC 呼叫 SAP 財務模組、以 SFTP 交換資料…而後讓使用者得以在架構下運行各種商業邏輯,一路摸索著,滿足可管理、好部署、夠安全、服法規、合預算…等架構與專案需求,每一個需求或技術關卡如同山道上的某段曲徑通幽。交錯的痛苦與快樂,會深刻吸引著下次登山。

我輩解 MIS 困難的資訊之樂不是創新之樂,不是造福人類之雄圖,僅是解一小群人的燃眉之急,這是咫尺之樂。緊急救援時找到關鍵點的歡呼,滿足單一的使用者需求而鬆口氣,交付階段性成果的舒坦,乃至於結案的成就感與喜悅。這可在時刻發生,沒有總量物質的限制,也沒有攀比對象,存乎一心,更好的是,久了,可以讓你不再那麼計較物質。

在各種境遇遇到的合作者,大多對資訊工作不滿,讓我深覺可惜。因為相較於其他類型工作,資訊工作是最能讓個人發揮創意的,可自行學習研究,累積分析、監控警示,以最小成本獨力自動化、優化當下的工作。而這種自發、自控、自我實現是向內求快樂的基本。現今從事資訊工作者日增,願大家都能累積一點一滴的小成就,進而感受到征服某個艱困後的暢快,這暢快讓你想要追求下個挑戰,攀登另個山峰。

枯榮

搭了超過 25 年的機場線 bus 要停駛了,我猜是機場捷運分掉了客源…(後讀到新聞:因為這桃園台北線都是上下班時間單向有客,但只能以一班次的價格收費,所以開一班賠一班)

當年主修物理時,讀著 20 世紀初,近代物理理論的大爆炸,嚮往著光芒萬丈的年輕物理學大師的鋒芒,卻未讀到古典物理學者的茫然。

剛入社會的第一份正職是正從巔峰往下走的報業,豐富的福利逐年往下,10 年後不辦尾牙時,看著無奈的同仁,年輕的義憤讓我出錢請整個子公司的同仁年前聚餐。隨著友好的同事因各種難過的理由離開後,也告別了報社。而今回首,串流媒體與短影音,已快速輾過無線、有線、出租等產業。

在紙業任職顧問時,也是 10 年的衰退,董事長在尾牙說道:"這個產業終將消逝,但我保證我們企業最後一個倒閉"。看著同仁們不抱希望的工作,平淡度日,歲月靜好或許也是種恬適。

初當講師時,正值資訊補習教育興起,從地下室擴展到數個樓層,從數個核心講師與課程,逐漸豐富數倍的內容,講師之間互相幫助學習新技術,興奮地傳播著新知。至今面臨了數位影音的崛起與遍地的證照,公司從不准旗下講師到其他教育中心兼職,轉變成請其他教育中心的講師來上課,短短 20 多年。新技術如浪花,反而激不起什麼熱情了。

剛開始撰寫電腦書籍時,總想著要更豐富詳實地解說資料平台,從基本的管理逐步擴到語法、開發、安全、分析、ETL…但紙面書籍正面臨無紙化的潮流,出版社不能冒險,新書的主題只能退回基本。

以往大型活動的演講,多點巡迴宣教,海外研習,與開發團隊合作的 Focus group、代表使用者聲音的面對面 feedback…種種現場人際互動被視訊取代了,透過電子傳遞的,或許僅剩資訊,沒了氣氛,就少了熱度。而這些軟體產業鏈的玩家也正面臨上游軟體供應商從盒裝版零售改線上訂閱,消費者的採購從預算改費用,從而代理商、經銷商正因危機而尋求轉型。

自己有參與新興產業,如電商,10 多年的時間就已形成寡占,算是成熟產業了吧。也長期合作著步調慢的產業,如金融、政府、高科技與傳產製造。現今的日子,主要也靠這些產業營生。雖知道流行著影音教學與電子書,但自己婉拒了數次教育平台的邀請,也未碰 Google 的電子書發行,沒有動力了。

不知是有幸還是不幸,身處資訊技術爆炸的年代,職業動盪遠大於父祖輩,產業的榮枯竟可以濃縮於一代人,父死子繼,兄終弟及正從文化消失。對於失去動力的中高齡者,夕陽不見得美好,可能伴隨著風雨飄搖寒風凜冽。生於新技術的世代,或許,AI、雲技術…等諸多口號式技能與職缺不見得重要,要能隨著變遷而變遷。

滿是繁華記憶的我,駐足於剎那浮現的過往。春風吹生的,是他者故事。

ERP 之難

接續上一篇穿著衣服改衣服

報導 ERP 失敗的,多是大企業或組織導入的事故(或許小企業的複雜度低,在專家得以控制的範圍內,或許失敗也不會上新聞),但為何會發生慘案呢?相信各有其原因,不可簡單地歸咎幾點,否則不會前仆後繼地失敗。我列舉一些自己參與的心得,舉其困難之處,只是讓想要導入的更加謹慎(ERP 的經費都是巨大的,影響面也是廣泛的,相信參與者沒有不謹慎的,所以此處是更加…)。

● ERP(Enterprise Resource Planning)要將企業部門間的作業邏輯歸一,財務、人事、採購、庫存、銷售、製造、供應鏈…企業部門各行其事,原各有系統。既然是大企業,這些系統也就營運多年獨立運作,要整合既有資料與邏輯放入到新系統內,有其一定的難度。

● 企業通常有多個 site、BU、跨國,需求與環境差異極大,多種幣值、法規、曆法、語言…從基礎的格式與精度,到隨時變異的匯率、稅務、法規、準則。

● 系統規模大:資料量大,使用人數多,技術規格(安全、可用性、擴充性、DevOps…)要求高,需要專精的 IT 團隊

● 產業導入 ERP,需要有產業專家,提供符合公司需求又合產業規章的規畫。可以看到在高科技製造業少有導入 ERP 慘案的報導,但自己經歷的報業、傳產乃至於前述報導的政府組織、金融…等不同產業,導入 ERP 都有很大的困難。 應該與整個產業是否有導入經驗有關。

● 在產業稱之為核心系統的 IT 系統多不是 ERP,而是該組織所特有的系統。ERP 是各個組織都要的標準化資訊系統,但醫療特有的 HIS、NIS,銀行的 Core Banking、製造的 MES、ShopFlow、報業的編務印刷…等,是該企業組織能特有存在的根本。ERP 尚需整合組織的核心系統,乃至於 EIP、公文簽核…等周邊系統。否則 ERP 的來源資訊容易出錯,或難與既有使用習慣整合,都難盡全功。

● 導入 ERP 通常伴隨企業流程再造,例如:財務透明、人員效能、產銷彈性、標準化流程、減少重複的系統,讓資訊一條鞭,所有人可以取到他可以查得的所有資訊…除了流程與操作上的差異,也有政治文化上的紛爭

● 原始的模組大多需要客製化,以銜接周邊系統與公司組織特有的邏輯,但 ERP 大型架構本就有進入障礙,周邊系統的技術與專屬邏輯也不易了解,客製化的專案開發就面臨上一篇的困難,跨國的高階顧問也難以給什麼好解法,一是偏離原有的模組設計,二是不了解商業需求。而高度客製化也造成日後升級與維運的麻煩,三五年後,再度面臨災難。

● 因為體量大,所以估計很難準確,一點誤差被體量放大後,時間、金錢上的差異都會可怕地放大,所以報導上的時程與金額都以 3~5 倍地追加,而非 30~50%。而錯估並非既有的工具,如 PMP、DevOps、Agile…等既有技術或方法論可解,如同 Oracle at Europe’s largest council didn’t foresee bankruptcy 所舉例的,伯明罕是從 SAP 換 Oracle,SAP 原可整合銀行資訊的現金管理系統 Oracle 卻無法做到,新系統這部分要耗費 10 倍人力。我相信這兩家頂級的 ERP 公司專家如雲,而文中表示四大會計公司的三家都參與了,這代表了若此案的專業能力無法解決,我們也不用多嘴什麼,因為自己的專業肯定還不如人,而現今的軟體工具也幫不了什麼。

雖說導入 ERP 難,但企業希望有個整合一體的 IT 系統是必然的,不導入既有的平台,就要靠 MIS 自行打造,那是另一種夢靨。

穿著衣服改衣服

讀到以下新聞:伯明罕宣布實質破產:英國第二大城為何跌落赤字深淵,其中一個原因:伯明罕市議會裝設Oracle IT系統,原本期望以此簡化議會的財務和人力資源系統使用,最初預算是1,900萬英鎊,但安裝工程卻拖延3年,《BBC》報導2023年5月時還傳出消息,指出該系統的最終安裝成本可能高達1億英鎊。

想起台灣自身的著名案例:沒有杜英宗的南山人壽 面臨三大嚴峻挑戰,主因是花了 4.5 年 101億台幣導入的 SAP ERP 上線後造成資料錯亂。

我好奇的是這兩個慘案後的 IT 人員日常,因為南山人壽至今仍是台灣三大壽險之一,相信伯明罕市的財務與人事模組至今應該仍在運行,否則會有更大的新聞出來。IT 如何在混亂中仍能度日?人與系統混合而成的韌性讓我佩服,總在破洞處體現縫補的功力。

自己參與過幾次面臨傾頹之際的救亡圖存,而系統也都活下來了,總有 IT 人咬牙撐過後請辭或黯然離職,曾陪走過報業、造紙業、金融業或線上零售業…等,核心系統轉換時的艱鉅時光,由衷佩服為解問題打死不退,解了後越挫越勇,抑或是心力無以為繼的夥伴們。

值此想著

莫聽穿林打葉聲,何妨吟嘯且徐行。竹杖芒鞋輕勝馬,誰怕?一蓑煙雨任平生。
料峭春風吹酒醒,微冷,山頭斜照卻相迎。回首向來蕭瑟處,歸去,也無風雨也無晴。


幾日後…

Emma 問:這有解嗎?

我:很難,人對於複雜度的處理有限,尤其複雜度是動態交錯,時刻在變。

甲乙兩方的軟體專案,和開發軟體產品的專案有很大的不同。現今話語權非常大的軟體聲音都來自開發軟體產品的,微軟、Google、SAP、Oracle、Open Source 的專案…皆是。幾乎沒有承接甲方需求,拿前述公司產品完成專案的乙方公司的聲音。大眾用著 Office、Google Search、Windows、Android,仰望著軟體明星,傳頌著強大的英雄故事。

各種方法論,乃至於人月神話(參看前文的介紹)等經典都出自於做軟體產品的公司,自認原因如下:

1.需求定義:開發軟體者依其洞見,不管是全新應用,或集大成的抄襲者,都依自己的規劃與步調做,但甲乙兩方的專案開發者,往往有一直變動需求的甲方。特別是大專案,甲方的系統已經累積多年使用,有大規模的使用者變更了極細微處,沒有人知其全貌,往往一個關鍵細節就大規模重工。
當系統活得越久遠,越要敬畏。能活得久,顯其重要。其生命過程中,一定因為新需求而縫補、整合其他系統、納入與混用多種時期的 IT 流行,期間不同團隊以不同技術實作,沒有主架構也沒有依循規範,沒人說得清全貌,文件殘缺不全。明的介面,暗的服務,每天的交易,月季年的結算,有千絲萬縷的連結,只有在用到新系統對應功能的那一刻才發現無法滿足舊需求。

2.時間期程:開發軟體者依市場需求、經費,可以依最小可用進程規劃,但做專案的乙方往往面對甲方的心血來潮調時間期程。甲方的主導者是 user,面對的是產業競爭,不見得尊重專案開發,若時間期程與專案團隊不合,往往就是乙方拼命完成,留下一堆技術債。

3.技術規格:現今很流行排行技術規格,語言、Framework、OS…總喜歡有個評比排名,軟體開發者可擇其最適合者。但專案乙方要配合甲方的陳年技術,遵循獨特的規章準則,找尋各種整合周邊系統的 workaround,還有一大堆的髒資料,特別是歷史悠久的系統,因為三五年換接棒的開發商,導致每三五年有新的髒法。換句話說,擬定的規格是拼裝的,不一定有誰擅長,有可仿效的最佳做法,有適合的單一技術。

4.測試與驗證:產品的測試也是開發的一部分,參與測試者一樣有其目標與進程。專案的測試者,尤其是 UAT 的使用者,往往地位高於 IT,對於測試的配合度不高,而 UAT 與平測往往是加諸於正常工作外的加班,對於準備資料與驗資料大多是瑕疵不斷,但這誤導開發專案者,頻頻遭受 Bug 指謫後需辛苦證明資料本身的問題,然後看到使用者不在乎的樣子,招致雙重打擊

5.團隊意志與鬥志:產品開發者因其目標明確,開發過程中與做專案者一樣辛苦,但操之在己者多,較能調適,因進程較為清晰,也就比較有希望感。但做專案者面臨一再翻案的需求,這並非甲方故意,而是甲方往往也是做到才發現關鍵差異,就算再有誠意者願接受 Changing Requirement,受限經費與時間,仍會有兩方的劇烈摩擦。

甲方的專案團隊會有一堆非 IT 的部門組織,往往本位主義高。且甲方 IT 原是 Support 單位,在公司內只會花錢,地位與聲量都不高,每日的生活本就磨光了趣味。來自兩個公司文化的人組成團隊,各有利害又先天對立,要有高昂鬥志與持久意志,本就困難。

6.摩擦與組織變動:甲乙兩方的如質、如時、如預算先天存在著認知落差,且甲方往往還有花錢是大爺的心態。與產品開發者往往有技術明星如眾星拱月不同,專案甲方多有根本不認可乙方的專業,只拿學歷與年資品頭論足。產品開發者的公司組織變動可以預先調整產品開發進程,但甲方的組織變動卻會造成乙方的措手不及,一旦更換窗口與負責人,通常會大量否定先前的承諾。

現今有很多工具與方法論,不管是 DevOps、Scrum、PMP…對軟體專案開發都有其幫助,但麻煩在一群人對這些工具與方法論的共識。產品開發團隊較容易有共識,無法接受的走人即可。但甲乙雙方的專案,不可能沒有共識就叫甲方的 Key man 走。甲乙兩方都面臨歷史共業,在新舊技術與信念並存下,沒有純粹,只有四不像。

雖然專案不易做,但就自己的經驗,也很少全然失敗的,每次的專案都是讓整個企業 IT 建置更好一點,這次做不到的,再準備起個專案即是。

最後回到為何這些方法論和經典都只出自於做產品的,每個失敗的專案都有其失敗的原因,但可參考性不高,因為專案沒有一樣的,都有其特殊需求,人員技術落差與偏好、既有系統環境整合差異、不同的時間、質量、預算,不同的規範(操作與管理、安全、高可用性、容量、保存時限…)。寫成的是本血淚史,但讀者不能因此避免什麼。自己每天都這麼過著,只想看甜劇麻痺一會。


或許,除了技術與經驗,兩方人唯體諒與誠意可走過專案,就算結果黯然,但仍能存續等待下回。

我懷疑

新技術總讓人驚豔,最近又有 ChatGPT 熱了,遐想再度充斥。如同區塊鏈、雲…

看到大家努力問問題,讓 ChatGPT 精準回答。同仁高興地說,我們可以有第一線客服了。但就我的經驗,客戶就是不會問好問題,才會是我們的客戶,若客戶問對問題,通常就有答案,靠現在的 Google 一般有解,他根本不是客戶。

ChatGPT 變成是會問問題;能夠用答案的工程師的工具,那是多了個 Google。我們仍要努力學將客戶沒頭沒腦的對話,翻譯成 ChatGPT 精準的問題,仍是一堆往返後幫客戶套用 ChatGPT 的答案。再引發新一輪的問題,因為客戶一開始就問錯了。能省下多少工,我懷疑。

區塊鏈是好技術,SQL Server 2022 拿來做總帳資料表,但有趣的是 SQL Server 做得是集中式區塊鏈。先前炒作區塊鏈的諸多用途,至今聽到的亮點依然在耗能而難以購物的虛擬貨幣。在 SQL Server 2022 的總帳資料表;我終於看到有意義的用途,

還好,區塊鏈是有用的。這讓我更懷疑,好技術等不到好用途,當下真是好技術嗎?或許如同 1679 年萊布尼茨發明的 2 進位數學,在 300 年後對電腦而言,是個好技術。但在當時,或許很炫很好玩吧。

雲,是生態系的一部分。我相信有市場,很多地方非它不可。

雲,將壟斷 IT?朋友這麼說。集中的運算力與資訊流,像集中的發電廠與電流?但,哪個國家的發電廠都靠國外,台灣沒電會期待都靠福建的核電廠?

當一家大企業的核心上雲,先不管法規、技術相容性、實際運算需求(例如:不上網際網路的各類型核心機台)、移轉的困難、採購與預算的差異…。單就老闆的心態可能盡信雲嗎?若公司小,系統小,或是周邊系統,到哪都沒差。但現今大型企業的核心,都是幾十年累積的盤根錯節,一旦移到某個租借環境,就要看房東臉色過活。就算房東說若你要搬家,他很有誠意地幫你搬,但現行系統的龐雜是想搬就能搬嗎?核心系統改版通常都是數年規劃、測試。我自己參與過的 ERP 都是 4~8 年以上的建置導入。若房東漲房租,除了付個幾年,應無他法。除此之外,大老闆真的安心把核心資料放在別人家嗎?我懷疑。

技術問題通常有 workaround,彌補技術 Gap 是問題,但不是關鍵。結合技術與艱深的商業 Domain、甲/乙團隊的合作,錢與時間的運用…絞在一起的綜合問題一直是讓專案失敗的主因,但這問得出來嗎?

後記:

讀到這篇文章:ChatGPT 是網路上的一個模糊 JPEG 文件,覺得還可參考另一本書 為什麼Google不夠用?。我們用前述這些工具時,需混著學思。僅用前者而不思,只從影印機取影本,分不出造成失之千里的那毫釐,盲目循著影本踏入將鑄成大錯的藍圖。若不學習,則連向後者提問都不行。當前,我們的大腦可學思並行,前述工具才是工具。

找事

自己似乎總陷在關心、找事、攬責、瞎忙、嚷嚷、挨罵、自責循環裡。

忙,造成嗨、累,而後訴苦,多話,讓好事總帶著壞效應。

許多事,都是第一次,不管是工作上的專案,還是待人處事,想事緩則圓,但事多積壓會造成一處卡,處處卡。不快,其他做接續工作的人也失了時間。此外,若不一鼓作氣,很多事也就永遠不會做,或是做得散漫。因此在沒經驗,又沒深思下,鼓動自己衝上一線,受傷後自己找個陰暗處阿Q。

好久了,這自嗨的日子。

為何會講些沒意義的話?為何會誇大?摸不清自己說話的目的所求,只空泛地要修身養性,不可能見成效。但為何有這起心動念,卻是當局者迷看不清。

討拍、自嗨、自憐…?好像都不貼切。畢竟50多歲了,既認命,也不缺名利。

就是個躁人的壞習慣?那如何修煉成吉人?


老婆看了blog:不做,不就行了?

我:凡做事,所得讚美少,嫌棄多。但要從無到有,要習得經驗,唯做。凡開始做時,總有可笑處。不是做不做,而是不聒噪,

元旦前夕陪老婆準備看煙火,去買燈條等相關備品時,也被唸了:這不一定用得到

我願準備的都用不到。

自己多年來單打獨鬥做案子,或是看顧親友養成的風格。不求完美,但求完備,準備寧多勿缺。不管是隨身被包裡的零碎工具,手機、電腦的備品…到各種親友嫌的多餘,被笑想太多是日常。

大多時候,自己是摸黑走在前面的,走過後,大家看來一片平坦。但自己獨走時,戰戰兢兢,就怕隨機的意外,缺個什麼而無法應付。自己功虧一簣還好,但若連帶壞了他人的事,而自己負不了責,將是無盡的自責。因此大多是:準備過多的工具,到頭來一個也未派上用場,一身擁腫博人訕笑。但下一次,我還是會如此。失敗一瞬間的噩夢如影隨形,遠比嘲笑可怕。

一路走來,入坑無數,前路漫漫,仍滿是坑。人貴自知,自己將終身摸索而無明。多會以可笑的方式,笨拙地應付新挑戰,準備了一大堆,仍缺可處理問題的那個,是人都覺可笑,那就自己一起笑吧,從此無悲。

考量自己的做事風格,本就遭罵,也就別掛懷了,努力閉嘴才是。