敏捷开发与没有规范,没有文档的代码编写者的区别
与某些观点相反,敏捷开发人员并非不按规则或限制编写代码的特立独行者。“牛仔编码”是缺乏规则和管理糟糕的迹象,并且很不专业。如果团队里面存在这样的编写代码的现象,为了客户的利益着想,您应该竭尽全力地改变这种情况。
敏捷开发最少需要开发和维护哪些文档?
但现实中的情况是大多数人不喜欢编写文档、也不太喜欢研读文档,因此太多的文档只会消耗团队有限的时间,并不能带来多大的好处;
一份概要性的高阶的文档是用户和开发团队之间的契约,双方的一致理解有助于沟通和互动;用户只关心他要什么,不关心如何实现,更不关心实现有多难,所以我们不能奢求用户理解我们遇到的技术问题,甚至读懂我们的代码或者注释;
敏捷开发重视文档的作用,也重视文档的维护;它认为文档宜少且精炼,一般情况下建议开发并维护三份文档:
《软件需求规格说明书》或者《产品规格说明书》:定义软件应该具有的功能、边界等,使软件相关的涉众对软件有一致的理解,它作为用户同开发团队之间共同的讨论基础,并在开发过程中不断的更新维护;
《架构设计文档》:软件如何实现,内部之间是什么关系?
《项目管理计划》:计划如何分期实现、测试、发布等;
敏捷开发是否需要系统设计?
敏捷开发是以小周期代替大周期,小周期包括:需求、设计、开发、测试、发布,这个过程中是包括设计环节的,也就是说需要做系统设计;
由于做完整的设计需要有相对完整的资料和比较长的时间,与小周期是相对立的,因此敏捷开发不主张高度细化和完整的设计,提倡做出一个大粒度的框架性设计,一般指架构设计或者系统设计或功能模块的概要设计,避免在以后的重构中发生架构级别的变化,然后在逐步实现的过程中逐渐深入展开、细化;
做到概要设计即可,不用到详细设计。[即可划分模块,类,公共接口]。
类的实现可以由编码人员直接确定,完成项目后,可以通过后处理工具得到类的实现模型和类关系图。
传统的一些设计方法比如结构化设计、面向对象分析(OOA)、面向对象设计(OOD)、自顶向下、快速原型法都是可以融入敏捷开发过程中加以使用的;
敏捷开发是否需要项目计划?
商业软件开发需要承担获取利润的责任,因此对产品的功能完整性、稳定性、即时性等都有较高的要求, 它是一种有组织有目标的行为,因此它需要项目计划,但这个计划是一个短程计划,根据未实现的功能情况、前一个版本的反馈和组织目标制定开发计划;唯有这样才能不断的融入新的变更;
年度规划,月度实现计划。[年度规划一般不可变,月度计划则可以依据实际情况对需求实现进行进度安排]
敏捷开发的迭代周期大概多长?
对于通用小项目而言,可以每月交付一个大的功能版本,每两周交付一个变更或Bug版本。在进行项目开发进度估算时候需要对交付的内容大致有一个规划。
当然也不能频繁的发布,特别是重大Bug的紧急发布,这样会降低用户的期望并提高用户成本,给用户心理上带来额外的负担:他会认为产品质量低,质量控制不严谨等;
敏捷开发为何提倡小版本?小版本有哪些优势?
小版本的目的就是分解复杂度、降低风险,改善团队士气等;小版本有众多优势:
Ⅰ、总体风险比较少:小版本变化小,总是在上一个版本基础上局部调整和增加,技术复杂度低;由于规划的功能较少,工作量也易于估算,所以其总体风险比较少,常常能如期发布;
Ⅱ、需求的接纳能力强:由于小版本快速实现并发布测试,然后就进入下一个版本的规划实现周期,这样新需求一旦提出就能快速进入开发视野,就能尽快实现;
Ⅲ、测试和开发高效协作:开发和测试可以并行工作,当开发实现第一个版本时,测试设计测试方案和用例;发布第一个版本后,开发就进入下一个版本轮次,测试就应用测试方案测试刚才发布的版本,提交Bug;开发在下一个版本结束时修正所有上一轮发现的Bug,然后发布新版本,如此循环往复,开发和测试实现高效协作;
敏捷开发与重构的关系如何?
敏捷开发以重构为基础,时时刻刻处于重构过程中;
敏捷开发为何强调团队人员的参与、用户的参与?
人是一切关系的主体,是生产力提升的主体;敏捷强调团队成员的高度参与就是要统一认识,把团队的目标变成每个人的工作目标,使之为每个团队成员的认同,形成高度的凝聚力,以达到群策群力、高效协作的效果;
由于没有高度细化的文档,成员之间交换信息的唯一渠道就是面对面沟通,良好的团队氛围和协作关系促进这种沟通,并使消息准确有效传达;
用户由于缺乏专业训练,无法清晰、准确的表达其意图,导致需求的歧义和模糊;用户的参与使模糊、边界不确定的需求在互动的过程中得到确认和完善;
我们努力做的事情就是实现用户需要的东西,并最终让用户喜欢它,唯有用户喜欢它才能用好它,那么我们怎能不认真听取用户的意见呢?
一句话总结就是:用户参与帮助我们做正确的事情!
怎么才能评估我们团队和开发过程已经敏捷了?
由于敏捷开发没有标准的可供参考的实践过程,所以很难通过某个过程而断定其开发过程敏捷了,那么我们如何来评估我们的团队和开发过程是敏捷的呢?这里采用办法是根据团队呈现出来的氛围、项目运作状态、团队成员的感性认识等方面来评估团队和其开发过程是否敏捷,我们认为评估项目团队和开发过程是否已经敏捷的方法如下:
1、团队有共同的愿景,并且对这个愿景充满信心
2、团队有明确的阶段目标并且为每个成员所知晓;
3、团队知晓当前计划:做什么、何时完成、预期效果等
4、团队任务是低耦合的,并且紧密协作;
5、发布过程是轻松愉快的,构建版本并不断测试是常态行为之一;
敏捷开发能缩短项目时间并提高质量吗?
敏捷开发能缩短项目周期并提高整体质量吗?能,但我目前无法提供量化的数据做参考,只能从几个方面评估和推断:敏捷开发是能缩短项目时间并提高质量的;
1、用户的参与帮助团队把功能一次性完成并做正确,缩减了返工的时间;
2、不断的重构和测试发布能把问题发现在早期,整体质量显著提高;
3、过程目标导向,使团队高度集中于项目目标,提高了生产力;
4、不断的发布对团队是种正向激励,荣誉感和成功欲使团队保持持续的激情;
敏捷开发与CMMI最大区别:
我觉得CMMI是由大及小的过程,Agile是由小及大的过程。
CMMI是给出所有可能需要考虑的点,让你从中选择你可能需要的
Agile是给出所有必须考虑的点,然后让你再在其上进行扩展
方法无所谓好坏,关键要选对、用对方法,如果只是对于这些书籍上的理论进行讨论,本身就是有缺陷的。
相关推荐
[转贴]Symbian编程VC开发环境设置 (方便个人学习用,转载自 rocklys的专栏,转贴请搜索原作者) - waferham的专栏
【胖子说RUP】 ...通过理解 RUP 的核心概念和阶段,结合合适的工具,可以有效地提升团队的开发效率和软件质量。在实际应用中,应根据项目特性和团队状况灵活调整 RUP 的实践方式,使其更符合实际情况。
易语言是一种基于中文编程的计算机...总的来说,易语言源码动网转贴不仅涵盖了网络编程、数据处理、用户交互等基础知识,还涉及到安全、性能优化等多个领域,对于学习和理解易语言及网络应用开发有着重要的实践价值。
这个名为“动网转贴”的项目,是易语言编程实践中一个典型的例子,它为学习者提供了宝贵的实践素材,无论你是个人学习、学生毕业设计还是小团队的项目开发,都能从中获取灵感和参考。 首先,我们要理解易语言的核心...
uchome2.0+一键转贴插件 本插件由开源插件网(sns.zhisoo.com)提供。 激励的文章!奋斗的捷径!成功的法则!创业的技巧!奋进的环境! 更重要的是你可以找到与你志趣相同的网友!一起探讨奋斗的目标! 加入我们...
3. **敏捷开发中的时间管理**:敏捷开发方法如Scrum和Kanban强调迭代和持续改进,它们提供了时间盒(Sprint)和看板等工具来帮助团队管理时间。 4. **编程工具集成的时间管理**:例如,开发者可以利用Git的里程碑...
VBA结合了Visual Basic的语言特性,使得非程序员也能相对容易地进行二次开发,提高日常办公效率。 在VBA中,常用的对象、属性、方法和事件是开发的关键组成部分。对象是VBA编程的基础,它们代表着程序中的实体,...
由于压缩包文件名为“易语言动网转贴.rar”,我们可以推测这可能是一个软件开发资源,包含了一些源代码、教程或者是相关插件。 在易语言中,"动网"通常指的是动网论坛,这是一个曾经非常流行的网络社区平台。"转贴...
《动易系统的论坛转贴工具详解与应用》 在互联网信息交流日益频繁的今天,论坛作为用户互动的重要平台...通过深入理解和熟练运用,我们可以更好地利用论坛转贴工具,推动内容的广泛传播,实现互联网信息的共享与繁荣。
总的来说,实现jQuery的转贴功能需要对DOM操作、事件处理、Ajax请求以及不同社交网络的API有深入理解。通过合理地组织代码和利用jQuery的功能,可以创建一个高效且易于维护的分享系统,提升网站的互动性和用户参与度...
【标题】"动网转贴.e.rar"是一个压缩文件,很可能包含了有关动网论坛或社区的相关资源、数据或用户帖子的备份。动网是中国早期知名的网络论坛软件之一,提供了丰富的社区功能,允许用户发帖、回帖、互动等。这个...
标题中的“动易系统的论坛转贴工具 -ASP源码.zip”揭示了这是一个基于ASP(Active Server Pages)编程语言开发的论坛转贴工具的源代码。ASP是微软公司推出的一种服务器端脚本环境,用于创建动态交互式网页。这个工具...
由于现在流行的转贴工具都是基于浏览器的,转换速度比较慢,还得打开浏览器才能使用(同时受到浏览器版本限制)。 <br> 而这个小程序则完全不依赖于浏览器,以BFC采集器的UBB转换模块为基础,转换速度超快,...
电子政务,全称为电子化政府服务,是利用现代信息技术,特别是互联网技术,来改革和优化政府运作和服务的一种...通过阅读"行业分类-电子政务-导电泡棉转贴装置.pdf"这份资料,可以深入理解这一技术的具体应用和重要性。
【标题】"论坛转贴 v1.0 JS版-源码.zip" 提供的是一个基于JavaScript的论坛转贴功能的源代码实现。...对于想要提升JavaScript编程技能,尤其是对网页应用开发感兴趣的个人来说,这是一个很好的实践项目。
【标题】:“史上最全的转贴代码”通常指的是一个包含大量可复用代码片段或解决方案的集合,这些代码可能来自于各种编程语言,旨在帮助开发者快速解决问题或者作为学习参考。这样的资源对于初学者和经验丰富的程序员...