大道至簡

出版時間:2007-3  出版社:電子工業(yè)出版社  作者:周愛民  頁數(shù):168  
Tag標(biāo)簽:無  

前言

  前言  “你在做什么?”我經(jīng)常這樣反問那些跑來問我問題的人們。然后他們就愣住了。.  做了許多年的開發(fā),其實有很多人并不知道“自己在做什么”?!队薰粕健返墓适吕锩?,愚公為山所阻,苦于“出入之迂”,然后就決定“移山”??雌饋韨ゴ蠖L(fēng)光的工程,可能只是拍拍腦袋的一時主意——如果只是覺得繞路太遠(yuǎn),那么劈山開路豈不是更加經(jīng)濟(jì)?  愚公移山只是一種精神追求,而做工程卻不是追求精神目標(biāo)。我們的目標(biāo)是完成工程,但是你現(xiàn)在環(huán)顧一下你的團(tuán)隊:有多少人的眼光是落在工程本身上的呢?  程序員正在調(diào)試代碼,項目經(jīng)理在忙著開會,市場經(jīng)理在請客吃飯,老板可能還在來公司的路上……總之,你的身旁沒有什么人關(guān)注工程本身。即便有一個人或幾個人在像模像樣地畫著模型圖,或者寫著需求、分析與設(shè)計書,但是對于他們來說,這只是例行的工作,而不是出于工程本身的需要?! ∑鋵嵾@也是我在幾年前的狀態(tài),同時身兼主程、團(tuán)隊負(fù)責(zé)人和項目經(jīng)理的時候,我列出的工作清單排滿了上班與下班的時間。我甚至忙到不知道自己有多忙。直到我將自己的角色分解到“工程層狀模型(EHM)”中,我才漸漸地梳理出自己的工作方法?!  洞蟮乐梁啞愤@本書的名字并沒有什么奧妙。因為是先有了EHM,所以這本書根本上是隨著EHM的層次來展開的。它的第一版曾在《程序員》中選載過三期,那時我為了方便就以《從編程到工程》作為書名。后來出電子版時,才恢復(fù)到現(xiàn)在這個名字。而本質(zhì)上來說,這本書還是講的“從編程到工程”的各個環(huán)節(jié)?! ≈劣凇暗馈保鋵嵲诤跤谀愕恼J(rèn)知。它不過是規(guī)律、本質(zhì)的代名詞?,F(xiàn)在的書名,更像是一個以程序員出身的工程實踐者,在歷經(jīng)10年后,終于領(lǐng)悟到“自己在做什么”時的一聲感嘆?!  洞蟮乐梁啞废蚰阒v述兩個內(nèi)容:做什么和為什么做?!白鍪裁础弊鳛橐环N狀態(tài)或者現(xiàn)象,通常是(階段性)不變的,所以人們了解自己“在做什么”時大多只需要觀察。簡而言之,只需要自省,就可以了解自己的所作所為了。然而“為什么做”卻相對更難于理解,因為這是“表象下的實質(zhì)”,潛藏得很深:習(xí)以為常,便會根本上忘卻“習(xí)”的來由。例如項目總監(jiān)說要一份計劃,你大概只需要拿一個以前做過的文檔模板,很快就能寫出一份項目計劃案來。但在這個過程中,你已經(jīng)忘掉了“項目計劃案”真正存在的價值——寫它的目的,并不是“完成工作”?! 懸环蓓椖坑媱澃傅臅r候,你的角色是項目經(jīng)理,你的職責(zé)是計劃與分工,你的目標(biāo)是工程的時間、進(jìn)度與質(zhì)量的平衡。這份文檔是工程的綱要,因此閱讀群體是整個團(tuán)隊和項目干系人。所有這些,都可能導(dǎo)致文檔的規(guī)格和措辭存在差異?! ∷阅阈枰J(rèn)識“為什么做”?! ∵@其實并不是非常困難。例如我在工程中經(jīng)常問的問題是“可不可以不做”——哈哈,看起來我很偷懶似的。其實不然,。因為接下來我就會從不同的人那里得到“非做不可”的種種理由?! ∪欢@是方法或者手法?!洞蟮乐梁啞凡⒉桓嬖V你這些具體的方法與手法。我只是敘述了基本的原理與思想?!洞蟮乐梁啞逢愂龅氖且环N途徑、一個方面,以及一些探求途徑、方面過程中的故事與思考?! ∽鍪掠袥]有章法,在于你頭腦夠不夠清醒;頭腦夠不夠清醒,在于你是否視見到事物的本實。具體到如何做一件事(例如做軟件工程)的方法與步驟,是本書所不能告訴你的。而反過來說,如果你認(rèn)為你自己“足夠清醒”,那么這本書原本也就不會告訴你更多。  你足夠清醒嗎?  第二版的增改  寫這一版的《大道至簡》,其實用掉的時間與整個第一版差不太多。但新添加的內(nèi)容,也就兩章三節(jié)而已:  第六章,誰是解結(jié)的人;  第八章,你看得到工具的本質(zhì)嗎;  第四章第三節(jié),溝通的三層障礙;  第九章第五節(jié),審視AP和XP;  第十章第七節(jié),細(xì)解“法”與“式”。..  此外,第二版的《大道至簡》加入了一個有趣的部分,就是九幅四格漫畫和一篇《愚公移山記》。  除了增加的內(nèi)容之外,本版的《大道至簡》還修改了一些章節(jié)的位置。例如第七章的“關(guān)注點”一節(jié)。因為EHM圖提出來的不僅僅是一個“多層”的體系,而且它的“關(guān)注點”也是EHM體系的一個重要部分。因此放在一起來講述,會使這個體系更加完整?! ∵€有一些細(xì)部修改。例如第一版說李冰與愚公處于“差不多同一時間”。這經(jīng)不起考究,就改掉了。  關(guān)于新添加的章節(jié)  第一版的EHM體系中有一個關(guān)注點沒有詳述。也就是“組織”。事實上在 “失敗的過程也是過程”中,最后一節(jié)“工程不是做的,是組織的”,就是打 算延伸到“組織問題”進(jìn)行討論的。但寫第一版的時候,并沒有就此展開。所 以有些讀者在看第一版時,覺得這一段沒什么意義。  本版中添加的第六章“誰是解結(jié)的人”,討論的就是組織和管理的問題。 承接上文而討論“組織角色,分工明確,步調(diào)一致”等這些問題。為此,在綜述EHM的第七章,也修改了“組織”小節(jié)的部分文字。  在本版中,我還添加了一章“審視XP和AP",對敏捷編程與極限編程做了一些討論。我試圖站在更中立的角度上來討論AP、XP,以及傳統(tǒng)的工程過程(例如RUP)。因為本書并不打算去迎合某種或者某些過程、方法與工具。  但即使如此,“敏捷(Agile)”也與本書表達(dá)的“靈活(Flexible)”的觀點有相近的地方。其實本書在英文名上,就曾考慮過使用“Thinking In Flexible Engineering”這樣的名字。我在這里特別補(bǔ)充這一點,是希望不要把本書的思想與AP和XP等同起來?! ⌒绿砑拥牡诎苏隆澳憧吹玫焦ぞ叩谋举|(zhì)嗎”,占了不少的篇幅。其實,對于我自己來說,理解“語言只是工具”是一個頓悟的過程。但對于讀者來說,是頓悟還是領(lǐng)悟,則更多的取決于思想方法與工程積累。我不能期望大家都能頓悟,所以就詳寫了這一章,希望能以漸進(jìn)的說理,對我的思想脈絡(luò)做一概括,并闡述工具之于工程的本末?! £P(guān)于《愚公移山記》  在基本不影響原故事的前提下,我在本書中對愚公移山的故事進(jìn)行了續(xù)。我在2005年4月就完成了本書的第一版,7月赴西藏旅游時,在珠峰大本營扎營之夜構(gòu)思了“愚公移山”的續(xù)寫概要,但到10月發(fā)布本書第一版(電子版)時,這篇續(xù)卻沒能夠?qū)懗鰜?。此次編寫第二版,把這一年來在頭腦中漸漸清晰的故事重理脈絡(luò),編撰成一篇文言,就是附錄中的《愚公移山記》。為方便閱讀,在本書附錄中又附了一篇白話文的版本?! 械木欧母衤嫞坏爬斯适碌拇笠?,也是整本書的框架骨骼。為了使得整個故事更加完整并具連續(xù)性,我對愚公移山中人物的歷史背景進(jìn)行了一些設(shè)定(姓氏的設(shè)定主要是為了避免在故事中出現(xiàn)“愚公n代”這樣的寫法)。這里先作一些交待:  愚公,復(fù)姓公輸,祖上虞國人(今山西平陸縣北)。后遷居到太行山北時以虞人自稱,性情耿正,人稱愚公?! ≈芹?,復(fù)姓端木,魏國河曲人(今山西芮城西,風(fēng)陵渡一帶),后遷與愚公毗鄰,仍以河曲人自稱?! ∴徣司┏鞘?,世居此地。有孀妻遺男。京城一氏的后代中,有很多復(fù)祖姓目夷的人?! ⌒?、前言及其他  這一版本,仍請蔣濤先生作序,替換了由他為本書第一版(電子版)所寫的序言。在請李維先生做推薦辭時,先生不辭辛勞,寄過來一份推薦序,因此,我敬而重之地做在本書的序中。本書的另一篇序,則是請我的老朋友王昊寫的?! 〉谝话娴摹扒把浴币浴昂笳Z”的形式在書末給出,這一版中保留了這個做法,具體的原因參見書末的“前言后語”。  此外,為了便于讀者閱讀理解本書,我也為新版寫了這篇“再版前言”。

內(nèi)容概要

  本書提出了審視軟件工程的全新視角和軟件工程的體系模型(EHM,軟件工程層狀模型)本書用非工程的方式重新解析軟件工程現(xiàn)象,全面、細(xì)致而深刻地分析了工程中各個環(huán)節(jié)的由來、價值及其內(nèi)在關(guān)系。綜合論述開發(fā)、工程二者的現(xiàn)狀,例如對程序員“工匠思想”的起源進(jìn)行廣征博引的分析,也對工程中“敏捷過程”的經(jīng)驗主義本質(zhì)進(jìn)行深至髓質(zhì)的論證。全書語言輕快,可讀性強(qiáng),薄且有味?! ”緯窃凇八枷敕椒▽W(xué)”這一軟件工程尚未涉足過的領(lǐng)域中的實習(xí)之作。作者親歷國內(nèi)軟件工程的英雄時代、泡沫時代,從失敗中醒覺而創(chuàng)建獨特的思考方法,對軟件開發(fā)、工程中的現(xiàn)狀深刻反思,從而完成這本專著。在缺乏獨立思維、對國外工程理論亦步亦趨的國內(nèi)工程界、開發(fā)業(yè)界,該書無疑是一份激蕩新思的佳作。本書是第一本討論軟件工程思想本源的書籍,也是第一本從工程實踐出發(fā)溯源而論的佳作。

作者簡介

  周愛民,有十余年的軟件開發(fā)、項目管理、團(tuán)隊建設(shè)的經(jīng)驗。曾任多家軟件公司高級程序設(shè)計師、項目經(jīng)理、部門經(jīng)理、區(qū)域總經(jīng)理等職,現(xiàn)任上海盛大網(wǎng)絡(luò)平臺架構(gòu)師。目前主要從事軟件工程、體系架構(gòu)和語言基礎(chǔ)方面的研究與實踐。  2001年,主持完成的“極光數(shù)據(jù)處理倉庫中心系統(tǒng)”被河南省信息產(chǎn)業(yè)廳授予省高新技術(shù)產(chǎn)品二等獎?! ?003年,被美國Borland公司授予“Borland Delphi產(chǎn)品專家”稱號。  2004年,出版《Delphi源代碼分析》,被譽(yù)為“Delphi領(lǐng)域精品著作”?! ?005年,發(fā)布《大道至簡》第一版(電子版)?! ?006年,發(fā)起開源項目。Qomolangma Open Project,探討語言系統(tǒng)基礎(chǔ)技術(shù)。

書籍目錄

對第一版的贊揚(yáng)精彩在于思考停下來,思考才是進(jìn)步本質(zhì)屏幕上的第四種顏色再版前言致謝第一章 編程的精義第一節(jié) 編程的精義第二節(jié) 能不能學(xué)會寫程序的問題第三節(jié) 程序=算法+結(jié)構(gòu)第四節(jié) 語言第五節(jié) 在沒有工程的時代第二章 是懶人造就了方法第一節(jié) 是懶人造就了方法第二節(jié) 一百萬行代碼是可以寫在一個文件里的第三節(jié) 你桌上的書是亂的嗎第四節(jié) 我的第一次思考:程序=算法+結(jié)構(gòu)+方法第三章 團(tuán)隊缺乏的不只是管理第一節(jié) 三個人的團(tuán)隊第二節(jié) 做項目=死亡游戲第三節(jié) 做ISO質(zhì)量體系的教訓(xùn)第四節(jié) 誰動搖了你的制度第五節(jié) “那我們就開始開發(fā)吧”第六節(jié) 組織的學(xué)問:角色第七節(jié) 跟隨螞蟻,但不要栽進(jìn)螞蟻洞里第八節(jié) “什么是增值稅發(fā)票?”第四章 流于形式的溝通第一節(jié) 客戶不會用C,難道就會用UML嗎第二節(jié) 項目文檔真的可以用甲骨文來寫第三節(jié) 溝通的三層障礙第四節(jié) 最簡溝通第五節(jié) 為不存在的角色留下溝通的渠道第六節(jié) 流于形式的溝通第五章 失敗的過程也是過程第一節(jié) 做過程不是做工程第二節(jié) 做過場第三節(jié) 實現(xiàn),才是目的第四節(jié) 過程不是死模型第五節(jié) “刻鵠類鶩”與“畫虎類狗”第六節(jié) 工程不是做的,是組織的第六章 誰是解結(jié)的人第一節(jié) 是誰的問題第二節(jié) 正視你的成功第三節(jié) 總得先做點兒什么吧第四節(jié) 你不是團(tuán)隊的腿第五節(jié) 三鼓而竭第六節(jié) 先人后已第七節(jié) 自相矛盾第七章 從編程到工程第八章 你看得到工具的本質(zhì)嗎第九章 現(xiàn)實中的軟件工程第十章 是思考還是思想附錄一 與蔣濤就電子版序的對話附錄二 愚公移山記附錄三 愚公移山記(文言)前言后語

編輯推薦

  ★在"思想方法學(xué)"這一軟件工程尚未涉足過的領(lǐng)域中的實習(xí)之作!  ★第一本討論軟件工程思想本源的書籍,也是第一本從工程實踐出發(fā)溯源而論的佳作?!  洞蟮乐梁啠很浖こ虒嵺`者的思想》是在“思想方法學(xué)”這一軟件工程尚未涉足過的領(lǐng)域中的實習(xí)之作。作者親歷國內(nèi)軟件工程的英雄時代、泡沫時代,從失敗中醒覺而創(chuàng)建獨特的思考方法,對軟件開發(fā)、工程中的現(xiàn)狀深刻反思,從而完成這本專著。在缺乏獨立思維、對國外工程理論亦步亦趨的國內(nèi)工程界、開發(fā)業(yè)界,該書無疑是一份激蕩新思的佳作?!洞蟮乐梁啠很浖こ虒嵺`者的思想》是第一本討論軟件工程思想本源的書籍,也是第一本從工程實踐出發(fā)溯源而論的佳作。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    大道至簡 PDF格式下載


用戶評論 (總計0條)

 
 

 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7