• 对于敏捷软件开发的认识


    关于敏捷软件开发

    一,基本软件开发过程

    1,  瀑布软件开发

    2,  迭代软件开发

          

    3,  原型软件开发

          

    4,  极限编程(xp)

    二,敏捷软件开发基本概念和特性

       敏捷软件开发,是一种应对快速变化的需求的一种软件开发能力,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重作为软件开发中人的作用。

    敏捷软件开发的价值观:

    (1)     人和交互重于过程和工具

    (2)     可以工作的软件重于求全责备的文档

    (3)     客户协作重于合同谈判

    (4)     随时应对变化重于循规蹈钜

    敏捷软件开发的基本原则:

    (1)     对我们而言,最重要的是通过尽早和不断交付有价值的软件满足客户需要

    (2)     我们欢迎需要的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势

    (3)     经常交付可以工作的软件,从几个星期到几个月,时间尺度越短越好

    (4)     业务人员和开发者应该在整个项目过程中始终朝夕在一起工作

    (5)     围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务

    (6)     在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈

    (7)     可以工作的软件是进度的主要度量标准

    (8)     敏捷过程提倡可持续开发。出资人、卡覅人员和用户应该总是维持不变的节奏

    (9)     对卓越技术和良好设计的不断追求将有助于提高敏捷性

    (10) 简单-----尽可能减少工作量的艺术至关重要

    (11) 最好的架构、需求和设计都源自自我组织的团队

    (12) 每隔一定时间,团队都需要总结如何更有效率,然后相应地调整自己的行为

    三,敏捷软件开发要求

    拥抱变化

    迎接问题

    注重协作和沟通

    四,敏捷软件开发实施过程

    关于民敏捷软件开发的几个会议

    1,  迭代规划会议

    由po制定和公布该迭代周期中需要完成的任务和达到的目标。基本要求:

    (1)     迭代周期的时间长度(2-6周)

    (2)     会议时间(2-4h)

    (3)     Po公布该迭代周期需要达到的计划目标,并细分各计划需要完成的故事点,同时给出故事点完成时的检验目标(how to demo)。PO需要制定各故事点的优先级顺序。

    (4)     团队成员进行故事点的细分,将故事点划分为占据0.5-4天的工作点,工作点贴条,并进行时间估算。

    (5)     将写有任务和时间的贴条张贴到计划板上。

    会议流程:

    (1)     会议之前,打印本次迭代过程中需要完成的feature,团队成员会前需要阅读各项feature

    (2)     会议开始,由团队PO讲解各项feature。完后,离开迭代规划会议。

    (3)     由团队master组织并主持迭代讨论会议,分解各项feature,分解包括开发、测试、文档编写、其他辅助工作等。并用估算扑克估算时间。用估算扑克估算时间时,各团队成员估算当前feature或当前feature分解后的一个小故事点所花费的时间。然后,分析团队成员中时间偏离比较大的时间。定出该feature或该feature分解出的故事点所需要花费的最终时间。

    (4)     所有feature所花费的总时间占本次迭代所占用时间的80%,给本次迭代预留20%的时间。

    (5)     所有feature时间估算和分解完成后,将feature分解出来的故事点和所需要的时间写到便签上。

    (6)     将便签张贴起来,绘制燃尽图。

    2,  每日站立会议

    团队成语陈述昨天的工作内容、今天的工作计划和昨天工作中遇到的问题,基本要求:

    (1)     时间要求,15分钟左右。注意时间的控制。

    (2)     团队成员需要清晰明确地讲出各自昨天的工作任务、遇到的问题、今日的工作任务,需要的协作和帮助等。对于问题的具体情况和需要寻求的帮助可以在会后进行协调和安排。

    (3)     变更贴条

    (4)     更新燃尽图

    会议流程:

    (1)     发起规划会议通知。在会议通知前,预留时间给团队成员,让团队成员思考昨天工作,包括工作进展情况、工作中遇到的问题、今日工作安排,以及处理昨天工作中一些琐碎。

    (2)     站立会议。团队各成员简略讲述昨天的工作内容、工作进展情况、遇到的问题以及今天的工作内容,并更新便签上的时间。对遇到的问题和需要的协作需要做个简要的说明。

    (3)     更新燃尽图。

    3,  验收、演示会议

    团队成员演示工作成果,需要注意:

    (1)     时间要求,2h之内。

    (2)     Po根据设定的目标进行故事点的验收,并提出相关的意见和建议

    (3)     故事点的演示不需要一定要团队的po和master进行

    会议流程:

    (1)       会议演示准备。准备会议演示系统或相关材料。

    (2)       演示会议。由PO简略阐述当前迭代所需要达到的目标,并针对各个目标进行演示。记录会议中,提出的意见和建议。

    (3)       当前迭代过程中,其他工作成果的验收。包括迭代突发任务、迭代feature衍生任务等

    (4)       会议总结。由PO宣布当前迭代各任务的验收情况。

    4,  质量改进会议或回顾总结会议

    团队成员陈述该迭代周期中,工作体会,需要注意:

    (1)     时间要求,2h之内。

    (2)     团队成员可以陈述在这个迭代周期中认为做得好的、不好需要改进的、遇到的问题等。

    (3)     对团队成员提出的问题,进行归类和总结,并作出这些问题的解决方案,同时制定实施计划。

    会议流程:

    (1)     在迭代过程中,团队各成员需要记下在迭代过程中,遇到的问题,工作中相关总结和心得体会,工作过程或工作内容的改进点等。

    (2)     会议前,整理各自在迭代过程中的记录,以及该迭代过程中产生的数据,包括代码行数、测试覆盖率、缺陷解决情况。

    (3)     会议开始。会议成员讲解在该迭代过程中产生的数据,以及由数据分析出的问题。并解释在给迭代过程中,解决了哪些障碍backlog。

    (4)     会议主持,领导大家提出各自的问题和建议,发表各自的看法。团队成员就各问题提出解决方案,以及各自的见解。

    (5)     统计会议中的各种问题和改良点,并进行整理和记录,整理障碍backlog。并选取其中几个值得特殊关注的问题,作为下一个迭代需要解决的一项任务。

    五,敏捷软件开发基本角色

        在敏捷软件开发中,定义了三种角色:po、master、其他团队成员。

    Po(Product owner),需要对产品负责。负责产品的开发需求、进度和质量,制定每个迭代的需要完成的故事点,以及每个故事点完成的目标,制定产品的backlog。

    Master,负责工作的安排和协调,工作任务的跟踪等,同时完成工作任务。

    其他团队成员,具体的工作任务完成者,没有明确的开发人员、测试人员、资料开发人员之分。

    六,敏捷软件开发过程中使用到的工具

    便利贴,用粗的信号笔书写任务点和需要完成的估算时间

    产品Backlog,列出产品的功能点,规定了功能点的具体操作细节和演示细节

    迭代sprint,列出迭代周期需要完成的故事点,规定了如何演示和验收目标,优先级和估算的完成时间周期

    故障Backlog,列出了开发过程中遇到的问题,任务开发进行中可能遇到的问题

    燃尽图,迭代周期时间里利用和剩余时间的坐标图,横轴代表迭代周期中具体的那一天,纵轴表示在横轴这个点还需要多少天完成该迭代的故事点。

    七,如何较好的实施敏捷软件开发

        结合敏捷软件开发具体的实施情况,可以总结为以下几点:

    (1)     团队成员需要全心投入,积极参入相关的过程。

    (2)     时间预留,为迭代过程中突发事件和估算时间不准确的任务预期完成时间。

    (3)     工作时间估算精确,避免占用过多的预留时间和在团队协作方面带来延迟。

    (4)     团队成员间的相互协作和信任,

    (5)     即时、有效的沟通,

    (6)     问题即时暴露和即时解决,不要积压问题

    (7)     任务跟踪,

    (8)     软件开发人员需要对任务负责,对任务完成的目标严格要求。

    (9)     团队需要良好的领导力和凝聚力

    八,敏捷软件开发优化

    1,   团队成员需要明确团队工作目标,并相信团队各成员能有效的、较好的完成各项目标,也即团队成员间要相互信任。

    2,   团队的工作性质或团队某次迭代所需要完成的工作内容,会具有一定的偏差,需要根据特性动态的更改团队成员的工作。此时,敏捷过程中定义的某些流程或许不适用,需要适当对开发过程进行改良。

     

  • 相关阅读:
    SpringCloud Alibaba开篇:SpringCloud这么火,为何还要学习SpringCloud Alibaba?
    SpringBoot整合原生OpenFegin的坑(非SpringCloud)
    Git入门教程,详解Git文件的四大状态
    全世界最强的算法平台codeforces究竟有什么魅力?
    设计模式第二篇,链式方法模式
    matplotlib设置颜色、标记、线条,让你的图像更加丰富
    20行代码实现,使用Tarjan算法求解强连通分量
    深入理解SVM,详解SMO算法
    手把手教你配置git和git仓库
    设计模式 | Catalog设计模式,抵御业务方需求变动
  • 原文地址:https://www.cnblogs.com/hfxdaj/p/3612090.html
Copyright © 2020-2023  润新知