作為技術(shù)人員,總想采用最合適的技術(shù)將事情做的完美。
作為客戶,總想花費(fèi)最少的錢,忍耐最少的等待去將事情做的恰到好處。
視角的不同必然產(chǎn)生矛盾,而往往勝利的是客戶,由此產(chǎn)生的代價(jià)由客戶和技術(shù)人員共同承擔(dān)。
本項(xiàng)目是一個(gè)金融項(xiàng)目,基本上要求一周7天每天24小時(shí)不停,既要保證普通客戶的交易的順利進(jìn)行,也要保證對(duì)銀行交易的順利進(jìn)行。系統(tǒng)一天的負(fù)載還是比較均衡的,同時(shí)也是比較高的,需要一直從銀行接收外匯牌價(jià),同時(shí)要把這些價(jià)格經(jīng)過(guò)加工發(fā)送給PC畫面。
項(xiàng)目所采用的技術(shù)語(yǔ)言是這樣的,PC用的畫面使用AJAX,手機(jī)畫面使用PHP,連接部分使用Java(RMI),這些都沒太大問(wèn)題。問(wèn)題在核心業(yè)務(wù)處理部分。客戶現(xiàn)有一個(gè)VB做的處理系統(tǒng),客戶的想法是核心業(yè)務(wù)部分不做重新開發(fā)經(jīng)過(guò)簡(jiǎn)單接口修改之后直接使用。我們討論覺得Java和VB之間的通信實(shí)現(xiàn)起來(lái)雖然可能,但是VB不適合做這種高負(fù)載系統(tǒng)的核心業(yè)務(wù)處理,不如用Java重新寫,同時(shí)我們也預(yù)想到了以后可能會(huì)發(fā)生內(nèi)存,線程處理等一系列問(wèn)題。(非常不幸,這個(gè)預(yù)想后來(lái)成了現(xiàn)實(shí))
但是,經(jīng)過(guò)項(xiàng)目負(fù)責(zé)人和客戶在一起討論之后,決定使用客戶的方案。理由很簡(jiǎn)單,成本控制。在客戶可以承受的成本限度內(nèi),這個(gè)方案是唯一可行的。
我們也曾經(jīng)把提高系統(tǒng)可用性的期望放在服務(wù)器架構(gòu)的加強(qiáng)上。可惜,成本決定一切。這樣的一個(gè)金融項(xiàng)目不采用集群來(lái)保證系統(tǒng)的可用性是我一直到現(xiàn)在都耿耿于懷的。
之后出現(xiàn)的一些問(wèn)題都讓我很后悔當(dāng)初沒有堅(jiān)持讓客戶再稍微付出一點(diǎn)成本,即使再增加一臺(tái)服務(wù)器也會(huì)讓項(xiàng)目有很大改觀。
這件事情給我的教訓(xùn)是一定要有勇氣去跟客戶進(jìn)行項(xiàng)目上的討論甚至是爭(zhēng)論。最重要的是要用客戶所能理解的語(yǔ)言將采用某種技術(shù)的利弊闡述清楚。同時(shí)要弄清楚客戶最關(guān)心的是什么,將自己的視角首先和客戶的視角調(diào)整到一致,然后繼續(xù)延伸,在相同的視角下繼續(xù)按照自己的想法去進(jìn)行。
描述的比較抽象,簡(jiǎn)單說(shuō)來(lái)就是一要站在客戶立場(chǎng)考慮問(wèn)題,二是要學(xué)會(huì)在客戶的利益和技術(shù)架構(gòu)之間保持平衡。