其實, 當IT顧問並不在我的職涯規劃之中, 而是很自然變成這樣的身份, 所以與其說那是一個職業, 不如說是一種狀態, 也就是說本身的專業技能已經達到「可以當IT顧問」的程度, 而差別只是有沒有雇主需要罷了.
幾年前跟夥伴出來開業時, 由於新創業總是很辛苦, 收入有限的狀況下, 正好有人把我介紹給一些企業主, 而那些企業主也正巧需要一些IT上的專業建議, 同時又因為不可能以正職或兼職的方式進行, 於是就成為了IT顧問. 剛開始根本不知道顧問該做些什麼事情, 所以就如同剛接手一個新部門一般, 先去花時間了解雇主的現狀, 分析目前架構中的優缺點, 然後爭對雇主需要的方向例如需要加強效能, 或是要降低cost等等提出建議.
但是這種認知很快就會受到挑戰. 由於雇主的層級高低(例如是董事長的顧問或是總經理的顧問), 每一家公司的文化, 權責劃分都有不同, 以至於提出的建議常常製造出某些衝擊, 例如說會傷害到原規劃者, 或是造成顧問與員工之間的衝突與對立. 所以爾後的其他不論長短期顧問工作, 都盡量從在符合雇主需要的前提下, 花更多時間與力氣去跟「利害關係人」做溝通, 先做溝通協調, 再去分析現有架構之所以會是這樣的前因後果, 最後才去思考怎麼提出正確且符合大多數利益的建議.
後來也承接過一些「沒有目的」的IT顧問. 尤其大公司更容易需要這種隨時可諮詢意見的顧問, 主因是很多經營者在非IT專業下, 會需要所謂的「第二意見」, 或是需要有人提供一些跳脫出既定環境, 更客觀的意見, 同時也希望能藉由引入外部的顧問, 讓原本可能已經進入封閉狀態的企業帶來一些比較新的技術觀點或思維, 於是身為一個IT顧問, 吸收新知以及去做「實驗」與「測試」就格外重要, 否則光是依靠經驗判斷還是會有很大誤差的.
然而實際上, IT顧問最常備諮詢到的都是一些很片面的問題, 例如要選擇Windows環境還是Unix環境? 要用C++還是用Java? 要用PHP還是ASP? 要用MySQL還是Oracle等等. 這種問題看似很簡單, 但是其實背後牽涉到的問題會更大, 比如說現有工程開發人員慣用的語言, MIS人員會管理的系統, 以及後續開發的方向, 當然雇主的預算也是重要考量點. 甚至身為IT顧問還要比SA看的更遠, 先預想到各種往後的發展而提早選擇出可以走的更遠更穩固的決策與架構. 這些都不是只精通系統或是只精通某些語言就能下正確判斷的, 要同時具備深度與廣度, 並且撇開個人成見(例如Anti-Microsoft或是Anti-Linux), 才有能力做出「相對」正確的建議與決策.
所以, 要成為一個IT顧問甚至是稱職的IT顧問, 除了需要在IT界很長時間的經驗之外, 還需要在各個領域有足夠的技能與視野, 同時願意不停的以「非支薪」時間充實新知識以及閱讀大量的測試報告甚至自己建立Lab做實驗等等, 而這麼辛苦的工作內容跟嚴苛的條件, 雇主們又願意以怎麼樣的待遇來回應呢? 呵.
某些層面來看, IT顧問實在不是人幹的, 幹得好的也不是普通人.