碍于个人能力极度欠佳,所以即使我大致了解了一下何谓“Agile Guide”(敏捷开发),也不很能理解其中的软件工程思想,只能大概谈一下我的理解。

我所理解的“敏捷开发”,应该是一种特殊的、相较于传统开发方式更值得程序开发人员重视和推崇的软件工程开发方法。这种开发方法之所以能赢得更多程序开发人员、青睐,主要原因就在于,这种方式摒弃了原来up-front的设计方案,拒绝正在过时的“瀑布式开发”,而是让开发人员通过“敏捷建模”的方式,从“简单、可持续、沟通”等等多个方面入手,旨在将目标项目划分成可以独立设计和调试、但又相互联系的子项目,并进行持续集成,从而减少错误、提高效率,更快更好地构建目标工程。而同时,“敏捷建模”是允许客户以项目开发的成员的身份,参与到项目实现的过程中的,如此一来,程序的直接开发人员便能在不断地优化程序的过程中,更好地满足客户的需求;另外的,客户参与到子项目的测试中,有利于检验子程序是否符合自己的需求,并让程序开发人员及时地重构程序,避免在集成项目的过程中,因为个别项目的失败导致主要项目的失败。这实际上是一个迭代过程,如此一来能真正提高工程实现的效率!

就该文章的叙述而言,我并不是很好地理解了“敏捷开发”的核心,所以我便直接在网上搜索了部分资料,了解到“敏捷开发”及对应的“敏捷建模”都有其对应的核心价值,包括“沟通、简单、反馈、勇气、谦逊”,其中前四点也是“极限编程”(XP)的核心价值观。虽然字面上有些抽象,但其实不难理解。这几点正好就反映了“敏捷开发”的开发特色,即:主张统一,使用统一的编码库和编程规范,便于程序开发人员沟通交流;主张简单,以最简单的设计方式实现分割的独立的子程序,并在融合了客户需求的基础上不断集成,在持续集成的过程中,开发人员根据客户的要求和设计人员的设计,快速地高效率地不断地构建或者重构项目,从而以最高效的方式实现目标工程;而这个目标工程是抛弃了一切不必要的设计的,因为“简单”原则要求如此;同时这又是一个可持续优化地项目,开发人员将根据设计者的要求进一步完善工程。

另外,关于“设计已死”的命题,原文作者也说了,这并不是正确的。虽然“敏捷开发”在某种程度上是拒绝在工程实现开始便对工程的每个步骤进行详尽的筹划和设计,因为正如文章所说,预先考虑的问题并不能保证全面,如此设计,可能导致在实现工程的过程中,不断遇到新的问题,不断进行调试,从而导致工程越来越复杂;但实际上,“敏捷开发”并不意味这放弃设计,也就是说,所谓的“敏捷开发”与UML等设计技术是不相互排斥的,只是使用的方式有所不同罢了。“敏捷开发”采取了Planned Design的方法,由设计者自行设计、再由程序实现人员实现程序。而对于每个单元,有其自己的单元设计,在“敏捷开发”的过程中,不同单元的设计都能最终聚合在一起,从而最终实现工程!

在查阅资料的过程中,我看到,原来结对编程也是“敏捷开发”的一个阶段。通过结对编程,开发人员在同一台机子上进行程序编写,这样便能在写的同时又另一人监视,降低出错的概率。想来我和我的结对伙伴在编程时,倒也没有发现这其中的用处,只是相互商量,相互检查而已。不过,在以后的团队工作中,我们可以按照分配好的任务,各自完成自己的任务,从而更好地实现我们的工程!我们的团队成员已经按照一定的规则分配了相应的任务,接下来,我们便要好好地利用“敏捷开发”的方式,进行我们的程序设计。我们会争取让设计成员提前对我们的任务进行一定的简单设计,然后再有编程经理带领编程人员进行开发;另外,作为软件工程学习的一部分,我们团队虽然是开发人员,但也可以把自己定位为客户,由此去进行程序的优化和深层设计,这样就相当于让客户也参与到程序开发中了!如此一来,便能更好地提高我们团队的工作效率!

还有,我还了解到有一种类似的迭代式增量软件开发过程管理方法,称为Scrum。这也是可用于管理软件开发项目的。所以我们团队也肯能有所参考和学习,这将由我们讨论研究后再下定论!

以上,是11061169林谋武同学粗略学习“敏捷开发”的心得。

粗略学习《Agile Guide》后的总结的更多相关文章

  1. C语言学习一个月后感想

    C语言学习一个月后感想 感谢李晓东老板及计算机工程师联盟的学长学姐和某神秘同级同学的辛勤指导,感谢宋雨田的督促和陪伴. 初识C的1..体会 我本以为凭借瓜皮思维和花里胡哨操作可以让我熟练地学习语言,现 ...

  2. seajs学习一天后的总结归纳

    公司项目最近需要将js文件迁移到seajs来进行模块化管理,由于我以前主要接触模块化开发是接触的AMD规范的requireJS,没有接触过CMD规范,而且在实际项目中还没有用过类似技术.于是,我非常兴 ...

  3. AngularJs学习笔记--Guide教程系列文章索引

    在很久很久以前,一位前辈向我推荐AngularJs.但当时我没有好好学习,仅仅是讲文档浏览了一次.后来觉醒了……于是下定决心好好理解这系列的文档,并意译出来(英文水平不足……不能说是翻译,有些实在是看 ...

  4. linux学习 命令ll后字段的解释(转)

    原文链接:http://jz20080153.blog.sohu.com/161554070.html ls -l 列表信息详解 我们平时用ls -l 命令查看一个目录下的文件和子目录的详悉信息时,会 ...

  5. YII学习笔记-登录后的session的总结

    在YII框架的默认的登录后的session数据是id,name,__states这三个数据. 在搭配好YII框架环境后,可以使用admin/admin,来登录系统.如果在protected/views ...

  6. leetcood学习笔记-58-最后一个单词的长度

    题目描述: 第一次解答: class Solution: def lengthOfLastWord(self, s: str) -> int: L=s.strip().split(" ...

  7. mysql的粗略学习

    输入root进入mysql 试着输入了两个语法都没动静,输入\h终于有反应了 语法错误 show databases; //显示数据库 为什么没有人告诉我还有个英文下的分隔符号... 查的资料不是没有 ...

  8. webpack学习笔记——打包后直接访问页面,图片路径错误

    我说的这种图片路径错误是这样的,运行webpack-dev-server,一切正常,没有错误.当webpack之后,直接打开index页面,报错,图片找不到,找不到的原因是路径错误. 先看我的项目代码 ...

  9. 学习完HTML后的5大测试题----9.18

    考试题目   第一题: 布局出该效果 提示:使用DIV的border样式,调整边框粗细出现该效果,保留上边框,其它三个方向的边框需设置:border-left:100px solid transpar ...

随机推荐

  1. P4 Tutorials Flowlet Switching

    Github链接: Exercise 2: Implementing TCP flowlet switching P4 Tutorials Flowlet Switching 最近P4社区更新了Tut ...

  2. apiCloud检出代码出现以下图示错误:

    问题如下: Initialized empty Git repository in H:/simlpe/.git/ 已经在 H:\simlpe 完成必要的项目初始化工作正在尝试从代码服务器获取数据.. ...

  3. python 获取文件的修改时间

    os.path.getmtime(name) #获取文件的修改时间 os.stat(path).st_mtime#获取文件的修改时间 os.stat(path).st_ctime #获取文件修改时间 ...

  4. ros 使用命令测试topic

    发布话题 $ rostopic pub -r /chatter std_msgs/String "test" 输出数据: $ rostopic echo /chatter data ...

  5. domContentload和onload

    defer和async <script src="script.js"></script> 没有 defer 或 async,浏览器会立即加载并执行指定的脚 ...

  6. c# 获取方法所在的命名空间 类名 方法名

    平时我们在记录日志的时候难免会需要直接记录当前方法的路径,以便查找,但是每次都输入方法名称非常的繁琐,同时如果修改了方法名称也要去手动修改日志内容,真的是劳命伤财啊,所以有了如下方法则可解决我们的大难 ...

  7. url 中需要转义的字符

    1. +  URL 中+号表示空格 %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. /  分隔目录和子目录 %2F  4. ?  分隔实际的 URL 和参数 %3F  5. % 指 ...

  8. Objections vs. excuses

    Objections are healthy. When someone is being offered a new opportunity or product, it's not unusual ...

  9. Android设计模式之工厂模式

    定义 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式.著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见.因为工厂模式就相当于创建实例 ...

  10. android----HttpClient的get,post和图片上传服务器

    HttpClient是Apache Jakarta Common下的子项目,用来提供高效的.最新的.功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议.HttpCli ...