軟件開發之韻

所属分类:軟件工程及軟件方法學  
出版时间:2010-5   出版时间:電子工業出版社   作者:雷劍文,陳振沖   页数:295   译者:楊艷  

前言

  本書幫助我們發現自己的軟件方法學,這種方法同時尊重人員與實踐的軟件開發的雙重韻律。  深夜,躺在馬拉維湖的康帝海灘,我們仰望晴朗的天空。無數小星星向我們眨著眼。有一點疲倦,或許是這遙遠神秘的光使人迷幻,我們閉上眼楮,開始傾心聆听︰湖水輕柔地拍打著岸,深夜那微小和諧的聲音,心好像隨著有韻律的、深深的呼吸而悸動。大自然就是一曲不可思議的韻律合奏。我們的地球在太陽系的軌道上轉動不息,日日夜夜,四季循環,永不休止。隨著自然的韻律,我們醒來學習,入睡記憶,寫寫改改我們的程序,在完美的韻律合奏中與宇宙間全能的程序融為一體。從心跳到步伐,韻律是動力十足、充滿生機的力量。這世界如此復雜、好似混沌,我們努力追求緣由並確認關聯,但有時只有發現韻律才可以讓我們看到普遍存在的規律。  就像人類其他的努力一樣,軟件開發復雜並充滿了泛化與關聯,但是沒有規則。我們用規範的軟件開發模型和管理學幫助構造軟件,但是紛擾的軟件開發、不斷變化的開發團隊、新的需求與任務,意味著根本無法保證上一次成功的方法就能在下一次同樣成功。實際上,有的團隊領導看上去並沒有采用什麼開發方法,因而被別人嘲笑是“即興開發”,他們反而能夠按時完成軟件項目。他們成功的秘密就在于能夠理解軟件開發的韻律。  面對最讓人頭疼的軟件開發問題,了解韻律將給予我們一個新的視角。一個團隊的成功方法有時並不適合另一個團隊,因為即使是最積極肯干的軟件團隊,也必須在理解一種新方法的韻律後,才可以成功地得以運用。在管理復雜而多元的軟件開發項目時,團隊和個人的開發與進程之間的和諧運作是最關鍵的,然而韻律卻是一個經常被忽視的主題。  韻律並不是一種新的開發方法。當前已經有許多種不同的開發方法,本書並不打算介紹一種新的軟件開發和項目管理的框架。目前最需要的不是更多的方法,而是更智慧地使用我們選擇的方法。最好的方式是,理解並和諧地在團隊所采用的開發方法的韻律下工作。如果不理解,不在韻律下和諧地工作,則反而會被選用的開發方法拖累而並非從中受益,會使項目冗長艱難。  本書不是為新手所寫的。實際上,我們認為你可以釣魚並已經釣到了一些魚了。本書是為了那些老手,想改進甚至于想重新發現軟件開發的技巧與技術的人而寫的。當我們習慣于只從一個單一的角度看問題時,這些東西很容易被遺忘。就像正在釣魚的人,用靈巧的手腕,穩定的韻律甩出魚線,我們希望能幫助你釣到更多的魚,並幫助你享受這一過程。

内容概要

  《軟件開發之韻︰和諧敏捷、珠聯璧合的開發》是一本關于推薦、推廣、推崇敏捷開發的軟件方法學教材,這種方法同時尊重人員與實踐的軟件開發的雙重韻律。全書包括兩部分,共9章。第一部分由三章組成。第1章介紹軟件開發韻律的概念,第2章、第3章分別討論人與實踐,闡明軟件開發的一些基本概念並提出幾個重要的問題,如︰“什麼是敏捷價值?”“從開源軟件開發中我們能學到什麼”等。第二部分包括其余的六章,都是關于開發韻律的。軟件開發韻律是一個強大的比喻,可幫助我們分析何時更好地采用一種軟件開發的方法,使軟件開發實踐更加和諧,軟件的質量也得以提升。  另外,《軟件開發之韻︰和諧敏捷、珠聯璧合的開發》以軟件開發實踐中的點滴作為出發點展開討論,描述了一些項目片段和工業實例,注重用事實說話。全書行文深入淺出,親切自然,並配以很多有趣的漫畫來闡述書中的概念,值得讀者細細品讀,定當回味無窮。  適合閱讀《軟件開發之韻︰和諧敏捷、珠聯璧合的開發》的,不僅僅是處在軟件行業第一線的程序員;各個軟件開發單位的團隊領導、項目主管、高層管理人員,以及人力資源經理、文檔撰寫人員、程序開發工具的設計者、程序開發語言的設計者,甚至所有其工作與程序開發有關的人,都能從《軟件開發之韻︰和諧敏捷、珠聯璧合的開發》中得到啟發。

作者简介

  KIM MAN LUI博士,是一位大學(Hong Korlg Polytechnic University)電子計算學系的訪問教授。他是Oracle認證數據庫管理員和Sun認證、Java程序員。  KEITH C.C.CHAN博士,是香港理工大學電子計算學系的教授和系主任,他曾經是IBM設在多倫多的IBM加拿大實驗室(IBM Canada Laboratory)的高級分析員。  譯者簡介︰  楊艷,長安大學信息工程學院講師。研究方向包括︰智能交通系統、交通安全、駕駛員心理學和軟件工程管理等。主要研究興趣︰檢測評價車內外駕駛環境,為科學地制定交通策略提供理論依據,並致力于利用改善車內外軟硬件環境以提高交通安全。  丁大江,大學畢業後就一直做軟件編程,迄今已有十余年,有完成任務的喜悅,更多的是陷入幾乎絕望的煩惱。好的編程方法可以大大縮短編程過程,希望這本書能對大家有所幫助。  倪神昭,福建泉州籍人。2005年畢業于廈門大學自動化系,同年進入英國倫敦大學研讀智能系統碩士學位。2010年博士畢業于南安普頓大學計算機系,主修機器學習與機器翻譯。  王天驕,本科畢業于北京交通大學交通運輸學院,取得學士學位。至本書截稿時,就讀于英國南安普敦大學土木與環境工程學院交通運輸研究組,攻讀博士學位。研究興趣包括︰道路使用者行為,交通建模與仿真,智能交通系統等。  楊軍,總後直屬某部助理工程師,管理學、軍事學學士,後勤管理信息化碩士。研究方向︰後勤信息化理論與實踐、基于多Agent的信息系統協同等。  張靖,2004年畢業于長安大學,2005年就讀于南安普頓大學交通規劃與工程碩士專業,2006年畢業後繼續在該校攻讀博士學位。

书籍目录

第一部分:基本概念第1章 程序员不死 21.1 开发软件与修建隧道相比 31.1.1 美好的旧时光 31.1.2 情况越变化,他们越相同 41.1.3 软件产品的背后 51.1.4 成交或不成交 81.2 哆來咪哆來咪 101.2.1 迭代模型 121.2.2 编码后修复模型 141.2.3 混沌 151.2.4 重要的方法 191.3 软件开发韵律 221.3.1 五线谱示例 231.3.2 博弈理论 261.3.3 启动-结束示图(In-Out Diagram) 281.3.4 精通-培训示图 291.3.5 不用数学 301.3.6 去哪里探索韵律 31参考文献 32第2章 了解程序员 342.1 个性及智力 362.1.1 编程高手 372.1.2 了解你的团队 382.1.3 招募程序员 402.2 外包程序员 422.2.1 本土化的程序员 432.2.2 程序员,文化及团队 442.3 经验式管理 452.3.1 对待因果关系不严谨 462.3.2 谨慎借用经验 472.3.3 从现在做起 49参考文献 51第3章 从开源做起 523.1 流程和实践 553.1.1 项目的四个P 573.1.2 敏捷的价值 603.1.3 零起点合作 613.2 开源软件开发 623.2.1 软件克隆 633.2.2 软件质量 643.2.3 启动流程 653.2.4 开源开发团体 663.2.5 用户程序员 673.2.6 参与者角色 683.2.7 快速发布 693.2.8 黑盒编程 723.2.9 OSS实践 743.3 类OSS开发 743.3.1 敏捷实践 753.3.2 近邻交流 763.3.3 松耦合和紧耦合 773.3.4 同一地点的软件开发 783.4 结论 79参考文献 80第二部分:韵律第4章 抄袭编程 844.1 抄袭 864.1.1 已有的代码 874.1.2 社交网络分析 884.1.3 被抄袭 894.1.4 让人人成为程序员 924.1.5 模式语言 964.1.6 软件团队能力 984.1.7 粗线条设计 1014.1.8 培训不是解决方案 1024.2 抄袭最快 1034.2.1 不道德 1044.2.2 无先例的代码 1054.2.3 人际关系网 1064.2.4 抄袭的韵律 1074.2.5 工作中抄袭 1104.3 抄袭的生意与韵律 1124.3.1 15分钟的商业报告 1134.3.2 市场调研 1154.3.3 聊天机器人 1174.3.4 老歌新唱 122参考文献 125第5章 结对编程 1275.1 艺术与科学 1285.1.1 最佳搭档 1295.1.2 喧闹的程序设计 1305.1.3 仅仅是培训 1315.1.4 付费给观众 1315.2 两个世界 1325.2.1 没钱的世界 1335.2.2 金钱引导的世界 1355.2.3 经济学 1365.2.4 虚构的质量——时间关系 1365.2.5 加速运行时间 1375.2.6 关键路径法 1385.2.7 为什么是两个结对而不是三个:反组织现象 1415.2.8 软件的需求是个拼图 1425.3 程序设计任务需求 1445.3.1 2+4=6 1445.3.2 2+4=4 1455.3.3 2+4=3 1465.3.4 2+4≥2 1475.3.5 2+4=? 1485.4 结对编程不仅仅是程序设计 1495.4.1 用代码设计 1505.4.2 结对设计 1525.4.3 韵律结对编程 1545.5 结对编程团队指导 156参考文献 158第6章 重复编程 1616.1 结对编程的争议 1646.1.1 编程是一项特殊的工作吗 1646.1.2 三个脑袋是否比两个好 1656.1.3 不可重复的实验 1666.2 重复编程 1676.2.1 相反的结果 1716.2.2 原理 1736.2.3 三人一组编程的效率不高 1746.3 旋律:结对-单独-结对-单独 1766.3.1 持续性 1776.3.2 联系 1796.3.3 动机 1836.4 证明布鲁克斯法则的一个特例 1866.4.1 士气低落 1886.4.2 沟通的成本 1896.4.3 适用于延误项目的旋律 191参考文献 193第7章 敏捷组队 1967.1 项目团队 1997.1.1 自组织团队 2017.1.2 团队中的团队 2027.1.3 项目团队的组成 2047.1.4 团队生命周期与学习曲线 2057.2 生产力 2087.2.1 生产力的错觉 2087.2.2 集体代码所有权 2097.2.3 责任、职责和透明度 2107.3 问题与出问题的人 2117.3.1 旋律:困难——重组 2137.3.2 组队原则 2157.4 拯救即将失败的项目 2177.4.1 项目红绿灯报告 2187.4.2 一个商业案例 2197.4.3 指导委员会会议 2197.4.4 敏捷组队发挥作用 2217.5 提防Iago(埃古) 222参考文献 223第8章 增量设计 2258.1 建模和计划 2268.1.1 敏捷计划 2278.1.2 使用功能性模块进行设计 2308.1.3 简洁设计 2318.1.4 总体成本的概念 2328.2 返工还是复用 2358.2.1 无法避免的返工 2368.2.2 即兴创作 2378.2.3 预先设计 2398.3 即时的软件开发 2408.3.1 CMM的旋律 2418.3.2 一次工厂参观 2448.3.3 走来走去的工人 2458.3.4 即时软件开发 2478.3.5 增量式设计 2488.4 需求复杂性 2508.4.1 遗漏的需求 2538.4.2 冲突的需求 2548.4.3 迅速改变的需求 2548.4.4 需求和设计 2568.5 重构 2568.5.1 重构活动 2598.5.2 通过挑战进行重构 2608.5.3 为了设计模式进行重构 2638.5.4 故意制造错误 264参考文献 264第9章 测试驱动开发 2679.1 逆向瀑布 2709.1.1 设计-编码-测试 2709.1.2 测试-编码-设计 2719.2 测试优先编程 2729.2.1 测试和验证 2729.2.2 断点测试 2739.2.3 支撑实践 2759.3 韵律:测试-编码-重构 2769.3.1 简单的案例 2789.3.2 自动操作 2799.3.3 意识革命 2819.3.4 用来合作的测试案例 2849.4 快速的软件过程升级 2869.4.1 培训程序 2869.4.2 项目规划 2879.4.3 项目跟踪 2889.4.4 软件质量 2899.4.5 软件配置 2909.4.6 人员纪律 291参考文献 291尾声 各种乐声的混合 293开发旋律和您 294适用于具有更多重复性编程任务的开发旋律 295适用于具有挑战性的任务的开发旋律 295

章节摘录

  最终而言,历史和市场可能会消除这些差异,但是在项目实施的当下,对每个项目管理者来说这都是需要解决的问题。管理者需要了解他们要外包的地区信息,而这些外包地区的人员及文化有着一系列你所不熟悉的、他们本土化的标准。我们不能因为当今众多事物的全球化,因为有时你不需要跟你的团队成员面对面接触,就想当然地认为团队成员的性格与你无关了。  对于一个良好的团队工作来说,用人得当非常必要。要是你对发展中国家影响到程序员行为的地区约束缺乏了解,那你就必须把自己的最好水平准备到位,当然这来自于你培训或带领过的各地软件开发团队的经验。  2.2.1 本土化的程序员  在欧洲,制造业已经移到了东欧;在美国,从北部移到了南部,甚至跨过国界移到了墨西哥。在亚洲,制造业在曾经的农村地区找到了其适应的场所。制造业一直在这么做——那就是转移到地价和劳动力更便宜的地方,转移到那些当地政府一心想提供资助、打算新建的基础设施上。同样的道理,像制造业的进发一样,无数小型的当地软件开发团队也以同样的方式出现了,他们或是用自己的团队或是将软件项目转包出去,从而对外提供系统解决方案。  这些软件开发团队往往会受到当地环境的约束。他们大多数是由当地人组成的,各自为了不同的目的,队伍中也缺乏精英人才。在这种地区中,一个人如果想组建软件开发团队,除了在大型公司总部及顶级研究型大学之外,都一定要意识到在欠发达城镇和发达城市中团队的业务水平和工作态度往往有着巨大的差别——即使这两个地区的地理位置非常接近。而当政府着力扶持某个城市或地区时(比如在中国),这个地区与其他地区之间的差异会更加迅速地持续扩大。

编辑推荐

  《軟件開發之韻︰和諧敏捷、珠聯璧合的開發》以提高軟件質量和效益為目的,針對敏捷開發實踐的靈活性,從一種易于接受的、創新的視角來看待軟件開發  當敏捷開發在你的組織中運行得並不像你所期望的那樣順利的時候,或是你在敏捷開發和嚴格開發方式之間猶豫不決的時候,往往就需要停下來思考軟件開發的韻律了!  敏捷軟件開發是一種十分流行的開發方式,這種開發方式一直在影響著人們對于敏捷實踐和傳統的嚴格開發方式之間的聯系的認識。在《軟件開發之韻︰和諧敏捷、珠聯璧合的開發》中,兩位作者LUI和CHAN向讀者闡述了,在敏捷實踐的基礎上,如何采用其中一種開發方式並使它與另一種開發方式相結合,以實現一種“協同作用”,這種協同作用也被作者定義為軟件開發的韻律。作者展示了這些開發旋律如何能夠互相協同,以實現一種合力作用,從而使它們在協同工作方式下所發揮的效用比單獨使用更加強大。《軟件開發之韻︰和諧敏捷、珠聯璧合的開發》還使用比喻的方式向讀者展示了如何解決一些典型的軟件管理中的爭議性問題,並介紹了如何應對在敏捷軟件管理中常見的一些困難。

图书封面




    軟件開發之韻下載



用户评论 (总计0条)

 
 

 

計算機與互聯網 PDF免费下载,軟件工程及軟件方法學PDF免费下载。 计算机教程网 

计算机教程网 @ 2017