-99921 火龙果·整理 uml.org.cn 跟我学企业敏捷开发 IThis is the PDF file for the Agile Software Development book contents.It is licensed under the Creative Commons Attribution-Non Commercial-Share Alike 3.0 license.I hope you enjoy it,I hope it helps you learn the software development,and I hope you'11 continuously watch this http://github.com/larrycai/sdcamp,will be happy if you follow my weibo http://weibo.com/larrycaiyu
跟我学企业敏捷开发 1 1 This is the PDF file for the Agile Software Development book contents. It is licensed under the Creative Commons Attribution-Non Commercial-Share Alike 3.0 license. I hope you enjoy it, I hope it helps you learn the software development, and I hope you’ll continuously watch this : http://github.com/larrycai/sdcamp, will be happy if you follow my weibo http://weibo.com/larrycaiyu
火龙果·整理 uml.org.cn 前言 对于一个刚加入企业的人来说,一个急切想知道的问题是:企业的软件开发到底是什 么? 这本小册子就用几十页左右的内容把企业软件开发的方方面面给介绍一下。既然取名 为“跟我学”,就表明它是比较浅显的,很容易通过实践来了解。又由于比较薄,很多知识 点只是入门而已,需要看许多的参考资料才能掌握的。 但同时也不代表里面的东西是很浅薄的,恰恰相反其中的内容应该是最前沿的,最能体 现什么是真正的敏捷开发。 为什么写这本书 我在爱立信研发工作多年,从2001年开始研究软件开发的流程,先是极限编程,后来又 到敏捷。开始在小团队中推动,慢慢地扩大到整个部门,也因此喜欢上了敏捷。后来又参加 了Scrum的培训,认识了很多敏捷社区的朋友,了解到了更多更好的企业软件开发方式。 我也一直战斗在第一线,以写代码为乐趣,有很多亲身经历。同时也在多媒体部创建和 组织了无数次新人的专业培训,不断把我的很多经验传授给他们。因为我相信软件开发中人 是最重要的,我希望新人能够得到专业的培训,以此来快速适应企业的文化并成长。 在敏捷社区的一次讨论中,很多朋友建议我把经验分享出来。我突然意识到这是一个很 不错的建议,虽然我痛恨写作(语文不好一直是我的一个心病),但或许能用这次机会来加 强自己这方面的能力。 而且我是喜欢自由,也喜欢分享的技术爱好者,推崇用开源的技术方式来写技术类的书 籍,希望能推动国内的开源技术书的发展。 不管怎样,我愿意分享我们公司培养新人敏捷开发的方式,期望你们能少走弯路。 *养成好的开发方式。站得高,看得远。不要一开始就纠缠于差的环境。 幸养成团结开放的心态。软件是开放的世界,要勇于共享,不断进步。 总之,特别想用我们的经验来告诉埋头苦干的人,要站在巨人的肩膀上。 特色 这里边讲到的内容我们早已经在爱立信公司实践多次,特别适合刚加入企业的新员工, 来快速地熟悉企业所使用的实践技术。 每一章内容都配备足够的练习,通过练习使员工掌握后面的理论知识,来一步步地了解 软件开发的各个角落。 每章内容都是精心挑选的,难度适当。各章之间都有很好的衔接,也可独自成为一个知 识点,可以独立章节学习,当然更加推荐连续学习
前言 对于一个刚加入企业的人来说,一个急切想知道的问题是:企业的软件开发到底是什 么? 这本小册子就用几十页左右的内容把企业软件开发的方方面面给介绍一下。既然取名 为“跟我学”,就表明它是比较浅显的,很容易通过实践来了解。又由于比较薄,很多知识 点只是入门而已,需要看许多的参考资料才能掌握的。 但同时也不代表里面的东西是很浅薄的,恰恰相反其中的内容应该是最前沿的,最能体 现什么是真正的敏捷开发。 为什么写这本书 我在爱立信研发工作多年,从2001年开始研究软件开发的流程,先是极限编程,后来又 到敏捷。开始在小团队中推动,慢慢地扩大到整个部门,也因此喜欢上了敏捷。后来又参加 了Scrum的培训,认识了很多敏捷社区的朋友,了解到了更多更好的企业软件开发方式。 我也一直战斗在第一线,以写代码为乐趣,有很多亲身经历。同时也在多媒体部创建和 组织了无数次新人的专业培训,不断把我的很多经验传授给他们。因为我相信软件开发中人 是最重要的,我希望新人能够得到专业的培训,以此来快速适应企业的文化并成长。 在敏捷社区的一次讨论中,很多朋友建议我把经验分享出来。我突然意识到这是一个很 不错的建议,虽然我痛恨写作(语文不好一直是我的一个心病),但或许能用这次机会来加 强自己这方面的能力。 而且我是喜欢自由,也喜欢分享的技术爱好者,推崇用开源的技术方式来写技术类的书 籍,希望能推动国内的开源技术书的发展。 不管怎样,我愿意分享我们公司培养新人敏捷开发的方式,期望你们能少走弯路。 * 养成好的开发方式。站得高,看得远。不要一开始就纠缠于差的环境。 * 养成团结开放的心态。软件是开放的世界,要勇于共享,不断进步。 总之,特别想用我们的经验来告诉埋头苦干的人,要站在巨人的肩膀上。 特色 这里边讲到的内容我们早已经在爱立信公司实践多次,特别适合刚加入企业的新员工, 来快速地熟悉企业所使用的实践技术。 每一章内容都配备足够的练习,通过练习使员工掌握后面的理论知识,来一步步地了解 软件开发的各个角落。 每章内容都是精心挑选的,难度适当。各章之间都有很好的衔接,也可独自成为一个知 识点,可以独立章节学习,当然更加推荐连续学习
火龙果·整理 uml.org.cn 本书结构 从第一章到第六章,每章都对应一门2-3小时的课,第七章是单独的一天来实践项目开 发。附录A是如果在企业内部采用本书安排的一个模板。 ◆第一章:敏捷开发和Scrum ◆第二章:版本控制Git和代码审阅Gerrit:使用分布式系统Git与Gerriti系统 ◆第三章:持续集成:使用Jenkins、Maven、Java项目 ·第四章:如何写好Java程序:Java的覆盖率,单元测试,重构,测试驱动开发 *第五章:需求管理和实例化需求Specification by example 幸第六章:用Cucumber来实例化需求 *第七章:项目实践:Game of1ife 适合读者 本书适合所有正在看的人,否则你也不会读到这里。作为作者来说,我认为此书尤其适 合以下读者: 企业新人 进入企业,对如何正确地开发有点朦胧,觉得什么都重要,又看上去什么都不是那么要 紧。入职的导师可能水平也不是很够,项目老是很紧张,需求要不是很清楚;有人抱怨敏捷 是浆糊,又有人说敏捷是必须得。这些很常见的问题,很少在前期了解。 本书希望给你一个比较高的起,点,告诉你优秀的软件开发是怎么做的,它会帮助你建立 一个好的软件开发的价值观。 同时里面会讨论到相关的开发技术,可能你还没用上,这正好可以给你一个比较的机 会。去了解一下各个技术的优缺点,或许你有机会推动你公司的软件开发水平。如果有更好 的技术,别忘了通知一下。 技术经理 作为技术经理,已经在一个企业呆了一段时间了,可能对一切都习以为常;有时候有心 改变,又无从下手。 本书希望给你一些启迪,让你了解企业软件开发可以怎么做,你可以翻阅你喜欢的章 节,照着试试。相信会给你带了一些启发。 同时本书也给你介绍了如何在一个公司做专业的敏捷开发培训,你完全可以基于本书的 内容,裁剪成适合你公司的内容。如果你真得这么做了,我会万分感想,因为这就是我写书 的目的之一。 大学学生 快大学毕业了,也写了不少代码了,熟悉了很多算法、DE用得也甭溜。突然发现找工 作老问有没有经验;或者直接问什么是敏捷开发、持续集成等等。你或许突击了解过这些名 词,但是具体为什么没有切身体会。 本书就是给你介绍一个企业软件开发碰到的方方面面,结合很多的实际例子,让你来通 过实践的机会来体会企业中为什么老是谈到这些东西
本书结构 从第一章到第六章,每章都对应一门2-3小时的课,第七章是单独的一天来实践项目开 发。附录A是如果在企业内部采用本书安排的一个模板。 * 第一章:敏捷开发和Scrum * 第二章:版本控制Git和代码审阅Gerrit:使用分布式系统Git与Gerrit系统 * 第三章:持续集成:使用Jenkins、Maven、Java项目 * 第四章:如何写好Java程序:Java的覆盖率,单元测试,重构,测试驱动开发 * 第五章:需求管理和实例化需求Specification by example * 第六章:用Cucumber来实例化需求 * 第七章:项目实践:Game of life 适合读者 本书适合所有正在看的人,否则你也不会读到这里。作为作者来说,我认为此书尤其适 合以下读者: 企业新人 进入企业,对如何正确地开发有点朦胧,觉得什么都重要,又看上去什么都不是那么要 紧。入职的导师可能水平也不是很够,项目老是很紧张,需求要不是很清楚;有人抱怨敏捷 是浆糊,又有人说敏捷是必须得。这些很常见的问题,很少在前期了解。 本书希望给你一个比较高的起点,告诉你优秀的软件开发是怎么做的,它会帮助你建立 一个好的软件开发的价值观。 同时里面会讨论到相关的开发技术,可能你还没用上,这正好可以给你一个比较的机 会。去了解一下各个技术的优缺点,或许你有机会推动你公司的软件开发水平。如果有更好 的技术,别忘了通知一下。 技术经理 作为技术经理,已经在一个企业呆了一段时间了,可能对一切都习以为常;有时候有心 改变,又无从下手。 本书希望给你一些启迪,让你了解企业软件开发可以怎么做,你可以翻阅你喜欢的章 节,照着试试。相信会给你带了一些启发。 同时本书也给你介绍了如何在一个公司做专业的敏捷开发培训,你完全可以基于本书的 内容,裁剪成适合你公司的内容。如果你真得这么做了,我会万分感想,因为这就是我写书 的目的之一。 大学学生 快大学毕业了,也写了不少代码了,熟悉了很多算法、IDE用得也甭溜。突然发现找工 作老问有没有经验;或者直接问什么是敏捷开发、持续集成等等。你或许突击了解过这些名 词,但是具体为什么没有切身体会。 本书就是给你介绍一个企业软件开发碰到的方方面面,结合很多的实际例子,让你来通 过实践的机会来体会企业中为什么老是谈到这些东西
火龙果·整理 uml.org.cn 退一步说,看完后至少你简历上又多了好几条知识,不过千万不要说掌握,还是说“了 解”或“知道”谦虚一点吧。 最好的方式就是到爱立信上海研发中心多媒体部来做实习生吧,我们会安排最专业的老 师给你上课,有完备的培训材料和环境,保证你了解得更多。 还犹豫什么,找我们吧?当然对技术没追求的就算了。 如何使用本书 这本小册子最好是公司培训的参考手册,一般应该有专业的老师准备好对8-10人的团队 进行指导。 当然你可以照着自学,多看看参考资料,毕竞这是一本软件开发的入门书,高度够了, 深度不够。 几天的学习会很有意思,学完后,你会意识到在企业中你再也不可能什么都会,要抛弃 单兵独斗的想法,要学会团队合作,更要持续地学习提高。而且要有激情,否则什么都学不 到。 如何写作本书的 本书也是用敏捷的方式来写作的,我在Windows(希望早日能用MBA)的Notepad-+编辑 器里用larkdown的文本文件写内容,然后在共享目录的虚拟机中,一个命令生成所有的其他 格式(如PDF、mobi、epub);Git是我使用的版本控制系统。 本地测试通过后,我会提交到GitHub中去,同时架设了持续集成服务器,会对我最新内 容再次检测,自动产生电子书。 这方面有兴趣的朋友可以继续翻看我在写的小书【跟我学开源技术书】https:/ github.com/larrycai/kaiyuanbook. 自从花了一周时间写出第一版后,我就力争持续发布,同时我一直在纠结本书的深度和 广度。 封面 因为自己爱好设计排版,就自己DIY了一下,封面是瑞典南部军港卡尔斯克鲁纳(Karl- skrona)市外面斯图尔克岛(Sturko)的一角,用Windows PowerPointi制作完成
退一步说,看完后至少你简历上又多了好几条知识,不过千万不要说掌握,还是说“了 解”或“知道”谦虚一点吧。 最好的方式就是到爱立信上海研发中心多媒体部来做实习生吧,我们会安排最专业的老 师给你上课,有完备的培训材料和环境,保证你了解得更多。 还犹豫什么,找我们吧?当然对技术没追求的就算了。 如何使用本书 这本小册子最好是公司培训的参考手册,一般应该有专业的老师准备好对8-10人的团队 进行指导。 当然你可以照着自学,多看看参考资料,毕竟这是一本软件开发的入门书,高度够了, 深度不够。 几天的学习会很有意思,学完后,你会意识到在企业中你再也不可能什么都会,要抛弃 单兵独斗的想法,要学会团队合作,更要持续地学习提高。而且要有激情,否则什么都学不 到。 如何写作本书的 本书也是用敏捷的方式来写作的,我在Windows(希望早日能用MBA)的Notepad++编辑 器里用Markdown的文本文件写内容,然后在共享目录的虚拟机中,一个命令生成所有的其他 格式(如PDF、mobi、epub);Git是我使用的版本控制系统。 本地测试通过后,我会提交到GitHub中去,同时架设了持续集成服务器,会对我最新内 容再次检测,自动产生电子书。 这方面有兴趣的朋友可以继续翻看我在写的小书【跟我学开源技术书】 https:// github.com/larrycai/kaiyuanbook。 自从花了一周时间写出第一版后,我就力争持续发布,同时我一直在纠结本书的深度和 广度。 封面 因为自己爱好设计排版,就自己DIY了一下,封面是瑞典南部军港卡尔斯克鲁纳(Karlskrona)市外面斯图尔克岛(Sturko)的一角,用Windows PowerPoint制作完成
-999%1 火龙果·整理 uml.org.cn 版本变化 下面是每次的版本变化清单,你也可以自己在Github上查看:https:/github.com/ larrycai/sdcamp/compare/v1.0.0...v1.2.0 2012年2月14日-1.2.0 一个比较完备的发行版,60页左右。 *加强了书的格式,解决了中文字体显示的问题,加上了色彩,加上了图书推荐页。 ◆加强了书的格式,前言和致谢挪到了目录前,附录区别于正常章节。 幸补全了Git、持续集成、实例化需求、Cucumberi章节。 2012年1月12日-1.0.0 第一次正式发布,40页左右,开始内部培训使用,包含完整的章节,但有些章节内容不 完整
版本变化 下面是每次的版本变化清单,你也可以自己在Github上查看:https://github.com/ larrycai/sdcamp/compare/v1.0.0...v1.2.0 2012年2月14日–1.2.0 一个比较完备的发行版,60页左右。 * 加强了书的格式,解决了中文字体显示的问题,加上了色彩,加上了图书推荐页。 * 加强了书的格式,前言和致谢挪到了目录前,附录区别于正常章节。 * 补全了Git、持续集成、实例化需求、Cucumber章节。 2012年1月12日–1.0.0 第一次正式发布,40页左右,开始内部培训使用,包含完整的章节,但有些章节内容不 完整