《人月神話》變革與矛盾

本文是《人月神話》閱讀的一個(gè)加餐浪默,不屬于任何一個(gè)章節(jié)镣典,是作者自己的思考昼榛,希望對大家有幫助抵知。

PC的出現(xiàn)可以說是《人月神話》成書之后的幾十年里最重要的改變桩盲,這對于軟件工程意味非凡蝗羊。PC改變了每個(gè)人使用計(jì)算機(jī)的方式嫂易,這是一個(gè)量變引起質(zhì)變的例子谭胚,即隨著時(shí)間變化而引起工作方式上的巨大變化哮翘。其他行業(yè)的暫且不談颈嚼,PC的革命改變了每個(gè)人開發(fā)軟件的方式,即便現(xiàn)在廉價(jià)的計(jì)算機(jī)也比1985年Unix工作站還要快忍坷,開發(fā)者不需要再考慮等待時(shí)間粘舟、編譯時(shí)間熔脂、讀取時(shí)間、文件共享等問題柑肴。

由此誕生出了一個(gè)全新的軟件產(chǎn)業(yè)——成品軟件包裝行業(yè)

與傳統(tǒng)軟件行業(yè)相比霞揉,這個(gè)行業(yè)的產(chǎn)品能夠以低于1程序員1天的成本獲得,同時(shí)可以完成成千上萬的規(guī)模銷售晰骑。這兩個(gè)產(chǎn)業(yè)在很多方面都不同适秩,它們是同時(shí)存在著。

注意區(qū)分現(xiàn)在的互聯(lián)網(wǎng)行業(yè)硕舆,本書沒有任何關(guān)于它的內(nèi)容秽荞,我也不會(huì)討論

傳統(tǒng)軟件行業(yè)有若干可識(shí)別且存在差異:

  1. 計(jì)算機(jī)提供商:提供操作系統(tǒng)、編譯器和一些實(shí)用程序
  2. 應(yīng)用程序用戶:如公共事業(yè)單位抚官、銀行扬跋、保險(xiǎn)公司和政府機(jī)構(gòu)等,他們?yōu)樽约簩?shí)用的軟件開發(fā)應(yīng)用程序包
  3. 定制程序開發(fā)者:為用戶開發(fā)私用軟件包凌节,這類承包商大多數(shù)工作在服務(wù)其他行業(yè)钦听,這些項(xiàng)目的需求、標(biāo)準(zhǔn)和行銷步驟都是與眾不同的
  4. 商業(yè)軟件開發(fā)者:為市場開發(fā)大型應(yīng)用倍奢,如統(tǒng)計(jì)分析軟件和CAD系統(tǒng)等

對于成品軟件行業(yè)包裝產(chǎn)業(yè)中的開發(fā)者朴上,面對的是與傳統(tǒng)產(chǎn)業(yè)完全不同的經(jīng)濟(jì)學(xué):軟件成本是開發(fā)成本與數(shù)量的比值,包裝和市場成本非常高卒煞。在傳統(tǒng)的內(nèi)部應(yīng)用開發(fā)產(chǎn)業(yè)中痪宰,進(jìn)度和功能細(xì)節(jié)是可以協(xié)商的;而在競爭激烈的開發(fā)市場面前進(jìn)度和功能支配了開發(fā)成本畔裕。正如人們所預(yù)期的衣撬,完全不同的經(jīng)濟(jì)學(xué)引發(fā)了非常不同的編程文化,同時(shí)也誕生了一批處于矛盾當(dāng)中的軟件公司柴钻。

成品軟件產(chǎn)業(yè)更加自由淮韭,關(guān)注結(jié)果,而不是流程贴届,在這種趨勢下那些天才的個(gè)人程序員更容易獲得認(rèn)可靠粪,并根據(jù)他們的貢獻(xiàn)獲得獎(jiǎng)勵(lì)。而傳統(tǒng)軟件產(chǎn)業(yè)中毫蚓,公司的社會(huì)化因素和薪資管理計(jì)劃總會(huì)讓上述做法難以實(shí)施占键。因此,很多高手總是被吸引到成品軟件包裝產(chǎn)業(yè)元潘,這十分常見畔乙。

介于新老之間的矛盾

其實(shí)在《人月神話》(P11)為舍棄而計(jì)劃中已經(jīng)從微觀的角度描述過這種矛盾,當(dāng)時(shí)提出的解決方法也是微觀的翩概,這篇加餐的文章將從宏觀的角度來給出我認(rèn)為的方法牲距。

矛盾存在于下面幾個(gè)點(diǎn):

  1. 試圖用成品軟件行業(yè)的價(jià)值觀指導(dǎo)傳統(tǒng)軟件行業(yè)返咱,最突出的就是用成品軟件的方式來做定制開發(fā),盲目提高包裝和市場成本
  2. 既沒有傳統(tǒng)行業(yè)的管理風(fēng)格和企業(yè)文化牍鞠,也沒有成品行業(yè)的關(guān)注結(jié)果咖摹、行事自由和貢獻(xiàn)反饋,對優(yōu)秀的開發(fā)者沒有任何吸引力
  3. 丟掉了傳統(tǒng)行業(yè)中的嚴(yán)謹(jǐn)难述、規(guī)范和重視技術(shù)萤晴,又拿不起成品軟件的銷量

或多或少具備以上特點(diǎn)的網(wǎng)絡(luò)公司,大部分都是軟件行業(yè)發(fā)展不成熟的產(chǎn)物胁后,這種不成熟是多方面的店读,包括市場環(huán)境、政府關(guān)注攀芯、人才培養(yǎng)屯断、市場接受度、業(yè)內(nèi)評判標(biāo)準(zhǔn)等方面敲才。

首先承認(rèn)現(xiàn)在的軟件行業(yè)已經(jīng)分化為多個(gè)領(lǐng)域裹纳,每個(gè)領(lǐng)域都有它獨(dú)特甚至相反的編程文化,在進(jìn)行對比和借鑒時(shí)一定要明確自己的定位紧武,否則只會(huì)適得其反。

使用成品軟件作為構(gòu)件

徹底提高軟件健壯性和生產(chǎn)率的唯一途徑是敏储,將開發(fā)流程拔高一個(gè)層面阻星,使用模塊或者對象組合來進(jìn)行程序開發(fā)。一個(gè)特別有希望的趨勢就是使用大眾軟件包平臺(tái)(npm已添,composer)妥箕,在上面開發(fā)更加豐富和定制化的產(chǎn)品,現(xiàn)在已經(jīng)能夠看到許許多多的定制化模板和特殊函數(shù)更舞。

使用模板和函數(shù)為部分軟件用戶進(jìn)行功能定制的過程被稱為“元編程”畦幢,這并不是新概念,像微軟一樣的大型信息公司都有專門的專家團(tuán)隊(duì)在做這件事(例如Excel中的宏和微信的小程序)缆蝉。由此產(chǎn)生的元程序形成了二級(jí)市場(例如微擎應(yīng)用商店)宇葱,這樣的市場正在悄無聲息的崛起,這是非常令人振奮的刊头。

這種方式使得開發(fā)人員可以忽略細(xì)節(jié)黍瞧,直接針對概念結(jié)構(gòu)要素打造的根本問題,所以將來一定會(huì)快速發(fā)展原杂。成品軟件提供大量的功能模塊和精心定制的接口印颤,它的內(nèi)部概念結(jié)構(gòu)根本無需再設(shè)計(jì)。下一級(jí)應(yīng)用程序開發(fā)者可以獲得豐富的功能穿肄、更短的開發(fā)時(shí)間年局、經(jīng)過測試的組件际看、良好的文檔和徹底降低的成本。

如何實(shí)現(xiàn)不重要矢否,程序的根本目的是幫助人仲闽,程序的根本問題是概念要素的構(gòu)架

當(dāng)然,缺點(diǎn)也是有的兴喂,成品軟件作為獨(dú)立實(shí)體來設(shè)計(jì)蔼囊,元程序員無法改變它的功能和接口。作為成品軟件開發(fā)者衣迷,要求他把他的產(chǎn)品做成更大型系統(tǒng)中的一個(gè)模塊似乎沒什么吸引力畏鼓。但小程序的例子告訴我們,這種想法極可能是錯(cuò)誤的壶谒,如何為元程序員提供軟件包云矫,這里面一定有一個(gè)未開拓的巨大市場。

那我們需要怎么做呢汗菜?可以把軟件成品用戶分為以下四個(gè)層次:

  1. 直接使用用戶让禀。他們以簡單直接的方式來操作,對設(shè)計(jì)者提供的功能和接口感到滿意(易企秀)陨界。
  2. 元程序員巡揍。在單個(gè)應(yīng)用程序的基礎(chǔ)上,使用已經(jīng)提供的接口來開發(fā)模板或者函數(shù)菌瘪,主要為最終用戶節(jié)省工作量(Excel宏)腮敌。
  3. 外部功能工作者。向應(yīng)用程序添加自行編制的功能俏扩。這些功能本質(zhì)上是應(yīng)用語言原語糜工,調(diào)用通用語言編寫的獨(dú)立模塊。這往往需要中斷录淡、回調(diào)或者重載函數(shù)技術(shù)捌木,向原接口添加新功能(小程序)。
  4. 元程序員嫉戚。編寫特殊的應(yīng)用程序刨裆,作為更大型系統(tǒng)的構(gòu)件。他們是需求并沒有得到滿足的用戶群(AppleScript)彼水。

成品軟件需要對元程序要提供“文檔化接口”崔拥,這就在很多方面提出了要求:

  1. 元程序需要在整個(gè)應(yīng)用程序集的控制之下,而每個(gè)軟件通常假設(shè)是受自己控制的
  2. 軟件集必須控制用戶界面凤覆,而應(yīng)用程序一般認(rèn)為這是自己的職責(zé)
  3. 軟件整體必須能夠調(diào)用任何應(yīng)用程序的功能链瓦,就好像參數(shù)傳遞那樣
  4. 它還應(yīng)該像屏幕那樣能夠接受應(yīng)用程序的輸出

未來

相比化學(xué)等其他領(lǐng)域,軟件工程的發(fā)展實(shí)在是太慢了,但它并不是沒有希望慈俯,只是還不夠成熟渤刃。

想想第一章提出的問題:

  1. 如何把一系列程序構(gòu)建成系統(tǒng)
  2. 如何把程序構(gòu)建成健壯的、經(jīng)過測試的贴膘、文檔化的卖子、可用的產(chǎn)品
  3. 如何維持對大量“復(fù)雜性”的控制

很長一段時(shí)間內(nèi)這些問題還是會(huì)使人們舉步維艱、不能自拔刑峡。軟件系統(tǒng)可能是人類創(chuàng)造中最錯(cuò)綜復(fù)雜的實(shí)物洋闽,只能期待在力所能及的范圍內(nèi)進(jìn)行探索和嘗試。

這個(gè)復(fù)雜的行業(yè)需要:

  1. 時(shí)間
  2. 堅(jiān)持學(xué)習(xí)
  3. 優(yōu)秀新工具的最佳實(shí)踐
  4. 經(jīng)過論證的工程管理方法的最佳實(shí)踐
  5. 良好的自我判斷以及——上帝所賜予的謙卑

自由轉(zhuǎn)載-非商用-非衍生-保持署名(創(chuàng)意共享3.0許可證

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末突梦,一起剝皮案震驚了整個(gè)濱河市诫舅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宫患,老刑警劉巖刊懈,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異娃闲,居然都是意外死亡虚汛,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進(jìn)店門皇帮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來卷哩,“玉大人,你說我怎么就攤上這事属拾⊙程郏” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵捌年,是天一觀的道長。 經(jīng)常有香客問我挂洛,道長礼预,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任虏劲,我火速辦了婚禮托酸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘柒巫。我一直安慰自己励堡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布堡掏。 她就那樣靜靜地躺著应结,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鹅龄,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天揩慕,我揣著相機(jī)與錄音,去河邊找鬼扮休。 笑死迎卤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的玷坠。 我是一名探鬼主播蜗搔,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼八堡!你這毒婦竟也來了樟凄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤秕重,失蹤者是張志新(化名)和其女友劉穎不同,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溶耘,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡二拐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凳兵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片百新。...
    茶點(diǎn)故事閱讀 39,739評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖庐扫,靈堂內(nèi)的尸體忽然破棺而出饭望,到底是詐尸還是另有隱情,我是刑警寧澤形庭,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布铅辞,位于F島的核電站,受9級(jí)特大地震影響萨醒,放射性物質(zhì)發(fā)生泄漏斟珊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一富纸、第九天 我趴在偏房一處隱蔽的房頂上張望囤踩。 院中可真熱鬧,春花似錦晓褪、人聲如沸堵漱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽勤庐。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間埃元,已是汗流浹背涝涤。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留岛杀,地道東北人阔拳。 一個(gè)月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像类嗤,于是被迫代替她去往敵國和親糊肠。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評論 2 354