《Agile Impressions》作者问答录
Gerald Weinberg在《Agile Impressions》一書中分享了他關(guān)于敏捷運(yùn)動的觀察結(jié)果:“它從哪里來,現(xiàn)在在哪,將往哪里去。”在書中,他對敏捷的基礎(chǔ)和原則進(jìn)行了探討,論述了他是如何看到敏捷被違反的,并為敏捷原則的應(yīng)用提供了理念和實例。\
《Agile Impressions》是一個“正在進(jìn)行的工作”,發(fā)表在Leanpub上,Leanpub允許作者逐步完成書本的內(nèi)容,并自動更新給所有過去的購買者。Jerry歡迎大家對此書提出反饋,以幫助他逐步完成敏捷印象一書。\
InfoQ就客戶參與和參加的重要性,業(yè)務(wù)和IT部門之間的協(xié)調(diào),交流和文檔記錄的問題對Weinberg 進(jìn)行了采訪。InfoQ同樣就剛從大學(xué)畢業(yè)想成為專業(yè)的軟件開發(fā)人員和想提高自己技能的軟件開發(fā)人員問題對Weinberg 進(jìn)行了咨詢。\
InfoQ:您的書是您通過電子郵件或在網(wǎng)絡(luò)論壇上獲得的博客帖子、文章和討論的一個集合。是什么讓您決定以書本的形式(重新)出版的?\
\Weinberg:并不是每個人都閱讀我的博客和文章。我希望通過這種方式接觸更廣泛的,對敏捷相關(guān)話題感興趣的讀者。
\InfoQ:敏捷軟件開發(fā)宣言強(qiáng)調(diào)了客戶的協(xié)作與參與。您能分享一下您對此的看法嗎?\
\Weinberg:就在今天,一名同事給我分享了一個與這相關(guān)的故事:\
我們發(fā)現(xiàn)根據(jù)新的格式規(guī)格很難讀取數(shù)據(jù)。原來新的規(guī)格在一些地方是模棱兩口的,并與數(shù)據(jù)的產(chǎn)生相矛盾,盡管可能在其它地方是相吻合的。當(dāng)就此問題詢問創(chuàng)作者,對此他會做點什么時,他說:“什么也不做。我是一個程序員。我可以做任何我想做的事。”\
是的,程序員可以做任何他們想做的,但是如果他們的工作是向其他人提供有用的產(chǎn)品和服務(wù)時就得例外。除非你是一名讀心者,否則你怎么能知道別人想要什么呢?就個人而言,我不認(rèn)識任何讀心者,但是我遇到過許多這種自以為是類型的程序員。敏捷宣言為這種愚蠢的傲慢者提供了一種療方。
\InfoQ:在您的一篇文章中您記述了讓客戶參與的重要性。但是如果客戶說他們沒有時間這樣做,或者因為其它一些原因不能參與,怎么辦呢?\
\Weinberg:如果你不能找到一個合適的客戶代表參與到你的項目中去,就不要開始這個項目。很明顯,如果客戶覺得他們不需要參與其中,那么項目注定會失敗。
\InfoQ:很難做到滿足客戶的要求。 團(tuán)隊會感到壓力,可能會承諾一些他們不能交付的東西。您對如何識別這種行為以及如何處理有什么建議嗎?\
\Weinberg:我們稱這種行為為“撫慰(placating)”。本書有一個章節(jié)是講述撫慰的,以及如何避免和預(yù)防。首先,你意識到你的確在撫慰。任何時候,不管你感覺或者認(rèn)為如何,當(dāng)你感覺到你“必須做”或者“必須是”的時候,你已經(jīng)處在撫慰的危險之中了。最終,不撫慰的秘密在于保持一致性,意味著你的外在行為要與你的內(nèi)心感受一致。比如,如果你說,“我要在明天之前完成那個東西,”因為老板堅持要明天之前完成,但是你并沒有真的覺得你能夠在明天之前完成,那么你就是不一致和撫慰的。更好的一種說法是,“當(dāng)然,如果你希望我明天之前完成,我會付出最大的努力,但是現(xiàn)在看來,我不認(rèn)為我可以完成。”你的老板可能不喜歡那樣,但是這是事實。如果你的老板不喜歡這種事實,那就是她的問題了。
\InfoQ:您認(rèn)為,“業(yè)務(wù)人員和開發(fā)人員必須*很好地*相互合作,項目中的每一天都不例外。”但是我們?nèi)绾伟l(fā)現(xiàn)不是*很好地*相互合作?您能詳細(xì)說明“很好地相互合作”看上去是什么樣子?\
\Weinberg:有很多很好地相互合作的方式,并且當(dāng)他們沒有很好地相互合作時是很容易辨別的。我看到的最常見的癥狀是你之前提的問題:是否每一方都做好了隨時奉獻(xiàn)到為另一方解決問題的行列中去?如果不是,甚至于他們都沒有在一起工作,那么很明顯他們沒有很好地相互合作。\
他們知道對方的名字嗎?他們不需要是死黨,但是他們必須互相尊重。當(dāng)他們在見面時,是否大部分問題都得到了解決?答案不需要是提問者想聽到的,但是他們的問題是否都做出了回應(yīng),沒有被忽略?那些是我最常見到的雙方?jīng)]有很好地相互合作的跡象。\
另外一種跡象則不能通過觀察他們工作發(fā)現(xiàn),但是,不管如何他們都會公開討論他們在一起工作的好壞程度。向外界抱怨(比如經(jīng)理或者顧問)是他們沒有很好地相互合作的一個明確的跡象。
\InfoQ:敏捷宣言寫明,它更傾向于面對面的交流。在書中您認(rèn)為這不應(yīng)該是溝通的唯一方式。您能提供一些其它的溝通方式可能更合適的情景案例嗎?\
\Weinberg:無論何時,都應(yīng)有一個關(guān)于未來行為準(zhǔn)則的協(xié)議,即使這個協(xié)議是面對面達(dá)成的,它也應(yīng)該遵循書面文件進(jìn)行交換。無論何時,當(dāng)對日期或者金錢進(jìn)行討論的時候,需要以書面形式詳細(xì)記錄確切的數(shù)字。這同樣也適用于產(chǎn)品需求——尤其是對需求進(jìn)行變更的時候。無論何時,準(zhǔn)確性是非常重要的,記錄永遠(yuǎn)要優(yōu)先于空中的手勢或者震動。
\InfoQ:你在書中提到,從維護(hù)的角度,“最低限度,每段代碼都應(yīng)該有它的“為什么”記錄。”您能詳細(xì)闡述一下嗎?\
\Weinberg:關(guān)于敏捷在產(chǎn)品維護(hù)方面的書刊實在是在太少了。如果你曾經(jīng)維護(hù)過別人的代碼(往往也是你自己的),你就會意識到知道為什么這么做,而不是僅僅知道如何做多么的重要。舉例來說,你不能輕易移除那些看上去冗長或者多余的代碼同時保證它可以安全運(yùn)行,除非一開始你就知道它為什么在那兒。不能記錄“為什么”無疑是代碼隨著時間推移而衰變的主要原因。
\InfoQ:回顧軟件開發(fā)的歷史,您能說說這些年軟件行業(yè)發(fā)展的亮點和不足嗎?\
\Weinberg:當(dāng)然可以!\
亮點:\
- 一些真正偉大的人,比如Grace Hopper和Harlan Mills,以及數(shù)以百計的名字不是那么廣為人知的人\
- 廉價的可及性,幾乎每個人都能方便使用的計算能力\
- 對質(zhì)量關(guān)注的增長,至少被許多專業(yè)人士關(guān)注\
- 工具和流程的可用性,用來指導(dǎo)和幫助我們追求品質(zhì)
不足:\
- 垃圾郵件\
- 濫用廉價的計算能力,使人們相信低質(zhì)量的軟件“就像計算機(jī)廉價的計算能力”\
- 對行業(yè)沒有價值的,成百上千的編程“語言”的隨意擴(kuò)散\
- 風(fēng)行一時的對“捷徑”(magic bullets)的追求
InfoQ:未來您期待軟件開發(fā)將給我們帶來什么?\
\Weinberg:正如Woody Allen和其他人所言,“我可以預(yù)測任何事情,除了未來。”例如,在1956年,我預(yù)測FORTRAN不會持續(xù)很久。也許它不會,但是很明顯,它的使用壽命將比我長久。這應(yīng)該讓你知道,不要讓我來預(yù)測未來。
\InfoQ:您對剛從大學(xué)出來立志成為專業(yè)軟件開發(fā)人員的青年有什么忠告嗎? 以及在軟件開發(fā)方面有很長一段經(jīng)歷,但是希望提高他們技能的開發(fā)人員呢?\
\Weinberg:我可能無法預(yù)測未來,但是我仍然還記得過去。大約30多年前(1984),我發(fā)表了一篇文章,題名為“寫給我的兒子John,在他畢業(yè)取得計算機(jī)科學(xué)學(xué)位之際的一封信,忘記事實。”我很慚愧地說,這封信滿滿的都是忠告,但是我更自豪的是,John(現(xiàn)在叫Keats)居然執(zhí)行了一些。也許一些忠告真的幫助他實現(xiàn)了他作為程序員的非凡的職業(yè)生涯。如果/當(dāng)我找到這封給John Keats的信時,如果合適,我會把它添加到書里去,重新出版,這樣你的讀者對你提的重要問題就會得到一個經(jīng)過一段時間考驗的答案。
\關(guān)于本書作者
\Gerald Weinberg是名作者,出版了超過100本書,包括最暢銷的《Secrets of Consulting》,其它非小說系列,和廣受歡迎的小說《Women of Power》。他是Weinberg國際咨詢公司負(fù)責(zé)人,他的客戶遍布州和國家政府;教堂;大學(xué);醫(yī)療中心;以及美國國會圖書館。紀(jì)念文集《The Gift of Time》((Fiona Charles編輯)是在他75歲生日時作為表彰他工作成就的禮物。他的網(wǎng)站http://www.geraldmweinberg.com和http://www.thewomenofpower.org。
\查看英文原文:Q\u0026amp;A on the Book Agile Impressions
總結(jié)
以上是生活随笔為你收集整理的《Agile Impressions》作者问答录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java读写大文本文件(2GB以上)
- 下一篇: lintcode: 把排序数组转换为高度