文章

IT亂談

早前聽回 Talkonly 談本地 IT ,討論到其中一個痛點是:香港普遍不太尊重 IT人才,但在這個資訊科技的年代,往往有很多 mission critical 的工作其實都落在 IT 人手上。近年也開始有這些新聞,如市民私人資料洩漏到網上、八達通增值失誤等等。然後節目談到專業人員如律師、醫生等會有工會組織、專業認可等等以保持質素。

其實單單說 IT 界是很模糊的,寫軟件的、做硬件的、做維修的也可以說自己是 IT 人,當中包含的工種十分多。因此在這裏先將範圍收窄到寫軟件的吧!要問的是,既然現時資訊科技影響越來越重要,我們要如何確保軟件的品質?老闆在請人時又如何以確保那個人是合符標準的?其一最簡單直接的就是認證。

先說個人方面,市面上有很多不同的認證,有網絡、伺服器、特定軟件操作、程式語言的認證等等。我覺得如果是一些管理工作的如 network admin、db admin,這些認證會相對的「穩定」,變化可能不太大。但對於實戰人員 programmer、SA 等等,變化會很大。突如其來一個 web2.0、ajax、ror… 技術越來越多樣化。市面上的認證又能追得多快?提供多少保證呢?

節目中也有提到市場上有很多 java programmer,這可能是因為本地的程式主要為企業應用相關,要考慮到如 transaction、messaging 等等的要求,而如 j2ee 就提供了方案。如果只是做簡單的網站,則未必會考慮到使用 java。然而,java 世界也是變化萬千,幾年前大家埋頭苦幹寫 ejb,到現在 spring 大行其道,受到 ror 影響而令人注意的 scripting language 如 groovy 或 jruby,提倡 tdd、agile 開發等等。技術更新得太快,無論是老闆或是開發的,也許都未及反應,也不知道那些認證真的能保證些甚麼。 (當然老闆在挑選人才時應該不單單看認證,還要看人的質素之餘此類,但眼光並非個個有。這可以扯到另一個節目談到的話題:全人教育之上。)

從企業層面去說,要確保軟件的品質,除了要請對了人,也要做對了事,也就是企業內各種工作、程序有沒有被管理好?標準化?其中有一些認證如 CMM 就是用來確保企業的工序品質。我不太清楚有幾多香港公司會拿 CMM 認證,但也曾在認證是 CMM Level 3大機構待過,感覺是的而且確會很有幫助,但必需要有全面的配套配合,如軟件、人手、分工等等。因為 CMM 事實上會做很多 documentation,而如何又快又有效地寫這些文件,則成為實作成功的關鍵之一。可是,這往往是大機構才會有人力物力去搞,中小企搞起上來如果不知其法,可能吃力不討好,反而增加了工作量。

這些證認或許能提供參考,但是否能提供很好的保證呢?能否有效防止軟件漏洞做成的衝擊?這是很難解答的問題,但也是必需回答的問題,因為我們已經走上不歸路。

P.S. 本篇沒有甚麼數據支持,因此有可能推論出錯。有錯的話還請大家指正。

回應

  1. CMM 等認證有助團隊學習怎樣達到可持續的軟件開發,可是這些努力必需要有人花時間資源去維持才行呢。現實是公司只求拿到認證,好讓容戶安心,之後那些過程就變得不重要了。

    在下也曾在某某 CMM level 5 公司待過,不過基本上工作還是靠個人的英勇去完成呢… 無論甚麼開發理念或認證,必需要整個團隊也明白那個開發方法,公司以及團隊每一員也肯付出才能達到呢。

  2. 其實如果用 Agile 方法 , BDD 咁去做 , 質素未必差過 CMM , CMM 講流程,但係講同做通常都差十萬九千里了,個 spec 寫得幾靚都好,如果根本同客要既野唔同,佢一樣會叫你臨時去改,要有bug 一樣有bug ,一係同個客講話個 spec 本身唔係咁,但係個客俾錢你,你都無得 say no 啦

    好多 web designer/programmer 仲係用緊 php ,唔會用 test driven , d logic 同個 view mix 埋一齊。如果用 J2EE 果 d 都叫好 d 架勒,至少有 d 好 d 既 test driven tool ,當然會唔會用就另一回事了

  3. 所以如果 cmm 用不得其法,就會成為一種負累~~ 也面對不了 fast changing 的 requirement changes

    不過也可能只有大公司才有「壓場」的力度去迫使合作伙伴與他們一起跟足 process。

  4. 所以如果 cmm 用不得其法,就會成為一種負累~~ 也面對不了 fast changing 的 requirement changes

    不過也可能只有大公司才有「壓場」的力度去迫使合作伙伴與他們一起跟足 process。————-其實在大公司也有大公司的不好,相對那些小公司來說大公司不夠靈活!

*