`
flying_dream
  • 浏览: 16262 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

小谈敏捷

阅读更多
    公司一直采用瀑布模式开发,也通过了CMMI 3级认证,不过最近公司开始向敏捷方式转变。和华为的一个朋友交流,他们由现在的IPD模式也开始向敏捷模式转变,貌似敏捷开始了一股热潮。
    敏捷是一种高效的开发模式,但并非任何项目都适合,而且并非一定要推翻现在的瀑布模式完全采用敏捷。敏捷的本质是什么?敏捷的核心原则是什么?瀑布模式能否将敏捷的思想用过了从而优化现在的模式呢?
    没有任何一种模式说是适合于任何公司,任何项目,还是要从公司特性,项目特性来看。下面就结合敏捷思想一一解读,看那些适合优化瀑布模式。
   
    敏捷宣言:
    1.个体和交互 胜过 过程和工具
    2.可以工作的软件 胜过 面面俱到的文档
    3.客户合作 胜过 合同谈判
    4.响应变化 胜过 遵循计划

    敏捷12原则
    1.我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
    //这点指导我们要尽可能最早将客户需求明确、细化,当然很难一次性将客户的需求完全挖掘出来,但是我们起码可以试着提高我们的需求挖掘,细化能力,每一次和客户(市场人员)交流能够尽可能多地明确需求,减少需求迭代的次数
 
    2.即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。
    //敏捷提出的背景就是应对客户不断改变的需求,除了上述提到的第一点来减少迭代次数外,也要保证迭代影响面尽可能小。这就要求我们设计的代码耦合性尽可能低

    3.经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。
    //交付间隔越短,就会越多越明确地了解客户的需求。在瀑布模式中其实也可以指导我们多和需求引入人、合入人交流

    4.在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
    //1.保证项目的稳定,只有一个稳定的团队才能带来项目的持续进展  2.也可进行结对测试,既减少沟通量,可通过模块责任人制保证质量。

    5.围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。
    //团队的成功,离不开项目人员和项目负责人的相互支撑。提供任何需要的环境和其他支撑工作,可通过环境固化提高环境复用率。敏捷是以人为本的模式,离不开团队各成员的互相信任和支持,但这并不代表100%的自由,我们还是需要一定的抽查机制来检验相应的工作成果的

    6.在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。
    //要减少无效沟通,提高沟通质量,确保沟通的高效性。但是并非就不要文档了,有时候项目的过程还是需要一定的显性文档的,如bug管理平台,svn配置管理等来对工作进行归档,检视,做好PDCA。

    7.工作的软件是首要的进度度量标准。
    //软件进度的度量标准有多种,但是不要忘了最重要的一点,我们最终是要开发出高质量的 满足客户需求的软件。可以把需求细化成一个个story,设计并测试完即可认为完成一个功能的build。另外进度的敏捷也可以考虑如下方法或理念:敏捷就将任何可提前做的事,前移,可以采用看板管理进度。doing,done,to do等了解短阶段应该要完成的任务,其实项目中经常会发生这样的现象,前面轻松后面紧张很大一部分原因是,做完前面的事后不知道后面要做什么事,只能再等负责人的安排。

    8.敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。
    //这个需要保证项目成员的稳定,不能出现这样的现象,这个人员过几天被抽调了,那个成员过几天又被抽调了。而且需要保证一定的老员工和新员工比例,既保证人员可持续发展,也要保证项目可持续发展。

    9.不断地关注优秀的技能和好的设计会增强敏捷能力。
    //变化是IT最大的杀伤工具,也是IT最大的魅力。要时常拥抱变化,新功能用什么技术可以更高效地开发维护等

    10.简单——使未完成的工作最大化的艺术——是根本的。
    //复杂的事情做简单是一门艺术,很多时候一个js页面,一个cgi都被开发人员设计的相当复杂,如果能够从小事开始做起,简单将不再遥远。不过这个也许需要一定的培训和分享制度

    11.最好的构架、需求和设计出自于自组织的团队。
    //当前代码的高耦合性是因为最开始软件的架构出现问题,如果一个公司有架构师一样的人(当然能力必须达标),有了一个好的架构,模块的低耦合性也许会不再是空话   

    12.每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。
    //一日三省,经常要对自己的工作进行总结反省,进行一定的沉淀,才能在新的起点上更好的前进。不要等项目结束了才开始总结,要经常总结,我为什么没有发现那样的bug,为什么测试效率这么低,只有反省总结了才会有进步。

    其实瀑布模式没有什么错,如果保证第一次就把正确的事情做正确,再结合敏捷的一些思想优化当前的工作,我相信会比单单地用敏捷的“拿来主义”强的多,最重要是理解敏捷的思想。另外完全的敏捷需要公司各平台(自动化,公共技术平台)的强力支撑,如果不能完全敏捷,那就从半敏捷做起,考虑目前哪些事情可敏捷,可优化,先从局部敏捷做起吧。
    以上是我的理解,欢迎各位拍砖交流~



1
1
分享到:
评论

相关推荐

    软件开发过程纵横谈(5)再谈敏捷过程

    本篇将重点探讨"再谈敏捷过程"这一主题,这是微软讲师系列中的第五部分,旨在深入解析敏捷开发方法的实践与应用。通过学习这一系列,我们可以了解到软件开发的多种方法论,包括统一过程(RUP)、敏捷过程、微软解决...

    浅谈敏捷开发中的设计.doc

    【敏捷开发】是一种以用户需求为中心,通过迭代和增量方式进行软件开发的方法论。它强调灵活性、协作和快速响应变化,旨在提高开发效率和客户满意度。敏捷开发的核心原则包括尽早并持续交付有价值的软件、欢迎需求...

    软件项目管理论文:敏捷在软件开发中的应用

    本文从敏捷方法的定义,提出背景,实施方法等方面对敏捷方法进行描述,并与...简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。在实践中,开发人员

    软件开发过程纵横谈(5):再谈敏捷过程

    本资源“软件开发过程纵横谈(5):再谈敏捷过程”深入探讨了敏捷开发的核心理念、实践策略以及在实际项目中的应用,旨在帮助开发者和项目经理更好地理解和应用敏捷方法。 首先,敏捷开发的核心价值观包括个体和互动...

    浅谈敏捷软件项目研发.pptx

    浅谈敏捷软件项目研发.pptx

    浅谈DevSecOps敏捷安全发展趋势.pdf

    浅谈DevSecOps敏捷安全发展趋势 1. DevSecOps概述: DevSecOps是DevOps和安全的结合,旨在将安全融合到软件开发和交付过程中,以确保软件的安全性和可靠性。 2. DevSecOps敏捷安全发展趋势: 随着软件定义万物和...

    敏捷模式在微软项目中的经验谈

    ### 敏捷模式在微软项目中的经验谈 #### 背景与意义 在软件开发领域,项目管理一直是提升开发效率、确保项目按时交付的关键环节。然而,传统的项目管理方法在面对软件开发这一充满不确定性和变化的行业时,往往...

    浅谈敏捷软件项目研发.rar

    总结来说,“浅谈敏捷软件项目研发”这一主题涵盖了敏捷开发的核心理念、常用框架和实践策略,以及它在提升项目效率和应对不确定性方面的优势。通过深入理解和应用这些知识,软件开发团队可以更好地适应快速变化的...

    敏捷培训PPT合集

    敏捷开发强调小步快跑,频繁交付,以尽早获取反馈,降低风险。同时,它倡导自我组织的团队和跨职能的协作,鼓励团队成员具备多种技能,以便更好地适应项目需求的变化。 **敏捷软件开发方法简介** 除了Scrum,敏捷...

    一Google中国测试经理谈敏捷测试

    对于测试组织来说,敏捷方法带来的快速迭代却让测试本身变得困难起来:缺乏“足够详细的文档”,缺乏“仔细设计用例的时间”等等。在本演讲中,段念将与大家探讨如何在敏捷过程中进行测试。 作者介绍: 段念,...

    软件开发过程纵横谈(2)敏捷过程

    本篇将深入探讨“软件开发过程纵横谈(2)敏捷过程”这一主题,旨在提供对敏捷开发方法的全面理解和实践指导。敏捷过程是一种以人为核心、迭代且增量的开发方法,强调灵活应对变化,以满足快速变化的市场需求。 敏捷...

    谈敏捷在实践中落地的N种不适与应对

    **不适症状**:敏捷开发倡导小而精的团队结构,以便更好地实现高效的沟通和协作。然而,在实际工作中,可能会出现团队人数过多或过少的问题。 **应对策略**: 1. **寻找合适的规模**:根据项目的具体需求,合理调整...

    浅谈敏捷开发及Scrum工具leangoo(三)

    每个Story会被细分为一系列小任务(Task),这些任务易于执行且可以在较短时间内完成。每个Task都需要指定完成日期和负责人,并处于待执行状态。 **3. Task-doing** 当某个Task开始执行时,负责人需将其从Task列移动...

    Scrum敏捷与DevOps浅谈.pptx

    【Scrum敏捷与DevOps浅谈】 敏捷开发和DevOps都是现代软件开发中不可或缺的实践方式,它们分别解决着不同的问题并相互补充。敏捷开发强调的是以人为中心、迭代和渐进的方式进行软件开发,而DevOps则致力于消除开发...

    软件开发过程纵横谈(2):敏捷过程

    **软件开发过程纵横谈(2): 敏捷过程** 在软件开发领域,敏捷过程是一种以人为核心、迭代、逐步交付的开发方法论。它强调快速响应变化,通过短期的开发迭代,持续集成和测试,以及频繁的客户反馈,来提高软件项目的...

    2021 DevSecOps敏捷安全大会资料汇总(共9份).zip

    1. 浅谈DevSecOps敏捷安全发展趋势 2. 《交互式应用程序安全测试工具能力要求》解读 3. 大型银行DevSecOps体系建设和落地实践 4. 打造安全可信软件产业新生态 5. DevSecOps在云网融合环境下的实践 6. 嵌入式系统研发...

    浅谈项目经理在敏捷开发中如何切分任务.doc

    对于大型团队,可以进一步将团队划分为若干个小团队,每个小团队按照这种按层切分的任务方式进行工作。这样的组织结构有助于保持团队的敏捷性,同时减少单点故障的风险,因为每个团队成员都对整个功能模块有一定程度...

    浅谈敏捷软件项目研发.ppt

    个体和交互 胜过 过程和工具 可以工作的软件 胜过 面面俱到的文档 客户合作 胜过 合同谈判 响应变化 胜过 遵循计划

    谈软件项目快速开发方法——敏捷开发.docx

    软件项目快速开发方法——敏捷开发 软件项目快速开发方法——敏捷开发是当前软件项目开发中的一种非常重要的方法论。它强调以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目...

    敏捷开发思想谈

    敏捷开发其实并没有标准型的流程。SCRUM也只是众多衍生体中的一个。实际上就算是SCRUM的实际使用也情况千差万别。所以首先,请大家有这么个概念: 敏捷开发绝对不是一套一成不变的标准化流程。而更多的是一种自适应...

Global site tag (gtag.js) - Google Analytics