20100601的主題,《簡單之美》之二,老倪
2010-6-1 12:29:32 [nj-sa-sh] 還有兩分鐘開始了
2010-6-1 12:29:33 [mazd-Melody-PM-上海] ready
2010-6-1 12:29:38 [tina-資訊管理-南京] 倒數計時
2010-6-1 12:29:47 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 嗯
2010-6-1 12:30:19 [nj-sa-sh] 今天還是介紹下書裡提到的內容
2010-6-1 12:31:34 [海茶-SSE&PMP-北京] 還好,今天沒遲到。
2010-6-1 12:31:34 [nj-sa-sh] 還有一些觀點
2010-6-1 12:31:34 [nj-sa-sh] 上次討論需求部分比較多
2010-6-1 12:31:49 [ddv731731-SSE-上海] :)
2010-6-1 12:31:57 [nj-sa-sh] 開始吧
2010-6-1 12:32:01 [windland1979-pm-bj] :)
2010-6-1 12:32:12 [nj-sa-sh] 大家有問題可以及時提
2010-6-1 12:32:20 [nj-sa-sh] :)
2010-6-1 12:32:48 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 好
2010-6-1 12:32:48 [nj-sa-sh] 簡單之美,這本書主要是講方法和思想的
2010-6-1 12:33:07 [nj-sa-sh] 內容包括了軟體開發的方方面面
2010-6-1 12:33:08 [Bobby-PM-XM] 鼓掌
2010-6-1 12:33:25 [nj-sa-sh] 謝謝:$
2010-6-1 12:33:56 [成成-HRM-上海] 開始學習了
2010-6-1 12:34:11 [wgl-pm-bj] 正好趕上!
2010-6-1 12:34:11 [bluestar-coding-bj] 鼓掌
2010-6-1 12:34:12 [nj-sa-sh] 之所以涉及得比較全面,是因為我認為軟體開發是個系統的工程
2010-6-1 12:34:15 [wgl-pm-bj] 歡迎!
2010-6-1 12:34:45 [nj-sa-sh] 一個點上或一些點上的一些解決方案,放到上下文中就有不同的效果
2010-6-1 12:35:21 [nj-sa-sh] 雖然內容比較繁雜,但是,有一些原則性的東西是很明確的
2010-6-1 12:35:42 [nj-sa-sh] 比如說,簡單之美想要表達的簡單原則
2010-6-1 12:36:07 [nj-sa-sh] 還有軟體開發的創造性,想象的精神
2010-6-1 12:36:22 [nj-sa-sh] 以及時刻關注以人為本的文化
2010-6-1 12:37:09 [nj-sa-sh] 這三點是核心的想法,所以,我在書的第一章,就表達了這幾個觀點,然後用一些例子來證明
2010-6-1 12:37:32 [nj-sa-sh] 證明這些想法是可行的,主要還是從自己的軟體開發實踐出發
2010-6-1 12:38:12 [nj-sa-sh] 我認為抱著這些原則,是開始軟體開發的好的基礎
2010-6-1 12:38:58 [nj-sa-sh] 其次,我認為的一個重要方面,是軟體開發方法論,相比於那些思想原則,這個就比較具體了
2010-6-1 12:39:32 [nj-sa-sh] 在書裡面,我以CMM和敏捷方法為例,介紹了自己的一些想法
2010-6-1 12:40:12 [nj-sa-sh] 比如說,CMM,我曾經有過實施CMM和參與評估的經歷
2010-6-1 12:41:01 [nj-sa-sh] 很多朋友認為CMM帶來了很多事務性的工作,比如文件和比較重的過程
2010-6-1 12:41:23 [nj-sa-sh] 我當時和SEI的評估師溝通過
2010-6-1 12:41:43 [nj-sa-sh] 在他的眼裡,CMM其實是非常靈活的,靈活來自於裁剪
2010-6-1 12:42:20 [nj-sa-sh] 我們之所以構建一個大而全的過程庫
2010-6-1 12:42:55 [nj-sa-sh] 是為了在全面理解軟體開發成熟模型的基礎上,有能力去做靈活的裁剪
2010-6-1 12:43:18 [nj-sa-sh] 就像練馬步
2010-6-1 12:43:47 [nj-sa-sh] 是基礎,臨敵之計是幫不上大用場的
2010-6-1 12:44:06 [nj-sa-sh] 但是沒有對基礎的理解,就很難知道什麼才是靈活
2010-6-1 12:44:27 [nj-sa-sh] 所以,我認為CMM是幫助我們走在一條成熟之路上
2010-6-1 12:44:58 [nj-sa-sh] 它裁剪的靈活性,我在書裡有一個同行評審的例子
2010-6-1 12:45:28 [nj-sa-sh] 當然,最核心的東西是不能也不該放棄的
2010-6-1 12:46:05 [nj-sa-sh] 例如,我們要想規劃下我們的工作,我們的工作成果要記錄下來,然後不斷持續改進
2010-6-1 12:46:52 [nj-sa-sh] 這比我們兩手空空,每次都隨意開會討論,沒有任何結果的情況要好得多
2010-6-1 12:47:27 [nj-sa-sh] 但是,我覺得CMM對人的關注度還不夠
2010-6-1 12:47:40 [nj-sa-sh] 這在敏捷方法中得到了補充
2010-6-1 12:48:21 [nj-sa-sh] 敏捷方法對人的關注很高,但是對人的要求也很高
2010-6-1 12:48:36 [nj-sa-sh] 這是非常客觀的一個情況
2010-6-1 12:48:48 [nj-sa-sh] 我曾經參與過一些敏捷開發
2010-6-1 12:49:55 [nj-sa-sh] 比方說,每天開晨會,劃分故事,燃盡圖
2010-6-1 12:50:46 [nj-sa-sh] 結果很多都成了應付,或者有默契地誇大故事的複雜度,劃分過於細緻
2010-6-1 12:51:20 [nj-sa-sh] 而且,很多管理者,以敏捷實施的情況,作為考核標準
2010-6-1 12:51:34 [nj-sa-sh] 例如每天解決多少問題,bug數多少
2010-6-1 12:51:59 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 歡迎新朋友
2010-6-1 12:52:08 [nj-sa-sh] 我感覺這是不對的,這違背了敏捷的原則,而把敏捷作為另一個管理手段
2010-6-1 12:52:48 [nj-sa-sh] 其實,敏捷基於以人為本的文化,本質上是相信人們可以主動
2010-6-1 12:53:12 [nj-sa-sh] 敏捷的方法,是解決主動工作的開發人員,在工作方式上的需要
2010-6-1 12:53:34 [nj-sa-sh] 他們需要溝通,所以有晨會
2010-6-1 12:53:55 [nj-sa-sh] 他們需要了解開發的狀況,所以需要燃盡圖
2010-6-1 12:54:36 [nj-sa-sh] 如果開發人員不需要,或沒有感覺到需要,敏捷方法的實施就很難成功了
2010-6-1 12:54:46 【系統提示】Viki將暱稱更改為Viki-PM-SZ
2010-6-1 12:55:12 [nj-sa-sh] 敏捷方法提供了很多有趣的“劇本”,也就是一些好的實踐方法集
2010-6-1 12:55:30 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 謝謝
2010-6-1 12:56:05 [nj-sa-sh] 這對於軟體開發人員是好的。但是,我們常常看到一些相反的效果
2010-6-1 12:56:37 [Aiken-PM-湖南] pmp
2010-6-1 12:57:11 [海茶-SSE&PMP-北京] 非常認同老倪對敏捷的這段描述,忍不住出來贊一下。
2010-6-1 12:57:12 [nj-sa-sh] 比如說結對程式設計,我自己非常喜歡結對程式設計,但是在實踐中,意見不同,爭論,不一定都帶來積極的效果。這和人們的認識有關
2010-6-1 12:57:29 [nj-sa-sh] 謝謝:)
2010-6-1 12:58:37 [nj-sa-sh] 所以我們要把問題放到一個大環境中來看,例如,企業文化,責權利問題,決策問題等等,不能割裂那些問題來做
2010-6-1 12:59:21 [(L) 明君] 好
2010-6-1 12:59:25 [nj-sa-sh] 在書裡,我設想了一種“更好”的方法論
2010-6-1 12:59:51 [nj-sa-sh] 也不是說更好,就是更適合變化的
2010-6-1 13:00:03 [nj-sa-sh] 所謂中庸之道
2010-6-1 13:00:30 [nj-sa-sh] 中庸,就是在能力和目標之間去尋找最佳的平衡點
2010-6-1 13:00:59 [nj-sa-sh] 是動態的。每個企業都有不同的文化,要不斷摸索才行
2010-6-1 13:01:35 [nj-sa-sh] 其中我講到,要有一種相容幷蓄的價值觀
2010-6-1 13:02:42 [nj-sa-sh] 很多問題和價值觀有關。我還提到,最好企業要有個調整員工心理的部門,呵呵。智力活動密集型的企業
2010-6-1 13:03:17 [nj-sa-sh] 最根本的就是人們內在的主動性。否則,幾乎沒有辦法來衡量
2010-6-1 13:03:41 [孫東-PM總監-北京] 您對每日構建,持續整合如何看
2010-6-1 13:03:48 [wgl-pm-bj] 贊同老倪的觀點,調整員工心理的確重要,但是在企業沒有這種部門的情況下,怎麼做很關鍵啊。。。也很頭疼啊
2010-6-1 13:04:00 [pw-PM-CD] 這個層次有點高了
2010-6-1 13:04:17 [nj-sa-sh] 另外,還談到執行問題,從約束到習慣,文化氛圍的轉變,是最好的執行方式
2010-6-1 13:04:37 [nj-sa-sh] 等等
2010-6-1 13:04:59 [nj-sa-sh] 後面一章是需求問題,這個上次談得比較多
2010-6-1 13:05:22 [nj-sa-sh] 其中有一個觀點,可能會帶來不少爭議
2010-6-1 13:06:01 [nj-sa-sh] 軟體開發成本,更多來自於設計和實現的細節,而不是需求的擴大
2010-6-1 13:06:32 [nj-sa-sh] 這個觀點也不完全是我說的
2010-6-1 13:07:05 [nj-sa-sh] 我在Steve McConnell的觀點中找到了相同的想法
2010-6-1 13:07:10 [pw-PM-CD] 蛋生雞?雞生蛋?
2010-6-1 13:07:17 [nj-sa-sh] Steve McConnell提到的一個觀點非常有趣。
“(工作量成倍增加)其中的關鍵在於,真正的不幸存在於細節中,即基於開發者對於表面上不起眼的細節的不同理解,可能對實現的時間產生非常大的改變。”
2010-6-1 13:07:48 [nj-sa-sh] 我之所以這麼想,也有實踐的支援
2010-6-1 13:08:01 [nj-sa-sh] 我曾經經歷過一個專案
2010-6-1 13:08:24 [nj-sa-sh] 在設計初期,使用了jdbc和hibernate混用,導致了非常嚴重的效能問題
2010-6-1 13:08:29 [pw-PM-CD] 設計與實現的細節會發現新的需求,新的需要務必增加設計和實現的細節
2010-6-1 13:09:06 [nj-sa-sh] 後面,想要對架構做一些修改,就需要20個人月以上的工作量
2010-6-1 13:09:46 [孫東-PM總監-北京] 同意
2010-6-1 13:10:05 [nj-sa-sh] 這個想法可能需要大家去工作中體會了
2010-6-1 13:10:48 [nj-sa-sh] 後面的一章是軟體架構的思考
2010-6-1 13:11:48 [nj-sa-sh] 包括再後面的一章,軟體實現的思考,稍微多一些涉及技術方面
2010-6-1 13:12:21 [nj-sa-sh] 在這兩章,我還是比較強調簡單化的原則
2010-6-1 13:12:43 [nj-sa-sh] 比方說,可移植性問題
2010-6-1 13:13:00 [nj-sa-sh] 我們很多架構,都把業務邏輯和平臺或框架結合得非常緊密
2010-6-1 13:13:14 [nj-sa-sh] 這是錯誤的
2010-6-1 13:14:20 [nj-sa-sh] 業務邏輯牽涉到的,應該就是業務模型和演算法,和平臺框架的結合部位,要嚴格分離
2010-6-1 13:15:04 [nj-sa-sh] 這可以使業務邏輯有重用的價值,有可移植的機會,最終將降低我們的開發成本
2010-6-1 13:15:40 [nj-sa-sh] 在這兩章中,我還提到了軟體開發中的負責文化
2010-6-1 13:16:12 [nj-sa-sh] 在實踐中,我們經常碰到沒有責任人的問題
2010-6-1 13:16:59 [nj-sa-sh] 在會議中,大家都可以發表意見,而且很多有話語權的開發人員可以左右解決方案
2010-6-1 13:17:29 [nj-sa-sh] 但是,當問題出現的時候,沒有人承擔責任
2010-6-1 13:17:55 [nj-sa-sh] 所以,我特別覺得軟體開發應該像個外科手術團隊一樣
2010-6-1 13:18:06 [nj-sa-sh] 要有主刀醫生
2010-6-1 13:19:02 [nj-sa-sh] 他可以選擇符合他設計思想的方案,手術成功與否,他是主要的責任人
2010-6-1 13:20:05 [nj-sa-sh] 軟體架構應該由一個架構師,或者以一個架構師為主導的團隊來完成
2010-6-1 13:21:11 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 嗯
2010-6-1 13:21:11 [nj-sa-sh] 敏捷方法中說,團隊設計,那也是一個自發組合的團隊
2010-6-1 13:21:11 [nj-sa-sh] 由於大家有相似的思想,所以團隊工作也不算太離譜
2010-6-1 13:21:51 [nj-sa-sh] 責任從來都是和利益相關的
2010-6-1 13:22:19 [nj-sa-sh] 所以在書裡也做了討論。
2010-6-1 13:22:37 [nj-sa-sh] 和責任密切相關的,就是軟體開發中的決策了
2010-6-1 13:22:37 [max-pm-sh] 沒有人承擔責任是一方面,推卸責任也是比較惡劣的
2010-6-1 13:22:39 [不勝人生一場醉-正式求職-海口 ] 但事實上多數專案中只有一個能稱得上架構師的高手
2010-6-1 13:22:51 [不勝人生一場醉-正式求職-海口 ] 其他人都還是得圍繞他來轉的
2010-6-1 13:23:00 [nj-sa-sh] 對,我也提到了這個問題
2010-6-1 13:23:11 [nj-sa-sh] 這需要企業經營者的工作了
2010-6-1 13:23:46 [nj-sa-sh] 很多時候,企業中的做法都是由上而下的
2010-6-1 13:23:54 [nj-sa-sh] 這種做法風險很大
2010-6-1 13:24:03 [wgl-pm-bj] 其實還有另一種情況,很多專案有時候連一個稱得上架構師的都沒有,呵呵呵
2010-6-1 13:24:14 [nj-sa-sh] 呵呵,對
2010-6-1 13:24:35 [nj-sa-sh] 所以企業經營者還要有識人的能力
2010-6-1 13:24:48 [孫東-PM總監-北京] 沒架構就加班
2010-6-1 13:24:50 [nj-sa-sh] 有一個方法可以檢測
2010-6-1 13:24:53 [成成-HRM-上海] 還有公司,有架構師也起不到作用
2010-6-1 13:24:57 [wgl-pm-bj] 在架構設計時,大部分是做技術和專案經理等半吊子在那裡設計架構,
2010-6-1 13:25:03 [nj-sa-sh] 在書裡面也提到了,呵呵
2010-6-1 13:25:10 [不勝人生一場醉-正式求職-海口 ] 而且架構的層次也很多
2010-6-1 13:25:19 [wgl-pm-bj] 結果造成你上面說的很多問題。。。
2010-6-1 13:25:25 [成成-HRM-上海] 是呀
2010-6-1 13:26:10 [nj-sa-sh] Alistair CockBurn在敏捷軟體開發一書中,還提到一個故事。
Dave A. Thomas是Object Technology International的創始人,這是一家擁有很多成功專案記錄的公司。一天,他向我總結了他的成功公式:“有些人能交付軟體,有些人不能。
我僱用那些交付過軟體的人”。
2010-6-1 13:26:10 [不勝人生一場醉-正式求職-海口 ] 很難說架構師應該發揮什麼樣的功能
硬體網路拓撲、BS架構、設計模式
2010-6-1 13:26:30 [wgl-pm-bj] 特別是效能、擴充套件性、移植性等方面出現很多問題,造成大量的返工。。。
2010-6-1 13:26:45 [nj-sa-sh] 呵呵,其實檢驗的方式很簡單,這就是我說要有下而上去做些事
2010-6-1 13:27:09 [wgl-pm-bj] 沒太明白,老倪,解釋一下?
2010-6-1 13:27:09 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 對於中小企業,沒有架構也有準架構,沒有準架構還有高階工程師。一步步來的,不可能一蹴而就。
2010-6-1 13:27:10 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 所謂經驗是實踐的積累
2010-6-1 13:27:24 [nj-sa-sh] 有試點,就像特區,在不影響公司商業利益的前提下,從最小的單位做起
2010-6-1 13:27:49 [nj-sa-sh] 逐漸推廣
2010-6-1 13:29:41 [孫東-PM總監-北京] 問題永遠存在,關鍵是目標和交付
2010-6-1 13:29:41 [nj-sa-sh] 識別出人才是很難的
2010-6-1 13:29:41 [nj-sa-sh] 短期是這樣,長期就需要不斷積累和進步了
2010-6-1 13:29:41 [nj-sa-sh] 在書裡的最後一章,談到了知識積累的問題
2010-6-1 13:31:42 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 贊同
2010-6-1 13:31:42 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 不能簡單認為沒有什麼所以做不了什麼
2010-6-1 13:31:42 [nj-sa-sh] 對
2010-6-1 13:31:42 [nj-sa-sh] 後面還談到軟體決策的問題
2010-6-1 13:33:43 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 大家有什麼問題?抓住老倪的機會啊。哈哈。
2010-6-1 13:33:43 [成成-HRM-上海] 時間太短,還沒學習充分呀
2010-6-1 13:33:43 [nj-sa-sh] 解決方案永遠比問題多,決策就是選擇,成千上萬的選擇
2010-6-1 13:33:44 [nj-sa-sh] 這都依賴於人,人才
2010-6-1 13:33:44 [nj-sa-sh] 任何過程都解決不了
2010-6-1 13:33:44 [nj-sa-sh] 一個小決策,就會影響巨大。比方說
2010-6-1 13:33:44 [susan-pa-襄樊] 業務模型和演算法,和平臺框架的結合部位,要嚴格分離。 我不是開發人員,不知道怎麼衡量?
2010-6-1 13:33:49 [nj-sa-sh] 決策用oracle的plsql來實現業務邏輯,可是當碰到一個大客戶,但是沒有購買oracle的計劃,這會造成商務上的被動
2010-6-1 13:33:50 [nj-sa-sh] 比方說,java企業應用中,一個http request,在進入業務計算前,就不再出現了
2010-6-1 13:34:10 [nj-sa-sh] sessionbean,不會參與到業務計算中
2010-6-1 13:34:55 [nj-sa-sh] 等等。反正框架和平臺特有的東西,都儘量遠離業務計算
2010-6-1 13:35:01 [nj-sa-sh] 業務計算就是模型和演算法
2010-6-1 13:35:21 [nj-sa-sh] 這對單元測試都是一件好事
2010-6-1 13:35:45 [nj-sa-sh] 很多時候,耦合性高了,測試一個業務邏輯,是非常困難的
2010-6-1 13:36:05 [susan-pa-襄樊] 是的
2010-6-1 13:36:12 [不勝人生一場醉-正式求職-海口 ] 這個有點絕對,有時候為了效率起見會做平衡的
2010-6-1 13:36:22 [字寬-失業-上海] 架構,如何評價?或者從哪些方面來評價
2010-6-1 13:36:42 [nj-sa-sh] 怎麼會影響效率呢
2010-6-1 13:36:54 [nj-sa-sh] 在記憶體中計算是效率最好的啊
2010-6-1 13:37:05 [不勝人生一場醉-正式求職-海口 ] 錯了,SQL返回的是最快的
2010-6-1 13:37:25 [pw-PM-CD] 我想指的是通訊效率
2010-6-1 13:37:29 [nj-sa-sh] sql會訪問資料庫啊,網路開銷很大的
2010-6-1 13:37:39 [pw-PM-CD] 呼叫層次太多
2010-6-1 13:37:40 [不勝人生一場醉-正式求職-海口 ] 100萬條記錄在記憶體分頁和排序,你認為如何?
2010-6-1 13:38:31 [不勝人生一場醉-正式求職-海口 ] 良好的框架不一定導致必然有效率的結果
2010-6-1 13:38:36 [nj-sa-sh] 這不絕對啊,原則是那樣的。要看業務場景
2010-6-1 13:38:59 [nj-sa-sh] 為什麼要在記憶體中分頁100萬條資料呢?
2010-6-1 13:40:04 [nj-sa-sh] 呵呵,是的,凡事都不絕對。可是不好的框架導致低效率的情況肯定會高很多啊
2010-6-1 13:42:01 [nj-sa-sh] 前段時間一直在效能調優,在書裡軟體測試一章,有一節談到了我的那次經歷
2010-6-1 13:42:39 [nj-sa-sh] 已經13:40了
2010-6-1 13:42:50 [nj-sa-sh] 要不今天就到這裡:)
2010-6-1 13:43:06 [susan-pa-襄樊] 謝謝老倪
2010-6-1 13:43:23 [hitbird開啟塵封的記憶-無聊中-北京] :D非常感謝~
2010-6-1 13:43:33 [不勝人生一場醉-正式求職-海口 ] 鼓掌一下啊
2010-6-1 13:43:36 [nj-sa-sh] 不客氣,謝謝大家:)
2010-6-1 13:43:56 [mazd-Melody-PM-上海] 感謝
2010-6-1 13:45:48 [海茶-SSE&PMP-北京] 老倪前面講的中庸之道我覺得可能更適合比較高的組織層面,具體到專案層面我覺得還是得用成敗之道。這兩道追求的目標本質上講
應該是一致的:都是為了達成共識,實現目標。但是中庸之道更多的是通過和稀泥的方式調和利益紛爭,達到組織層面的共識;而成敗之道講的就是事事論成敗,時時求結果。項
目層面如果用中庸之道,容易在和稀泥的過程中迷失了目標,放棄了結果,最終導致專案失去控制。
2010-6-1 13:46:01 [max-pm-sh] 鼓掌。
2010-6-1 13:46:07 [海茶-SSE&PMP-北京] 謝謝老倪今天的演講!
2010-6-1 13:46:46 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 謝謝老倪的分享!
2010-6-1 13:46:49 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 非常精彩
2010-6-1 13:46:52 [susan-pa-襄樊] 鼓掌
2010-6-1 13:47:02 [Bobby-PM-XM] 鼓掌
2010-6-1 13:47:03 [lwantstudy-PMO-DaLian] 謝謝老倪!
2010-6-1 12:29:33 [mazd-Melody-PM-上海] ready
2010-6-1 12:29:38 [tina-資訊管理-南京] 倒數計時
2010-6-1 12:29:47 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 嗯
2010-6-1 12:30:19 [nj-sa-sh] 今天還是介紹下書裡提到的內容
2010-6-1 12:31:34 [海茶-SSE&PMP-北京] 還好,今天沒遲到。
2010-6-1 12:31:34 [nj-sa-sh] 還有一些觀點
2010-6-1 12:31:34 [nj-sa-sh] 上次討論需求部分比較多
2010-6-1 12:31:49 [ddv731731-SSE-上海] :)
2010-6-1 12:31:57 [nj-sa-sh] 開始吧
2010-6-1 12:32:01 [windland1979-pm-bj] :)
2010-6-1 12:32:12 [nj-sa-sh] 大家有問題可以及時提
2010-6-1 12:32:20 [nj-sa-sh] :)
2010-6-1 12:32:48 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 好
2010-6-1 12:32:48 [nj-sa-sh] 簡單之美,這本書主要是講方法和思想的
2010-6-1 12:33:07 [nj-sa-sh] 內容包括了軟體開發的方方面面
2010-6-1 12:33:08 [Bobby-PM-XM] 鼓掌
2010-6-1 12:33:25 [nj-sa-sh] 謝謝:$
2010-6-1 12:33:56 [成成-HRM-上海] 開始學習了
2010-6-1 12:34:11 [wgl-pm-bj] 正好趕上!
2010-6-1 12:34:11 [bluestar-coding-bj] 鼓掌
2010-6-1 12:34:12 [nj-sa-sh] 之所以涉及得比較全面,是因為我認為軟體開發是個系統的工程
2010-6-1 12:34:15 [wgl-pm-bj] 歡迎!
2010-6-1 12:34:45 [nj-sa-sh] 一個點上或一些點上的一些解決方案,放到上下文中就有不同的效果
2010-6-1 12:35:21 [nj-sa-sh] 雖然內容比較繁雜,但是,有一些原則性的東西是很明確的
2010-6-1 12:35:42 [nj-sa-sh] 比如說,簡單之美想要表達的簡單原則
2010-6-1 12:36:07 [nj-sa-sh] 還有軟體開發的創造性,想象的精神
2010-6-1 12:36:22 [nj-sa-sh] 以及時刻關注以人為本的文化
2010-6-1 12:37:09 [nj-sa-sh] 這三點是核心的想法,所以,我在書的第一章,就表達了這幾個觀點,然後用一些例子來證明
2010-6-1 12:37:32 [nj-sa-sh] 證明這些想法是可行的,主要還是從自己的軟體開發實踐出發
2010-6-1 12:38:12 [nj-sa-sh] 我認為抱著這些原則,是開始軟體開發的好的基礎
2010-6-1 12:38:58 [nj-sa-sh] 其次,我認為的一個重要方面,是軟體開發方法論,相比於那些思想原則,這個就比較具體了
2010-6-1 12:39:32 [nj-sa-sh] 在書裡面,我以CMM和敏捷方法為例,介紹了自己的一些想法
2010-6-1 12:40:12 [nj-sa-sh] 比如說,CMM,我曾經有過實施CMM和參與評估的經歷
2010-6-1 12:41:01 [nj-sa-sh] 很多朋友認為CMM帶來了很多事務性的工作,比如文件和比較重的過程
2010-6-1 12:41:23 [nj-sa-sh] 我當時和SEI的評估師溝通過
2010-6-1 12:41:43 [nj-sa-sh] 在他的眼裡,CMM其實是非常靈活的,靈活來自於裁剪
2010-6-1 12:42:20 [nj-sa-sh] 我們之所以構建一個大而全的過程庫
2010-6-1 12:42:55 [nj-sa-sh] 是為了在全面理解軟體開發成熟模型的基礎上,有能力去做靈活的裁剪
2010-6-1 12:43:18 [nj-sa-sh] 就像練馬步
2010-6-1 12:43:47 [nj-sa-sh] 是基礎,臨敵之計是幫不上大用場的
2010-6-1 12:44:06 [nj-sa-sh] 但是沒有對基礎的理解,就很難知道什麼才是靈活
2010-6-1 12:44:27 [nj-sa-sh] 所以,我認為CMM是幫助我們走在一條成熟之路上
2010-6-1 12:44:58 [nj-sa-sh] 它裁剪的靈活性,我在書裡有一個同行評審的例子
2010-6-1 12:45:28 [nj-sa-sh] 當然,最核心的東西是不能也不該放棄的
2010-6-1 12:46:05 [nj-sa-sh] 例如,我們要想規劃下我們的工作,我們的工作成果要記錄下來,然後不斷持續改進
2010-6-1 12:46:52 [nj-sa-sh] 這比我們兩手空空,每次都隨意開會討論,沒有任何結果的情況要好得多
2010-6-1 12:47:27 [nj-sa-sh] 但是,我覺得CMM對人的關注度還不夠
2010-6-1 12:47:40 [nj-sa-sh] 這在敏捷方法中得到了補充
2010-6-1 12:48:21 [nj-sa-sh] 敏捷方法對人的關注很高,但是對人的要求也很高
2010-6-1 12:48:36 [nj-sa-sh] 這是非常客觀的一個情況
2010-6-1 12:48:48 [nj-sa-sh] 我曾經參與過一些敏捷開發
2010-6-1 12:49:55 [nj-sa-sh] 比方說,每天開晨會,劃分故事,燃盡圖
2010-6-1 12:50:46 [nj-sa-sh] 結果很多都成了應付,或者有默契地誇大故事的複雜度,劃分過於細緻
2010-6-1 12:51:20 [nj-sa-sh] 而且,很多管理者,以敏捷實施的情況,作為考核標準
2010-6-1 12:51:34 [nj-sa-sh] 例如每天解決多少問題,bug數多少
2010-6-1 12:51:59 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 歡迎新朋友
2010-6-1 12:52:08 [nj-sa-sh] 我感覺這是不對的,這違背了敏捷的原則,而把敏捷作為另一個管理手段
2010-6-1 12:52:48 [nj-sa-sh] 其實,敏捷基於以人為本的文化,本質上是相信人們可以主動
2010-6-1 12:53:12 [nj-sa-sh] 敏捷的方法,是解決主動工作的開發人員,在工作方式上的需要
2010-6-1 12:53:34 [nj-sa-sh] 他們需要溝通,所以有晨會
2010-6-1 12:53:55 [nj-sa-sh] 他們需要了解開發的狀況,所以需要燃盡圖
2010-6-1 12:54:36 [nj-sa-sh] 如果開發人員不需要,或沒有感覺到需要,敏捷方法的實施就很難成功了
2010-6-1 12:54:46 【系統提示】Viki將暱稱更改為Viki-PM-SZ
2010-6-1 12:55:12 [nj-sa-sh] 敏捷方法提供了很多有趣的“劇本”,也就是一些好的實踐方法集
2010-6-1 12:55:30 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 謝謝
2010-6-1 12:56:05 [nj-sa-sh] 這對於軟體開發人員是好的。但是,我們常常看到一些相反的效果
2010-6-1 12:56:37 [Aiken-PM-湖南] pmp
2010-6-1 12:57:11 [海茶-SSE&PMP-北京] 非常認同老倪對敏捷的這段描述,忍不住出來贊一下。
2010-6-1 12:57:12 [nj-sa-sh] 比如說結對程式設計,我自己非常喜歡結對程式設計,但是在實踐中,意見不同,爭論,不一定都帶來積極的效果。這和人們的認識有關
2010-6-1 12:57:29 [nj-sa-sh] 謝謝:)
2010-6-1 12:58:37 [nj-sa-sh] 所以我們要把問題放到一個大環境中來看,例如,企業文化,責權利問題,決策問題等等,不能割裂那些問題來做
2010-6-1 12:59:21 [(L) 明君] 好
2010-6-1 12:59:25 [nj-sa-sh] 在書裡,我設想了一種“更好”的方法論
2010-6-1 12:59:51 [nj-sa-sh] 也不是說更好,就是更適合變化的
2010-6-1 13:00:03 [nj-sa-sh] 所謂中庸之道
2010-6-1 13:00:30 [nj-sa-sh] 中庸,就是在能力和目標之間去尋找最佳的平衡點
2010-6-1 13:00:59 [nj-sa-sh] 是動態的。每個企業都有不同的文化,要不斷摸索才行
2010-6-1 13:01:35 [nj-sa-sh] 其中我講到,要有一種相容幷蓄的價值觀
2010-6-1 13:02:42 [nj-sa-sh] 很多問題和價值觀有關。我還提到,最好企業要有個調整員工心理的部門,呵呵。智力活動密集型的企業
2010-6-1 13:03:17 [nj-sa-sh] 最根本的就是人們內在的主動性。否則,幾乎沒有辦法來衡量
2010-6-1 13:03:41 [孫東-PM總監-北京] 您對每日構建,持續整合如何看
2010-6-1 13:03:48 [wgl-pm-bj] 贊同老倪的觀點,調整員工心理的確重要,但是在企業沒有這種部門的情況下,怎麼做很關鍵啊。。。也很頭疼啊
2010-6-1 13:04:00 [pw-PM-CD] 這個層次有點高了
2010-6-1 13:04:17 [nj-sa-sh] 另外,還談到執行問題,從約束到習慣,文化氛圍的轉變,是最好的執行方式
2010-6-1 13:04:37 [nj-sa-sh] 等等
2010-6-1 13:04:59 [nj-sa-sh] 後面一章是需求問題,這個上次談得比較多
2010-6-1 13:05:22 [nj-sa-sh] 其中有一個觀點,可能會帶來不少爭議
2010-6-1 13:06:01 [nj-sa-sh] 軟體開發成本,更多來自於設計和實現的細節,而不是需求的擴大
2010-6-1 13:06:32 [nj-sa-sh] 這個觀點也不完全是我說的
2010-6-1 13:07:05 [nj-sa-sh] 我在Steve McConnell的觀點中找到了相同的想法
2010-6-1 13:07:10 [pw-PM-CD] 蛋生雞?雞生蛋?
2010-6-1 13:07:17 [nj-sa-sh] Steve McConnell提到的一個觀點非常有趣。
“(工作量成倍增加)其中的關鍵在於,真正的不幸存在於細節中,即基於開發者對於表面上不起眼的細節的不同理解,可能對實現的時間產生非常大的改變。”
2010-6-1 13:07:48 [nj-sa-sh] 我之所以這麼想,也有實踐的支援
2010-6-1 13:08:01 [nj-sa-sh] 我曾經經歷過一個專案
2010-6-1 13:08:24 [nj-sa-sh] 在設計初期,使用了jdbc和hibernate混用,導致了非常嚴重的效能問題
2010-6-1 13:08:29 [pw-PM-CD] 設計與實現的細節會發現新的需求,新的需要務必增加設計和實現的細節
2010-6-1 13:09:06 [nj-sa-sh] 後面,想要對架構做一些修改,就需要20個人月以上的工作量
2010-6-1 13:09:46 [孫東-PM總監-北京] 同意
2010-6-1 13:10:05 [nj-sa-sh] 這個想法可能需要大家去工作中體會了
2010-6-1 13:10:48 [nj-sa-sh] 後面的一章是軟體架構的思考
2010-6-1 13:11:48 [nj-sa-sh] 包括再後面的一章,軟體實現的思考,稍微多一些涉及技術方面
2010-6-1 13:12:21 [nj-sa-sh] 在這兩章,我還是比較強調簡單化的原則
2010-6-1 13:12:43 [nj-sa-sh] 比方說,可移植性問題
2010-6-1 13:13:00 [nj-sa-sh] 我們很多架構,都把業務邏輯和平臺或框架結合得非常緊密
2010-6-1 13:13:14 [nj-sa-sh] 這是錯誤的
2010-6-1 13:14:20 [nj-sa-sh] 業務邏輯牽涉到的,應該就是業務模型和演算法,和平臺框架的結合部位,要嚴格分離
2010-6-1 13:15:04 [nj-sa-sh] 這可以使業務邏輯有重用的價值,有可移植的機會,最終將降低我們的開發成本
2010-6-1 13:15:40 [nj-sa-sh] 在這兩章中,我還提到了軟體開發中的負責文化
2010-6-1 13:16:12 [nj-sa-sh] 在實踐中,我們經常碰到沒有責任人的問題
2010-6-1 13:16:59 [nj-sa-sh] 在會議中,大家都可以發表意見,而且很多有話語權的開發人員可以左右解決方案
2010-6-1 13:17:29 [nj-sa-sh] 但是,當問題出現的時候,沒有人承擔責任
2010-6-1 13:17:55 [nj-sa-sh] 所以,我特別覺得軟體開發應該像個外科手術團隊一樣
2010-6-1 13:18:06 [nj-sa-sh] 要有主刀醫生
2010-6-1 13:19:02 [nj-sa-sh] 他可以選擇符合他設計思想的方案,手術成功與否,他是主要的責任人
2010-6-1 13:20:05 [nj-sa-sh] 軟體架構應該由一個架構師,或者以一個架構師為主導的團隊來完成
2010-6-1 13:21:11 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 嗯
2010-6-1 13:21:11 [nj-sa-sh] 敏捷方法中說,團隊設計,那也是一個自發組合的團隊
2010-6-1 13:21:11 [nj-sa-sh] 由於大家有相似的思想,所以團隊工作也不算太離譜
2010-6-1 13:21:51 [nj-sa-sh] 責任從來都是和利益相關的
2010-6-1 13:22:19 [nj-sa-sh] 所以在書裡也做了討論。
2010-6-1 13:22:37 [nj-sa-sh] 和責任密切相關的,就是軟體開發中的決策了
2010-6-1 13:22:37 [max-pm-sh] 沒有人承擔責任是一方面,推卸責任也是比較惡劣的
2010-6-1 13:22:39 [不勝人生一場醉-正式求職-海口 ] 但事實上多數專案中只有一個能稱得上架構師的高手
2010-6-1 13:22:51 [不勝人生一場醉-正式求職-海口 ] 其他人都還是得圍繞他來轉的
2010-6-1 13:23:00 [nj-sa-sh] 對,我也提到了這個問題
2010-6-1 13:23:11 [nj-sa-sh] 這需要企業經營者的工作了
2010-6-1 13:23:46 [nj-sa-sh] 很多時候,企業中的做法都是由上而下的
2010-6-1 13:23:54 [nj-sa-sh] 這種做法風險很大
2010-6-1 13:24:03 [wgl-pm-bj] 其實還有另一種情況,很多專案有時候連一個稱得上架構師的都沒有,呵呵呵
2010-6-1 13:24:14 [nj-sa-sh] 呵呵,對
2010-6-1 13:24:35 [nj-sa-sh] 所以企業經營者還要有識人的能力
2010-6-1 13:24:48 [孫東-PM總監-北京] 沒架構就加班
2010-6-1 13:24:50 [nj-sa-sh] 有一個方法可以檢測
2010-6-1 13:24:53 [成成-HRM-上海] 還有公司,有架構師也起不到作用
2010-6-1 13:24:57 [wgl-pm-bj] 在架構設計時,大部分是做技術和專案經理等半吊子在那裡設計架構,
2010-6-1 13:25:03 [nj-sa-sh] 在書裡面也提到了,呵呵
2010-6-1 13:25:10 [不勝人生一場醉-正式求職-海口 ] 而且架構的層次也很多
2010-6-1 13:25:19 [wgl-pm-bj] 結果造成你上面說的很多問題。。。
2010-6-1 13:25:25 [成成-HRM-上海] 是呀
2010-6-1 13:26:10 [nj-sa-sh] Alistair CockBurn在敏捷軟體開發一書中,還提到一個故事。
Dave A. Thomas是Object Technology International的創始人,這是一家擁有很多成功專案記錄的公司。一天,他向我總結了他的成功公式:“有些人能交付軟體,有些人不能。
我僱用那些交付過軟體的人”。
2010-6-1 13:26:10 [不勝人生一場醉-正式求職-海口 ] 很難說架構師應該發揮什麼樣的功能
硬體網路拓撲、BS架構、設計模式
2010-6-1 13:26:30 [wgl-pm-bj] 特別是效能、擴充套件性、移植性等方面出現很多問題,造成大量的返工。。。
2010-6-1 13:26:45 [nj-sa-sh] 呵呵,其實檢驗的方式很簡單,這就是我說要有下而上去做些事
2010-6-1 13:27:09 [wgl-pm-bj] 沒太明白,老倪,解釋一下?
2010-6-1 13:27:09 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 對於中小企業,沒有架構也有準架構,沒有準架構還有高階工程師。一步步來的,不可能一蹴而就。
2010-6-1 13:27:10 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 所謂經驗是實踐的積累
2010-6-1 13:27:24 [nj-sa-sh] 有試點,就像特區,在不影響公司商業利益的前提下,從最小的單位做起
2010-6-1 13:27:49 [nj-sa-sh] 逐漸推廣
2010-6-1 13:29:41 [孫東-PM總監-北京] 問題永遠存在,關鍵是目標和交付
2010-6-1 13:29:41 [nj-sa-sh] 識別出人才是很難的
2010-6-1 13:29:41 [nj-sa-sh] 短期是這樣,長期就需要不斷積累和進步了
2010-6-1 13:29:41 [nj-sa-sh] 在書裡的最後一章,談到了知識積累的問題
2010-6-1 13:31:42 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 贊同
2010-6-1 13:31:42 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 不能簡單認為沒有什麼所以做不了什麼
2010-6-1 13:31:42 [nj-sa-sh] 對
2010-6-1 13:31:42 [nj-sa-sh] 後面還談到軟體決策的問題
2010-6-1 13:33:43 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 大家有什麼問題?抓住老倪的機會啊。哈哈。
2010-6-1 13:33:43 [成成-HRM-上海] 時間太短,還沒學習充分呀
2010-6-1 13:33:43 [nj-sa-sh] 解決方案永遠比問題多,決策就是選擇,成千上萬的選擇
2010-6-1 13:33:44 [nj-sa-sh] 這都依賴於人,人才
2010-6-1 13:33:44 [nj-sa-sh] 任何過程都解決不了
2010-6-1 13:33:44 [nj-sa-sh] 一個小決策,就會影響巨大。比方說
2010-6-1 13:33:44 [susan-pa-襄樊] 業務模型和演算法,和平臺框架的結合部位,要嚴格分離。 我不是開發人員,不知道怎麼衡量?
2010-6-1 13:33:49 [nj-sa-sh] 決策用oracle的plsql來實現業務邏輯,可是當碰到一個大客戶,但是沒有購買oracle的計劃,這會造成商務上的被動
2010-6-1 13:33:50 [nj-sa-sh] 比方說,java企業應用中,一個http request,在進入業務計算前,就不再出現了
2010-6-1 13:34:10 [nj-sa-sh] sessionbean,不會參與到業務計算中
2010-6-1 13:34:55 [nj-sa-sh] 等等。反正框架和平臺特有的東西,都儘量遠離業務計算
2010-6-1 13:35:01 [nj-sa-sh] 業務計算就是模型和演算法
2010-6-1 13:35:21 [nj-sa-sh] 這對單元測試都是一件好事
2010-6-1 13:35:45 [nj-sa-sh] 很多時候,耦合性高了,測試一個業務邏輯,是非常困難的
2010-6-1 13:36:05 [susan-pa-襄樊] 是的
2010-6-1 13:36:12 [不勝人生一場醉-正式求職-海口 ] 這個有點絕對,有時候為了效率起見會做平衡的
2010-6-1 13:36:22 [字寬-失業-上海] 架構,如何評價?或者從哪些方面來評價
2010-6-1 13:36:42 [nj-sa-sh] 怎麼會影響效率呢
2010-6-1 13:36:54 [nj-sa-sh] 在記憶體中計算是效率最好的啊
2010-6-1 13:37:05 [不勝人生一場醉-正式求職-海口 ] 錯了,SQL返回的是最快的
2010-6-1 13:37:25 [pw-PM-CD] 我想指的是通訊效率
2010-6-1 13:37:29 [nj-sa-sh] sql會訪問資料庫啊,網路開銷很大的
2010-6-1 13:37:39 [pw-PM-CD] 呼叫層次太多
2010-6-1 13:37:40 [不勝人生一場醉-正式求職-海口 ] 100萬條記錄在記憶體分頁和排序,你認為如何?
2010-6-1 13:38:31 [不勝人生一場醉-正式求職-海口 ] 良好的框架不一定導致必然有效率的結果
2010-6-1 13:38:36 [nj-sa-sh] 這不絕對啊,原則是那樣的。要看業務場景
2010-6-1 13:38:59 [nj-sa-sh] 為什麼要在記憶體中分頁100萬條資料呢?
2010-6-1 13:40:04 [nj-sa-sh] 呵呵,是的,凡事都不絕對。可是不好的框架導致低效率的情況肯定會高很多啊
2010-6-1 13:42:01 [nj-sa-sh] 前段時間一直在效能調優,在書裡軟體測試一章,有一節談到了我的那次經歷
2010-6-1 13:42:39 [nj-sa-sh] 已經13:40了
2010-6-1 13:42:50 [nj-sa-sh] 要不今天就到這裡:)
2010-6-1 13:43:06 [susan-pa-襄樊] 謝謝老倪
2010-6-1 13:43:23 [hitbird開啟塵封的記憶-無聊中-北京] :D非常感謝~
2010-6-1 13:43:33 [不勝人生一場醉-正式求職-海口 ] 鼓掌一下啊
2010-6-1 13:43:36 [nj-sa-sh] 不客氣,謝謝大家:)
2010-6-1 13:43:56 [mazd-Melody-PM-上海] 感謝
2010-6-1 13:45:48 [海茶-SSE&PMP-北京] 老倪前面講的中庸之道我覺得可能更適合比較高的組織層面,具體到專案層面我覺得還是得用成敗之道。這兩道追求的目標本質上講
應該是一致的:都是為了達成共識,實現目標。但是中庸之道更多的是通過和稀泥的方式調和利益紛爭,達到組織層面的共識;而成敗之道講的就是事事論成敗,時時求結果。項
目層面如果用中庸之道,容易在和稀泥的過程中迷失了目標,放棄了結果,最終導致專案失去控制。
2010-6-1 13:46:01 [max-pm-sh] 鼓掌。
2010-6-1 13:46:07 [海茶-SSE&PMP-北京] 謝謝老倪今天的演講!
2010-6-1 13:46:46 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 謝謝老倪的分享!
2010-6-1 13:46:49 [穀雨霖pharos-cto-北京 群主頁www.pmbar.net] 非常精彩
2010-6-1 13:46:52 [susan-pa-襄樊] 鼓掌
2010-6-1 13:47:02 [Bobby-PM-XM] 鼓掌
2010-6-1 13:47:03 [lwantstudy-PMO-DaLian] 謝謝老倪!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3433/viewspace-670360/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 10.03.30專題 “《簡單之美》作者老倪談專案管理之道--複雜系統簡單化“專案管理
- 主題之美,排名靠前的 10 個 VSCode 主題VSCode
- 5款極簡極美WordPress主題,親測可用附送原始碼原始碼
- 使用 nuxt.js 開發的 helloblog 簡單主題-歡迎圍觀。UXJS
- iOS逆向之二 一個簡單的Tweak外掛原理解析iOS
- 簡單修改Linux主機名Linux
- MongoDB最簡單的入門教程之二 使用nodejs訪問MongoDBMongoDBNodeJS
- 一道簡單的題
- iOS-Widgets小元件-Today Extension和主App之間的簡單資料共享iOS元件APP
- 簡單搭建MySQL主從複製MySql
- 【轉】概念主題模型簡記模型
- JavaScript之遞迴的簡單使用JavaScript遞迴
- miniserve 簡單美觀的檔案伺服器伺服器
- 簡單面試題面試題
- 場上過不去的簡單題
- 簡易版的Spring框架之IOC簡單實現Spring框架
- 老闆要我開發一個簡單的工作流引擎
- iOS逆向之四 FishHook的簡單使用iOSHook
- 簡單說說iOS之WKWebView的用法iOSWebView
- spring之AOP的概念及簡單案例Spring
- HTML之簡單標籤HTML
- P6156 簡單題 題解
- 簡單的素數問題(C++)C++
- Redis在.net中的使用(3)簡單的主從複製Redis
- 【LeetCode】簡單題目集LeetCode
- 簡單題 加強版
- CF簡單題亂做
- 簡易版的Spring框架之AOP簡單實現(對我來說不簡單啊)Spring框架
- 極簡網頁設計技巧,打造簡約之美網頁
- 精簡CNN模型系列之二:SqueezeNetCNN模型
- HTAP系統的問題與主義之爭
- pyqt5之簡單視窗的建立QT
- JavaScript之實現一個簡單的VueJavaScriptVue
- Flutter 之使用 Event Bus 更改主題Flutter
- VuePress部落格美化之reco主題Vue
- Flutter主題切換之flutter reduxFlutterRedux
- 2018-05-10 爬蟲筆記(二)一個簡單的實踐 —簡單獲取生物資訊達人博主主頁的資訊...爬蟲筆記
- Flutter元件之ClipRRect簡單使用Flutter元件