粗略学习《Agile Guide》后的总结
碍于个人能力极度欠佳,所以即使我大致了解了一下何谓“Agile Guide”(敏捷开发),也不很能理解其中的软件工程思想,只能大概谈一下我的理解。
我所理解的“敏捷开发”,应该是一种特殊的、相较于传统开发方式更值得程序开发人员重视和推崇的软件工程开发方法。这种开发方法之所以能赢得更多程序开发人员、青睐,主要原因就在于,这种方式摒弃了原来up-front的设计方案,拒绝正在过时的“瀑布式开发”,而是让开发人员通过“敏捷建模”的方式,从“简单、可持续、沟通”等等多个方面入手,旨在将目标项目划分成可以独立设计和调试、但又相互联系的子项目,并进行持续集成,从而减少错误、提高效率,更快更好地构建目标工程。而同时,“敏捷建模”是允许客户以项目开发的成员的身份,参与到项目实现的过程中的,如此一来,程序的直接开发人员便能在不断地优化程序的过程中,更好地满足客户的需求;另外的,客户参与到子项目的测试中,有利于检验子程序是否符合自己的需求,并让程序开发人员及时地重构程序,避免在集成项目的过程中,因为个别项目的失败导致主要项目的失败。这实际上是一个迭代过程,如此一来能真正提高工程实现的效率!
就该文章的叙述而言,我并不是很好地理解了“敏捷开发”的核心,所以我便直接在网上搜索了部分资料,了解到“敏捷开发”及对应的“敏捷建模”都有其对应的核心价值,包括“沟通、简单、反馈、勇气、谦逊”,其中前四点也是“极限编程”(XP)的核心价值观。虽然字面上有些抽象,但其实不难理解。这几点正好就反映了“敏捷开发”的开发特色,即:主张统一,使用统一的编码库和编程规范,便于程序开发人员沟通交流;主张简单,以最简单的设计方式实现分割的独立的子程序,并在融合了客户需求的基础上不断集成,在持续集成的过程中,开发人员根据客户的要求和设计人员的设计,快速地高效率地不断地构建或者重构项目,从而以最高效的方式实现目标工程;而这个目标工程是抛弃了一切不必要的设计的,因为“简单”原则要求如此;同时这又是一个可持续优化地项目,开发人员将根据设计者的要求进一步完善工程。
另外,关于“设计已死”的命题,原文作者也说了,这并不是正确的。虽然“敏捷开发”在某种程度上是拒绝在工程实现开始便对工程的每个步骤进行详尽的筹划和设计,因为正如文章所说,预先考虑的问题并不能保证全面,如此设计,可能导致在实现工程的过程中,不断遇到新的问题,不断进行调试,从而导致工程越来越复杂;但实际上,“敏捷开发”并不意味这放弃设计,也就是说,所谓的“敏捷开发”与UML等设计技术是不相互排斥的,只是使用的方式有所不同罢了。“敏捷开发”采取了Planned Design的方法,由设计者自行设计、再由程序实现人员实现程序。而对于每个单元,有其自己的单元设计,在“敏捷开发”的过程中,不同单元的设计都能最终聚合在一起,从而最终实现工程!
在查阅资料的过程中,我看到,原来结对编程也是“敏捷开发”的一个阶段。通过结对编程,开发人员在同一台机子上进行程序编写,这样便能在写的同时又另一人监视,降低出错的概率。想来我和我的结对伙伴在编程时,倒也没有发现这其中的用处,只是相互商量,相互检查而已。不过,在以后的团队工作中,我们可以按照分配好的任务,各自完成自己的任务,从而更好地实现我们的工程!我们的团队成员已经按照一定的规则分配了相应的任务,接下来,我们便要好好地利用“敏捷开发”的方式,进行我们的程序设计。我们会争取让设计成员提前对我们的任务进行一定的简单设计,然后再有编程经理带领编程人员进行开发;另外,作为软件工程学习的一部分,我们团队虽然是开发人员,但也可以把自己定位为客户,由此去进行程序的优化和深层设计,这样就相当于让客户也参与到程序开发中了!如此一来,便能更好地提高我们团队的工作效率!
还有,我还了解到有一种类似的迭代式增量软件开发过程管理方法,称为Scrum。这也是可用于管理软件开发项目的。所以我们团队也肯能有所参考和学习,这将由我们讨论研究后再下定论!
以上,是11061169林谋武同学粗略学习“敏捷开发”的心得。
粗略学习《Agile Guide》后的总结的更多相关文章
- C语言学习一个月后感想
C语言学习一个月后感想 感谢李晓东老板及计算机工程师联盟的学长学姐和某神秘同级同学的辛勤指导,感谢宋雨田的督促和陪伴. 初识C的1..体会 我本以为凭借瓜皮思维和花里胡哨操作可以让我熟练地学习语言,现 ...
- seajs学习一天后的总结归纳
公司项目最近需要将js文件迁移到seajs来进行模块化管理,由于我以前主要接触模块化开发是接触的AMD规范的requireJS,没有接触过CMD规范,而且在实际项目中还没有用过类似技术.于是,我非常兴 ...
- AngularJs学习笔记--Guide教程系列文章索引
在很久很久以前,一位前辈向我推荐AngularJs.但当时我没有好好学习,仅仅是讲文档浏览了一次.后来觉醒了……于是下定决心好好理解这系列的文档,并意译出来(英文水平不足……不能说是翻译,有些实在是看 ...
- linux学习 命令ll后字段的解释(转)
原文链接:http://jz20080153.blog.sohu.com/161554070.html ls -l 列表信息详解 我们平时用ls -l 命令查看一个目录下的文件和子目录的详悉信息时,会 ...
- YII学习笔记-登录后的session的总结
在YII框架的默认的登录后的session数据是id,name,__states这三个数据. 在搭配好YII框架环境后,可以使用admin/admin,来登录系统.如果在protected/views ...
- leetcood学习笔记-58-最后一个单词的长度
题目描述: 第一次解答: class Solution: def lengthOfLastWord(self, s: str) -> int: L=s.strip().split(" ...
- mysql的粗略学习
输入root进入mysql 试着输入了两个语法都没动静,输入\h终于有反应了 语法错误 show databases; //显示数据库 为什么没有人告诉我还有个英文下的分隔符号... 查的资料不是没有 ...
- webpack学习笔记——打包后直接访问页面,图片路径错误
我说的这种图片路径错误是这样的,运行webpack-dev-server,一切正常,没有错误.当webpack之后,直接打开index页面,报错,图片找不到,找不到的原因是路径错误. 先看我的项目代码 ...
- 学习完HTML后的5大测试题----9.18
考试题目 第一题: 布局出该效果 提示:使用DIV的border样式,调整边框粗细出现该效果,保留上边框,其它三个方向的边框需设置:border-left:100px solid transpar ...
随机推荐
- shiro(1) 介绍
一.什么是shiro (1)属性:java框架 (2)用途:身份验证.用户授权.加密.会话管理 (3)优点:轻量.易用 二.三大组件 (1)subject:代表当前主体,与当前应用交互的任何东西都是s ...
- 【转载】Multiboot规范
转自:Multiboot规范 Multiboot规范 本文定义了Multiboot规范--提议中的引导过程标准.本文是此规范的0.6.93版. Multiboot规范简介 本章描述了一些关于Multi ...
- ZOJ 3869 Ace of Aces
There is a mysterious organization called Time-Space Administrative Bureau (TSAB) in the deep univer ...
- Intel微处理器学习笔记(一) 实模式内存结构
图一 奔腾概念示意图 存储系统一般划分为三个主要部分:TPA(transient program area),System Area和XMS(extended memory system). 图二 内 ...
- (转)netty、mina性能对比分析
转自: http://blog.csdn.net/mindfloating/article/details/8622930 流行 NIO Framework netty 和 mina 性能测评与分析 ...
- Java中classpath配置
Java中classpath配置 一.DOS常用命令 二.DOS常用命令实例 2.1 转换目录 cd 1.6* 2.2 删除文件 del 删除文件(windows删除从里往外删) del *.txt ...
- Loading Xps from MemoryStream
A common way of loading XpsDocument is to load it from file: XpsDocument document = new XpsDocument( ...
- php实现频率限制
一.前言 公司要做呼叫中心,呼叫中心为了防止骚扰,需要限制用户拨打电话的频率,比如30s只能点击一次.这样的需求是通过redis来实现的. 二.具体实现 <?php class Resource ...
- 2-20 MySQL集群搭建实现高可用
MySQL集群概述和安装环境 MySQL Cluster是MySQL适合于分布式计算环境的高实用.高冗余版本.Cluster的汉语是"集群"的意思.它采用了NDB Cluster ...
- python-day10--文件处理
1.文件:是操作系统提供的概念 2. open(r+'文件路径' , '打开方式' , '用什么字符编码') #r 表示原始字符串 eg:open(r'C:\Users\13264\Desktop ...