XB (2007-7-17 9:26:56): HI
JX (2007-7-17 9:27:03): 恩
XB (2007-7-17 9:27:18): 我有一種感覺,不知道對不對啦
XB (2007-7-17 9:27:24): 我覺得到DEV這邊
JX (2007-7-17 9:27:26): 說
XB (2007-7-17 9:27:31): 發現好像 思考 變少了
XB (2007-7-17 9:27:36): 做事變多了
XB (2007-7-17 9:27:39): 思考變少了
JX (2007-7-17 9:27:57): 你指的思考是那個方面
XB (2007-7-17 9:28:04): 就是 想東西
XB (2007-7-17 9:28:26): 在QA找BUG,會想盡力法找一些藏得很深的BUG
JX (2007-7-17 9:28:29): 你是說:你不需要費多大力氣就可以把活干好是嗎?
XB (2007-7-17 9:28:58): 就是覺得有點 按步就班
JX (2007-7-17 9:29:40): 也就是說一切都已經安排好了
JX (2007-7-17 9:29:47): 不超出計劃
JX (2007-7-17 9:29:48): ?
XB (2007-7-17 9:29:57): 比如說,
XB (2007-7-17 9:30:01): 我要做個什么
XB (2007-7-17 9:30:14): 別人只要聽你一說,就知道你要做個什么東西
JX (2007-7-17 9:30:32): 你安排別人做?
XB (2007-7-17 9:30:43): 不是.
XB (2007-7-17 9:30:58): 比如說, 你要做個什么小工具
XB (2007-7-17 9:31:24): 你告訴我們,你要做什么,在你做之前,大家就會對這個小工具
XB (2007-7-17 9:31:33): 大致的情況很明白
JX (2007-7-17 9:32:01): 這不是很好嗎?大家有共同的認識
XB (2007-7-17 9:32:03): 具體細到哪個程度,就看各人的CODE經驗
JX (2007-7-17 9:32:18): 那當然
XB (2007-7-17 9:32:24): 而你所做的,就是把大家想的東西做出來
JX (2007-7-17 9:32:33): 恩,是的
JX (2007-7-17 9:32:47): 這個大家是誰?是HMANAGER
JX (2007-7-17 9:32:56): 和你們的US老大
XB (2007-7-17 9:33:07): 反正就是周圍的人.
XB (2007-7-17 9:33:30): 我想說的是, 一個DEV在做什么,及做出來什么
JX (2007-7-17 9:33:42): 你覺得你做的工具沒有給大家一個suprise?
XB (2007-7-17 9:33:53): suprise可不是什么好事
JX (2007-7-17 9:33:59): 呵呵,當然
XB (2007-7-17 9:34:14): 就是覺得按照路徑走的感覺
JX (2007-7-17 9:34:31): 你的意思我明白了,也就是說DEV是實現老大既定的路線來走對吧
XB (2007-7-17 9:34:35): QA 要找一個BUG,在這個BUG被找出來之前,沒有人知道路徑是什么
JX (2007-7-17 9:34:39): 比如按照DESIGN
XB (2007-7-17 9:34:48): 對,對.
JX (2007-7-17 9:34:59): 但,我想你提到的一點很重要
JX (2007-7-17 9:35:12): 就是具體的東西大家都有區別
XB (2007-7-17 9:35:31): 嗯
JX (2007-7-17 9:35:32): DEV這邊真正的區別在于這些細節:比如你想過編寫的代碼沒有BUG嗎?
JX (2007-7-17 9:35:46): 你想過你寫的代碼比別人快10倍嗎?
JX (2007-7-17 9:36:02): 這些東西是需要很多思考力。
XB (2007-7-17 9:36:11): 對,這個是要對各種算法進行比較
XB (2007-7-17 9:36:21): 才知道哪個更快些
JX (2007-7-17 9:36:57): 這個需要你對編碼的了解,最終的目的當然是明確的,就是實現需求,同你找出BUG是一樣的
JX (2007-7-17 9:37:27): 但具體實現,每個人都不一樣。為什么有的寫的程序就沒有BUG或很少有BUG
XB (2007-7-17 9:37:34): 一個好的DEV,跟BUG數量少有關.但代碼效率,好像不怎么提及
JX (2007-7-17 9:38:04): 他需要把各種CASE在頭腦中運行很多諞,還需要找個工具或寫個TOOL來分析
XB (2007-7-17 9:38:09): BUG數量的多少,有時還依賴單元測試
JX (2007-7-17 9:38:31): 但有的人很少或根本不做單元測試
JX (2007-7-17 9:38:51): 程序員也要做intergration test
XB (2007-7-17 9:38:59): 嗯
JX (2007-7-17 9:39:10): 我認為:一個好的DEV最好讓QA沒有飯吃,呵呵
JX (2007-7-17 9:39:28): 當然這是一種類型的工作
JX (2007-7-17 9:39:49): 我認為還有另外一種類型的工作,那就是research類型的
JX (2007-7-17 9:40:26): 比如我們現在做的圖象壓縮,怎么樣找到一個好的算法,而且適合我們的應用
XB (2007-7-17 9:40:46): JX: 我認為:一個好的DEV最好讓QA沒有飯吃,呵呵 ---如果好的DEV是自已做單元測試最后讓QA沒飯吃,我覺得不可取
JX (2007-7-17 9:41:19): 你說為什么不可取
JX (2007-7-17 9:41:28): 這個過程是漫長的,需要非常多的思考力,太多的實驗
XB (2007-7-17 9:41:30): 這只是把QA的工作,挪進DEV里面.和CODE質量沒有關系
JX (2007-7-17 9:41:51): 不是你說的這樣
JX (2007-7-17 9:41:58): 我認為是一種態度問題
XB (2007-7-17 9:42:16): 通過單元測試,找到問題,再改. QA報BUG,再改. 都是CODE的問題
JX (2007-7-17 9:42:16): 你不能保證自己的代碼沒有問題的程序員都不是好的程序員
JX (2007-7-17 9:42:35): 至少我認為自己提交出去的東西,自己應該有信心
XB (2007-7-17 9:42:48): 通過單元測試得到的信心?
JX (2007-7-17 9:42:52): 當然,我也知道不可能有沒有問題的代碼
JX (2007-7-17 9:42:57): 不一定
JX (2007-7-17 9:43:21): 單元測試只能找出來一部分問題,例如PERFORNACE問題來?還有MEMORY問題來
JX (2007-7-17 9:43:43): 集成起來和UNIT是不一樣的
XB (2007-7-17 9:43:56): 嗯,所以你說DEV也要做集成測試
JX (2007-7-17 9:44:05): 需要
XB (2007-7-17 9:44:12):
JX (2007-7-17 9:44:18): 可能理解不太相同
XB (2007-7-17 9:44:28): 那QA做什么?
XB (2007-7-17 9:44:50): 不需要QA?
JX (2007-7-17 9:44:51): QA幫助檢查
JX (2007-7-17 9:45:09): 或者是復查
XB (2007-7-17 9:45:09): 我是這樣想的.
JX (2007-7-17 9:45:30): 當然,我說的,不可能有沒有BUG的代碼
XB (2007-7-17 9:45:32): 一個模塊或者一個函數內部的東西,是DEV自己控制.
JX (2007-7-17 9:45:40): 我提到的只是一個態度
JX (2007-7-17 9:45:50): 是的,
XB (2007-7-17 9:45:51): 如果是兩個模塊,兩個DLL之間的問題,還是交給QA去測試
JX (2007-7-17 9:46:27): 我不這么認為,我覺得,自己應該有有點把握
JX (2007-7-17 9:46:42): 否則到QA那邊就都是問題了
XB (2007-7-17 9:46:49): 比如 meeting中,page和client接口的,你說讓page DEV去測呢,還是client的DEV去測?
JX (2007-7-17 9:47:01): 不是
JX (2007-7-17 9:47:31): 比如我負責多個DLL模塊,之間調用
JX (2007-7-17 9:47:46): 我可能需要把這些調用集成在一起玩轉
XB (2007-7-17 9:47:49): 就像飛機上的零件,每個開發師付保證自己生產的零件合格,而整體安裝的合格性,在于QA
JX (2007-7-17 9:47:58): 是的
JX (2007-7-17 9:48:04): 你說的沒有錯
XB (2007-7-17 9:48:25): 如果因為其中一個零件不合格,導致總裝不合格,那就是DEV的責任了
XB (2007-7-17 9:48:54): 如果每個零件都合格,但因尺寸不配套的原因,總裝不合格,肯定是QA的原因
JX (2007-7-17 9:49:06): 是的,當然你的零件和其他有很多關聯,你就的保證這個零件必須在和其他零件一起運行通過才可以
XB (2007-7-17 9:49:34): 這就上升到DESIGN的高度了
JX (2007-7-17 9:49:41): 我們可以模塊環境,但真實的環境最可靠
JX (2007-7-17 9:49:46): 模擬
XB (2007-7-17 9:49:50): 是的
JX (2007-7-17 9:50:25): 其實軟件和飛機制造是那么點不同
JX (2007-7-17 9:50:28): 呵呵
XB (2007-7-17 9:50:32): 你寫的DLL,有十個接口,你公布出來
JX (2007-7-17 9:50:38): 零件也不能完全零件
XB (2007-7-17 9:50:42): 你的意思是,你還要關注別人是怎么調用的
JX (2007-7-17 9:50:53): 不是
JX (2007-7-17 9:51:11): 如果我只單獨寫這么一個DLL,當然不管
JX (2007-7-17 9:51:43): 如果因為因為一個DLL的改動,牽涉其他很多改動
XB (2007-7-17 9:51:49): 嗯
JX (2007-7-17 9:52:08): 就比如我們當前做的這個項目,新增一個通訊模塊
XB (2007-7-17 9:52:13): 你就要做一下integration了
JX (2007-7-17 9:52:16): 我可以保證這個模塊很好
JX (2007-7-17 9:52:39): 但,別人也根據我們的意見改了代碼
XB (2007-7-17 9:52:45): OH
JX (2007-7-17 9:53:09): 但我那過來一看,他們改的代碼或者不對,或者就不能編譯
XB (2007-7-17 9:53:18): 嗯
JX (2007-7-17 9:53:20): 即使他們都可以,都能編譯
JX (2007-7-17 9:53:40): 但我們需要的不是這個DLL,需要的是整個運行的狀況
XB (2007-7-17 9:53:50): 嗯,我知道你的觀點了
JX (2007-7-17 9:53:54): 這個時候我不intergration,我怎么知道
JX (2007-7-17 9:54:00): 我的就沒有問題
XB (2007-7-17 9:54:01): 你是說,DEV要做適度的INTEGRATION
JX (2007-7-17 9:54:05): 當然
XB (2007-7-17 9:54:12): 而不是 做 full integration
JX (2007-7-17 9:54:29): 我都說了,至少心里有底
XB (2007-7-17 9:55:01): 嗯,這樣是挺好的
JX (2007-7-17 9:55:05): 就象我剛才的哪個DLL,我完成了單元測試,但我心里就是沒有底
JX (2007-7-17 9:55:09): 真的
XB (2007-7-17 9:55:12): 啊
JX (2007-7-17 9:55:23): 所以我們需要在整個產品先上來跑
JX (2007-7-17 9:55:46): 因為本身這個項目的特別性
JX (2007-7-17 9:56:02): 所以這只是一種觀點,很多開發不同意的
JX (2007-7-17 9:56:17): 那么回到 你剛才的問題
XB (2007-7-17 9:56:20): 嗯,多做一點測試,沒有壞處
XB (2007-7-17 9:56:31): 但要看不同的項目需要.
JX (2007-7-17 9:56:36): 很多人不做,或很少做
XB (2007-7-17 9:56:50): unit test是必須做的,不能指望QA
JX (2007-7-17 9:57:02): 但我發現US那邊的engineer都是寫tool來測試的
JX (2007-7-17 9:57:11): 這邊的卻很少發現這樣
XB (2007-7-17 9:57:20): 對,有時QA也對模塊里面的邏輯不清楚
XB (2007-7-17 9:57:35): 所以寫TOOL是最合適不過了
JX (2007-7-17 9:58:19): 好了,你剛才說的DEV需要思考力少的目的是什么
XB (2007-7-17 9:58:28): 就是按步就班
JX (2007-7-17 9:58:28): 你不喜歡目前的工作?
XB (2007-7-17 9:58:48): 不是,我現在搞文檔,還沒有寫CODE
XB (2007-7-17 9:58:56): 我就是發現了區別.
JX (2007-7-17 9:59:12): 你做設計文檔
JX (2007-7-17 9:59:18): 然后準備編碼?
XB (2007-7-17 9:59:32): 這周是做安全的測試用例
XB (2007-7-17 9:59:57): 寫 用例 是很需要動腦子的
JX (2007-7-17 10:00:02): 這就是說你對開發的思考?
JX (2007-7-17 10:00:14): 寫設計文檔也需要腦子
XB (2007-7-17 10:00:17): 嗯,我對HHFF這邊一些DEV思考
XB (2007-7-17 10:00:23): 就是按步就班.
JX (2007-7-17 10:00:53): 單元測試的后也是一樣,你的先知道那些用力也是需要腦子的
JX (2007-7-17 10:01:05): 如果用力想不清楚,測試就不全面
XB (2007-7-17 10:01:13): 嗯.
XB (2007-7-17 10:01:16): 是的.
JX (2007-7-17 10:01:25): 如果別人按照你的測試用力來測試就是安布就半
JX (2007-7-17 10:01:34): 這個和QA也一樣
JX (2007-7-17 10:01:51): 如果你自己寫用力自己測試需要花腦子
XB (2007-7-17 10:01:51): 每個測試用例 都是可以引申的
XB (2007-7-17 10:02:04): 如果只按 用例走,就推薦 TA了
JX (2007-7-17 10:02:08): 如果你的測試用力別人測試,哪個人就是安瓿就班
XB (2007-7-17 10:02:36): 按部就班的測試,可以引進TA
JX (2007-7-17 10:02:37): 實際上工作的過程應該是相通的
XB (2007-7-17 10:02:45): 按步就班的開發,可不行
JX (2007-7-17 10:02:45): 對
XB (2007-7-17 10:02:54): 沒有工具
JX (2007-7-17 10:03:12): 但DEV這邊,按部就班還真沒有什么工具來代替
XB (2007-7-17 10:03:17): 嗯,但QA有
XB (2007-7-17 10:03:23): 所以QA可以解放出來
XB (2007-7-17 10:03:34): 做一些有創造性的東西
JX (2007-7-17 10:03:41): 業界,提了很多,但東西都是很特殊
JX (2007-7-17 10:03:47): 比如CPPUNIT
JX (2007-7-17 10:03:50): 等
XB (2007-7-17 10:03:53): 哦
JX (2007-7-17 10:04:09): 不能針對所有,所以提高的效率不高
XB (2007-7-17 10:04:11): 能從design document直接生成 code?
JX (2007-7-17 10:04:33): 實際上從另一個方面來說還不如手工測試,因為那樣對自己的代碼邏輯更好
JX (2007-7-17 10:04:46): RATIONAL嘗試這樣做
JX (2007-7-17 10:05:03): 但這只能一部分,這個東西提了很多年了
JX (2007-7-17 10:05:07): 還是比較困難
JX (2007-7-17 10:05:25): 其實真正寫代碼的時間很短
JX (2007-7-17 10:05:49): 如果一個項目30天的話,設計需要15天,2天寫代碼足夠了
XB (2007-7-17 10:06:07): 哦
JX (2007-7-17 10:06:25): 大部分時間都在想怎么寫,怎么樣處理邏輯
XB (2007-7-17 10:06:38): 還是DESIGN DOCUMENT
XB (2007-7-17 10:06:47): 雖然不一定寫,也是放在腦子里的
JX (2007-7-17 10:06:50): 這些東西不停的在程序員頭腦中
XB (2007-7-17 10:07:03): 現在程序員都不寫DESIGN DOC吧
JX (2007-7-17 10:07:04): 最好先把整體想出來
JX (2007-7-17 10:07:11): 不是
JX (2007-7-17 10:07:28): 如果很簡單,當然不用寫
XB (2007-7-17 10:07:32): 哦
JX (2007-7-17 10:07:36): 如果很復雜需要寫
JX (2007-7-17 10:07:41): 還要寫很多
JX (2007-7-17 10:07:48): 寫到邏輯判斷
JX (2007-7-17 10:08:13): DOCUMENT可以給自己一個全局的觀點,也可以到細節處
XB (2007-7-17 10:08:23): 嗯
XB (2007-7-17 10:08:35): 我的看法就是,做按步就班的DEV,比較沒意思.要么把這個按步就班的事交給工具,要么就做通做精.
JX (2007-7-17 10:08:35): 所以DEV還是要費很多腦筋的
JX (2007-7-17 10:08:50): 當然
JX (2007-7-17 10:09:23): 安部就班的DEV就是以前提的藍領,呵呵
XB (2007-7-17 10:09:30): 但現在好像沒怎么看到想 做通做精 的
JX (2007-7-17 10:09:37): 這些人確實不重要,也沒有什么意思
XB (2007-7-17 10:09:45): 按步就班 的, 占大多數吧
XB (2007-7-17 10:10:22): 你覺得我們公司, 按步就班的多,還是做好做精的多?
JX (2007-7-17 10:10:25): 現在大部分DEV都是做寫按部就班的事情,做些有價值的事情
JX (2007-7-17 10:10:55): 本來這邊做的事情,技術含量就不是很高
XB (2007-7-17 10:11:01): OH
XB (2007-7-17 10:11:09): 這和技術含量 沒什么太大關系吧
XB (2007-7-17 10:11:19): 技術含量低,也可以做成精品啊
JX (2007-7-17 10:11:25): 但QA是這邊做起來的
JX (2007-7-17 10:11:31): 有聯系的
JX (2007-7-17 10:11:55): 當然我贊成作成精品
JX (2007-7-17 10:13:24): 這也就是老大提過的,我也和你們說過的,把那些能力強的DEV提到一個高度做有價值的事情。本來這樣的人就少,還要培養
XB (2007-7-17 10:18:16): QA目前基本從 按 用例 找 BUG 中解脫出來了
XB (2007-7-17 10:18:34): 否則就和 按步就班 的 DEV 沒有區別了
JX (2007-7-17 10:18:34): 我會把名字去掉,放到我的BLOG中,讓更多的人來發表意見
XB (2007-7-17 10:18:39): 呵呵...
XB (2007-7-17 10:19:06): JX: 但QA是這邊做起來的 --你下一句是什么
JX (2007-7-17 10:20:11): QA是HHFF創始的,所以....
JX (2007-7-17 10:20:19): 想你能明白
XB (2007-7-17 10:20:46):
XB (2007-7-17 10:21:09): 所以更專業一點
JX (2007-7-17 10:21:13): 我開始以為你不喜歡目前的工作
JX (2007-7-17 10:21:26): 我和US那邊合作很長時間了
XB (2007-7-17 10:22:03): 哦,呵呵
JX (2007-7-17 10:22:25): 我寫的那篇文章只能給大家一個小的片面,他們的那種精神真的不是吹的,這邊的DEV欠卻太多
JX (2007-7-17 10:22:28): 那就是差別
JX (2007-7-17 10:22:45): 我始終以他們的尺度來痕量自己
JX (2007-7-17 10:22:51): 這樣比較好一點,呵呵
XB (2007-7-17 10:22:56): 嗯, 感覺兩邊的責任心不一樣
XB (2007-7-17 10:23:03): 對自已出去的CODE,
XB (2007-7-17 10:23:18): 是不是有人會認為,CODE與自己無關
JX (2007-7-17 10:23:37): EMANAGER說過:代碼就是你的孩子
XB (2007-7-17 10:23:53): 但據我所知,很多HHFF DEV沒有這個意識
JX (2007-7-17 10:24:06): 這個比喻很好,誰愿意看到自己的孩子缺胳膊少腿的
JX (2007-7-17 10:24:09): 呵呵,是的
JX (2007-7-17 10:24:13): 這是差別
XB (2007-7-17 10:24:15): 呵呵
JX (2007-7-17 10:24:30): 也不是一段時間可以彌補的
JX (2007-7-17 10:24:36): 也是人的素質決定
XB (2007-7-17 10:24:44): 是習慣更多一些
JX (2007-7-17 10:24:48): 所以只能從自己出發
XB (2007-7-17 10:24:54): 如果一個公司,人人都對CODE重視
XB (2007-7-17 10:24:58): 形成習慣
XB (2007-7-17 10:25:00): 就好了.
JX (2007-7-17 10:25:02): 氛圍也非常重要
XB (2007-7-17 10:25:18): 個人素質不夠,還是培訓不夠?
XB (2007-7-17 10:25:28): 還是監督不夠?
JX (2007-7-17 10:25:54): 從這個角度來說,寫代碼也不是按部就班,每個人都生孩子,但總不能讓別人生啊
JX (2007-7-17 10:25:55): 呵呵
JX (2007-7-17 10:26:01): 不恰當的比喻
XB (2007-7-17 10:26:03): 但是按步就班的生
XB (2007-7-17 10:26:20): 啥也不管,按步就班地,到時把孩子生出來
JX (2007-7-17 10:26:29): 對,但按步就班的生的也不同
JX (2007-7-17 10:26:44): 有的人注意胎教
XB (2007-7-17 10:26:49): 嗯,
JX (2007-7-17 10:26:50): 有的人根本不管
XB (2007-7-17 10:26:56): 完全是這樣子的
JX (2007-7-17 10:27:07): 呵呵,區別,那是自己的孩子,怎么可能不管來
JX (2007-7-17 10:27:34): 監督提供一個氛圍
XB (2007-7-17 10:27:48): 全靠自覺,是行不通的.
JX (2007-7-17 10:27:51): 這是每個TEAM LEADER的責任和MANAGER的責任
XB (2007-7-17 10:28:15): 宣傳培訓,鼓勵監督,都是很重要的
JX (2007-7-17 10:28:28): 只有這一層都同意CODE是孩子的思想,其他人才能模仿
XB (2007-7-17 10:28:30): 關鍵是大家有沒有把眼光放在 代碼質量 上
JX (2007-7-17 10:28:41): 這一層都不行,就別提別的了
XB (2007-7-17 10:28:51): EMANAGER 是這樣講的
XB (2007-7-17 10:28:58): 其它老大 不知道可講過
JX (2007-7-17 10:29:56): 現在從這邊的TEAM Leader中隨便跳個人出來,能說自己代碼沒有問題的人,估計還不知道有沒有
JX (2007-7-17 10:30:23): 至少敢說,有沒有是另外一個問題
XB (2007-7-17 10:30:53): 呵呵,估計沒人敢
XB (2007-7-17 10:31:00): 或者是極少數
XB (2007-7-17 10:31:20): 但估計很多DEV都說,我是按SPEC來的
XB (2007-7-17 10:31:25): 我是實現了功能
JX (2007-7-17 10:31:25): 所以你說的這幾個方法要落到實處啊是關鍵
JX (2007-7-17 10:31:39): 我們知道的就只能從自己做起了
XB (2007-7-17 10:31:58): 嗯.
XB (2007-7-17 10:32:04): 只有這樣了