快速迭代_快速迭代 敏捷开发 - CSDN
精华内容
参与话题
  • dispatch_queue_t queue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); NSString * from=@""; NSString * to =@""; NSFileManager * magr=[NSFileManager defaultManager]; NSAr...

        dispatch_queue_t queue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
        NSString * from=@"";
        NSString * to =@"";
        NSFileManager * magr=[NSFileManager defaultManager];
        NSArray * subpaths=[magr subpathsAtPath:from];//获得from路径下的所有文件
        
        
        //同时便利作用
        dispatch_apply(subpaths.count, queue, ^(size_t index) {
            NSString * subpath=subpaths[index];
            NSString * fromFullpath=[from stringByAppendingPathComponent:subpath];
            NSString * toFullpath=[to stringByAppendingPathComponent:subpath];
            [magr moveItemAtPath:fromFullpath toPath:toFullpath error:nil];
        });

    转载于:https://www.cnblogs.com/xiezefeng/p/5430898.html

    展开全文
  • 互联网行业推出产品有个基本的做法“小步快跑,快速迭代”,就是不要想着一次性发出好的产品,而要通过快速迭代的方式进行更新,保证每一小步都跑得很快。 有三种现象阻碍创新:面面俱到谋布局;尽善尽美求完美;...

    版权归作者所有,任何形式转载请联系作者。
    作者:胡义华(来自豆瓣)
    来源:https://www.douban.com/note/605963608/

    互联网行业推出产品有个基本的做法“小步快跑,快速迭代”,就是不要想着一次性发出好的产品,而要通过快速迭代的方式进行更新,保证每一小步都跑得很快。

    有三种现象阻碍创新:面面俱到谋布局;尽善尽美求完美;吝惜资源不主动。这三种现象,由人们的一种狭隘意识所致。若从宇宙观出发就不这样看了。宇宙的平衡是随时建立的。一个点出现,一个平衡跟上。这个点不断突破,就不断有新的平衡。每个时点上漂流着一定的磁场,一定的磁场聚合在一定的点周边。

    快速迭代首先是一种产品研发理念。
    在快速迭代理念支持下的产品研发是“上线-反馈-修改-上线”这样反复更新内容的过程,形式非常适合互联网产品或者移动端,通过收集数据或用户反馈迅速知道改进的结果,用快速迭代的方式可以立即在用户之间找到平衡点。

    “小步快跑,快速迭代”。为了实现单点突破就要允许不完美,但要快速迭代向完美逼近。每天都能发现修正一两个小问题,不到一年产品就打磨出来了。

    这种方式可以借用到我们的写作之中,以及任何需要写文稿的地方。

    当我们需要写一篇文稿的时候,首先是确定这篇文稿要表达的是什么,再去收集素材,然后把这些素材组合起来写成一篇文稿。

    如果我们一定要等到所有的素材都收集齐了再写,那不知道要收集到什么时候了,因为如果不是提前已经收集了素材,临时收集还不知道从什么地方去收集,怎么可能收集得齐呢?而且在素材的汪洋大海里又怎么知道哪些是最合适的呢。

    因此,我们接到写文稿的任务后,如果头脑中有现成的素材就可以构思好后直接开写,这是一个初稿,初稿完成后就放在一边。这时我们就会知道文稿有哪些地方不足,还需要什么东西来填充等等。当我们在后来的阅读或者生活中看到有用的素材,就自然想到可以用到什么地方。

    第二天或者过几小时就要对文稿初稿进行修改,如果自己拿不准,还可以请教前辈高手,让他们伸出援救之手。这个过程就是“快速迭代”的过程,这个过程要经过很多次,不断地迭代。

    也许最终呈现的文稿只有八十分,但是比没有要强多了。因为那些想着尽善尽美的人,总是要在大脑里形成一个完美的文稿才动手,可能还没有动手,时间就已经过去了。甚至有的想象得很完美,结果出来的东西只有三四十分,这就不是我们想要的结果了。

    这里有一个原则就是,我们的大方向一定要正确,也就是过去说的“做正确的事比把事情做正确重要。”那么这种“小步快跑,快速迭代”方法就可以运用到平常的任何工作中去,特别是对那些需要创意的工作,更需要采用这种方法。

    展开全文
  • 快速迭代项目流程图

    2020-07-29 14:20:11
    主要是整理出一个项目需求从进来,到开发,到测试,到上线的全部流程,以及责任划分的流程梳理,适合巨大多数互联网公司,特别是快速迭代敏捷开发一类的项目管理流程
  • 敏捷开发-快速迭代

    万次阅读 多人点赞 2013-05-08 19:57:45
    今天跟大家分享的是“敏捷开发、快速迭代”。我们大都采用的是“瀑布开发模式”,有了问题,就得返工,虽然最终的产品会比较齐全完善,但是开发周期太长,开发人员会产生排斥,甚至厌恶的心理。经过YH系统的开发,也...

    今天跟大家分享的是“敏捷开发、快速迭代”。我们大都采用的是“瀑布开发模式”,有了问题,就得返工,虽然最终的产品会比较齐全完善,但是开发周期太长,开发人员会产生排斥,甚至厌恶的心理。经过YH系统的开发,也且生体会到了这一弊端。

    有问题就要去解决它!于是我想到了“敏捷开发”。借鉴敏捷开发模式,来改善软件开发过程,提高项目的开发效率。

    要想借鉴,首先得弄懂以下3个问题。

    1. 什么是敏捷开发
    百度百科中是这样解释的:敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

    我们可以这样认为,敏捷开发是一种面临迅速变化的需求快速开发的能力。要明确几点:
    敏捷不仅仅是一个项目快速完成、而是对整个产品领域需求的高效管理;
    敏捷不仅仅是简单的快,而是短周期的不断改进、提高和调整;
    敏捷不仅仅是一个版本只做几个功能,而是突出重点、果断放弃当前的非重点;
    敏捷不仅仅是随时增加需求,而是每个迭代周期对需求的重新审核和排序。

    2.如何进行敏捷开发?
    敏捷开发的体系建设主要有如下六个方面:
    1、组织建设
          也就是团队建设,建立以产品经理为主导,包含产品、设计、前后台开发和测试的team,快速进行产品迭代开发;扁平化的团队管理,大家都有共同目标,更有成就感;

    2、敏捷制度
          要找准适合自身的敏捷开发方式,主要是制定一个完善的效率高的设计、开发、测试、上线流程,制定固定的迭代周期,让用户更有期待;

    3、需求收集
          这个任何方式下都需要有,需求一定要有交互稿,评审通过后,一定要确定功能需求列表、责任人、工作量、责任人等;

    4、工具建设
          是指能够快速完成某项事情的辅助工具,比如开发环境的一键安装,各种底层的日志、监控等平台,发布、打包工具等;

    5、系统架构
          略为超前架构设计:支持良好的扩容性和可维护性;组件化基础功能模块:代码耦合度低,模块间的依赖性小;插件化业务模块:降低营销活动与业务耦合度,自升级、自维护;客户端预埋逻辑;技术预研等等;

    6、数据运营与灰度发布
          点击率分析、用户路径分析、渠道选择、渠道升级控制等等。

    有幸拾得某位牛人的敏捷开发经验,再结合自己的理解,一起拿出来与大家分享一下:
    1 、 重点明确,及时调整。
          通过分析需求的紧急性和重要性,做出优先级的判定,优先级从1排到10,没有重复;
          迭代中严格按照优先级顺序开发,即使最后时间不够,也能保证最需要的功能开发完成;
          每次迭代前重新调整需求的重要性,及时加入重要的业务需求和用户需求,将重要性不高的需求往后调整。

    2、倾听用户的声音、相信用户的直觉。
          在迭代中充分关注线上版本用户的反馈,并且主动联系用户了解困扰,在当个迭代或下个迭代快速优化;通过对用户反馈的及时响应获得用户的认可和口碑。
          这里就提到一个名叫“AB test”的开发模式,一个问题有A、B两种解决方案,不知道哪个更符合用户的需求,那么就让用户去选择,根据用户的反馈去迅速调整。
          有兴趣的话,可以看看这个视频,是我在找资料时看到的,里面讲到了这个问题,即小米MIUI产品经理许斐演讲的“快速迭代的互联网开发模式 ”。

    3、勇于创新、小步快跑。
          在迭代中勇于创新,快速实现创新想法,并在后续的迭代中不断优化。
          一直远离媒体视线的腾讯CEO马化腾,在“合作伙伴大会一周年”的活动上,也给合作伙伴和同行们“小步快跑,快速迭代”的建议,被赋予“一直在模仿,从未被超越”称号的腾讯开发团队,其实创新也是国内最多的。

    4、持续不断地发现问题,解决问题。
          通过每天的版本发布来检验团队在每日立会上做出的承诺;
          测试和验证功能的开发程度;
          对于功能的实现第一时间给出反馈,并能快速调整,而不会像瀑布式等到开发末期才发现实现上的问题。

    5、持续提升整个团队的产品能力。
          专门的团队面向一个产品领域;
          持续优化用户体验和产品流程;
          通过产品迭代的心跳保持产品团队的用户和市场敏感度;
          提升产品经理的产品感觉、提高技术团队的产品意识;
          团队伴随业务而成长,获得更高的成就感。

    更多具体的实施和经验分享,可以参考“项目管理专栏”。

    说了这么多,归结起来就是,产品通过不断的获取用户新需求,不断的更新迭代而愈加成熟。而快速迭代,则能提升团队的市场竞争力,从而快速占领市场。
    看过一幅图片:快速迭代,越变越美。那么如何快速迭代呢?

    3.如何快速迭代
    其实这个问题已经在第二个问题中回答过了,这里再单拿出来说,是为了强调一下。
    现在是互联网的时代,互联网产品的更新速度可谓是日新月异。互联网的开发模式也是主要围绕“快速迭代”的主题来开发产品的 在飞速发展的互联网行业里,产品是以用户为导向在随时演进的。因此,在推出一个产品之后要迅速收集用户需求进行产品的迭代——在演进的过程中注入用户需求的基因,完成快速的升级换代,裂变成长,才能让你的用户体验保持在最高水平。不要闭门造车以图一步到位,否则你的研发速度永远也赶不上需求的变化。

    可能我们做的不是互联网的项目,但是如果是大项目,依旧推荐使用敏捷开发。分级需求,快速迭代产品。让用户能在短时间内用户用上你的产品,短时间内使用到新功能。

    采用“短周期迭代法”,可以压缩项目开发实施周期,减少项目风险,简化管理,提高各个环节达成率,有效推进项目建设。

    快速迭代,版本更新快,所以要考虑降低项目风险,确保正确的方向。

    敏捷开发能够缩短项目的反馈周期,因其将项目分成了若干个迭代周期,每个迭代周期结束都能立即反馈。且通过不断的沟通,还能减少理解上的偏差,配合反馈,减少误解,从而降低修正错误的代价。且每个迭代周期的结束都能接受验证,从而能快速的适应变化,及时的适应新的需求,保证产品的正确性。

    那么迭代周期设定为多少合适呢,“小步快跑、快速迭代”,当然系统大小也会影响到迭代周期,所以把迭代周期一般设置为1-6周为佳。

    曾经跟QQ安全管家的一个开发人员聊过天,得知QQ安全管家是一星期一个beta版本,一月一个正式版。小米的MIUI更新周期,每天都有更新给荣誉开发组,每周都更新ROM包,提供给用户下载。百度每天都会有上百次更新升级上线,网页搜索的结果页每一天都有几十个等待测试上线的升级项目。可见快速迭代是多么许多公司都推荐的一种开发模式。

    还有一点要注意,快速迭代,不是说一定要做好了,才能上线,半成品也能上线。

    在没有上线之前,你怎么知道哪好那不好。所以半成品也是可以出门的,一定不要吝惜在家,丑媳妇才需要尽早见公婆。尽早的让用户去评判你的想法,你的设计是否可以赢得用户的喜爱。快速发出,紧盯用户反馈。百度完成了第一版的搜索引擎,也是让用户去做的选择。用百度CEO李彦宏(Robin)的话来说“你怎么知道如何把这个产品设计成最好的呢?只有让用户尽快去用它。既然大家对这版产品有信心,在基本的产品功能上我们有竞争优势,就应该抓住时机尽快将产品推向市场,真正完善它的人将是用户。他们会告诉你喜欢哪里不喜欢哪里,知道了他们的想法,我们就迅速改,改了一百次之后,肯定就是一个非常好的产品了。”

    简单地分享了一下对敏捷开发,快速迭代的理解。这里再给大家一个连接,51CTO的《专题:初探敏捷开发》,供大家参阅。




    展开全文
  • 快速迭代式开发使用方法总结

    千次阅读 2018-11-24 11:40:07
    为什么我在这里主要讨论迭代式软件开发?本文在此抛开千篇一律的理论,拟就根据多年的实践,总结出一套比较务实、可操作性强的方法,以期望在有限的资源下确保软件质量得到较大保证。一家之见,纰漏之处还请大家多多...

      为什么我在这里主要讨论迭代式软件开发?本文在此抛开千篇一律的理论,拟就根据多年的实践,总结出一套比较务实、可操作性强的方法,以期望在有限的资源下确保软件质量得到较大保证。一家之见,纰漏之处还请大家多多指正。

    迭代式软件开发模式简要流程如下:

             20130610061742765.jpeg

            上图绿色大框内,我们就称之为一个迭代周期。每一个迭代,都可以形成一个可交付的小版本。事实上,每一个迭代周期内,对于编码和测试也可以进行多次迭代。通过快速发布测试构建的方式,验证开发完成的新功能,再通过测试发现问题来驱动开发人员对软件进行修改完善,循环往复。即:根据开发情况有针对性地组织测试,根据测试结果反作用于开发人员去完善软件质量。以这种小步快跑的方式,经过若干测试构建后,软件质量可以在较短时间内达到稳定状态。

    质量保证,需要系统性的方法。那么在迭代式开发的各个阶段,都需要怎样的措施呢?

    1)需求

            这个阶段的主要工作是需求制定与评审。该阶段的工作分三步走:收集原始需求 ->制定产品需求 -> 产品需求评审。具体说来,首先我们通过各种渠道收集原始需求,由于原始需求多半是概念性的、模糊的,不能直接用来指导开发工作,所以需要进行归类、筛选,整合为产品需求。基本原则是,结合当前开发产品的特性,争取以最小的改动以及最大的可扩展性来制定产品需求。降低风险,同时提高灵活性。经验告诉我们,在需求没有考虑透彻的情况下,不要贸然开始设计并实现,可能导致大量返工,费时费力。产品需求制定好后,需要进行评审,一定不要觉得浪费时间而不去评审,磨刀不误砍柴工嘛!

    2) 设计

             这个阶段的主要工作是将产品需求转化为设计需求,指导后续的编码工作。软件行业有一名老话是:软件质量是设计出来的,对于迭代式开发也是如此。设计的好坏直接决定了软件质量的高低。设计需求一般阐述了产品需求的详细设计方案,包括页面布局、数据结构、算法以及易用性、安全性、可扩展性、健壮性和性能等诸多方面的设计思路。即使让不同的开发人员根据设计需求来进行编码,开发出的功能也八九不离十。有此可见,设计需求是非常必要的。也就是说,我们在正式编码前,必须针对需求写出相应的设计文档来指导后续的编码工作。这样做有两大好处:一是在编码之前就充分预见到将来可能遇到的问题,可以尽早规避风险;二是为开发工作搭好框架,降低因开发人员的差异导致开发过程的不确定性,避免出现“一千个人心中有一千个对需求的理解”。

    3) 编码

             这个阶段的主要工作是严格按照设计需求来完成编码,并组织进行代码评审。每一行代码都是软件大厦的一砖一瓦,我们拒绝豆腐渣工程,所以我们重视每一行代码。进行代码评审可以有效保证代码质量,借助一些IT管理工具可以轻松进行代码评审和代码管理。笔者曾经使用过青铜器RDM软件来做代码评审(CodeReview),十分方便。代码评审的重点应该是对程序结构的审查,发现深层次的软件错误,而不要停留在表面。同时,建议大家在做代码评审时,以代码的一个“提交”为单位进行评审。这样做的前提是,每个“提交”里包含相对完整的功能。对于迭代式开发,我们要尽量保证,每一个编码-测试迭代里,都要完成相对独立、可测试性强的功能点。

    4) 测试

            测试实质上是一种鉴定性的工作,是对软件质量的鉴定和最后一道把关。这个阶段的主要工作是,在每一个测试构建中,尽可能多地覆盖需求点,并根据轻重缓急合理安排测试优先级,尽可能将影响较大的缺陷提前暴露出来。测试优先级的安排应遵循以下原则:

           a、先测试经过变更的部分,然后测试没有变更的部分

           b、先测试程序的核心功能,然后测试一般功能

           c、先测试逻辑性的功能,然后测试业务性的功能

           d、先测试常规情况,然后测试异常情况

           e、先测试功能,然后测试性能

           按照上述原则进行测试,可以更快地发现更多软件中的严重错误,这是使软件能尽快稳定下来的一个关键因素。除此以外,在每一个迭代周期结束之前还要进行系统测试。

           编码-测试的不断迭代,保证了每个测试构建里的新功能没有问题,但整个软件系统的质量还没有得到充分验证,系统测试就是为此而生。在版本发布前的最后冲刺阶段,“车轮战”是很管用的一个手段,即:调集测试人员、开发人员等全面参与测试,将这些人员分为若干个小组,每个小组分别对系统进行测试。每个测试模块由多人进行测试,可以有效降低缺陷的遗漏率。但需要注意的是,开发人员应该避免测试自己开发的功能,即进行交叉测试。

           软件质量保证的实质是,使用一些流程、方法来管控软件开发过程,从而使最终交付的软件产品质量得到最大程度的保证。同时,相信大家可以看出,在整个产品开发过程中会产生很多数据,如需求、设计文档、代码、测试用例、缺陷等。使用IT管理工具可以有效提高工作效率,青铜器RDM全面实现CodeReview+Testlink + Mantis功能组合,可以管理需求、测试用例、缺陷、代码评审等,对于小规模团队,已经足够用了。

    展开全文
  • 产品快速迭代的五大要点

    千次阅读 2014-02-17 11:39:24
    今天在微博上又一次看到有人转发小马哥的:“小步快跑,快速迭代”理论,刚好鄙人近期收集了一些快速迭代的资料,接下来结合自身的经验来浅谈产品的快速迭代方式。这篇文字可能会偏项目管理一些,不过我认为项目管理...
  • 迭代算法的经典案例

    千次阅读 2015-06-19 10:12:51
    Fibonacci数列:第3个数等于前面2个数字之和 汉诺塔:从小到大叠加的同心圆,从一根柱子移动到另一根柱子
  • 快速排序(迭代算法)

    千次阅读 2017-03-03 20:46:08
    http://www.cnblogs.com/CBDoctor/p/4077574.html
  • C++迭代器(Iterator)详解

    万次阅读 多人点赞 2018-08-28 22:49:01
    迭代器(Iterator)的介绍 背景:指针可以用来遍历存储空间连续的数据结构,但是对于存储空间费连续的,就需要寻找一个行为类似指针的类,来对非数组的数据结构进行遍历。定义:迭代器是一种检查容器内元素并...
  • 而在迭代时,ConcurrentHashMap使用了不同于传统集合的快速失败迭代器(见之前的文章《JAVA API备忘---集合》)的另一种迭代方式,我们称为弱一致迭代器。在这种迭代方式中,当iterator被创建后集合再发生改变就不再...
  • C++之迭代器(Iterator)篇

    千次阅读 多人点赞 2017-08-16 20:43:32
    迭代器(Iterator)的介绍 背景:指针可以用来遍历存储空间连续的数据结构,但是对于存储空间费连续的,就需要寻找一个行为类似指针的类,来对非数组的数据结构进行遍历。 定义:迭代器提供对一个容器中的对象的...
  • Java迭代器移除元素注意的问题

    万次阅读 2017-07-26 09:21:51
    Java迭代器一共有3种,最常用的一种是Iterator Iterator 目前最常用的一种迭代器,在这中相当于有一个指针,指向第一个数的前面 两种主要用的方法: 1.hadNext()下一个对象是否还存在 2.next() 取出下一个...
  • (八)理解迭代思维(80)

    千次阅读 2018-02-06 00:02:17
    迭代思维 --关于创新流程 什么是迭代思维 迭代思维是关于创新流程的思维,允许产品出现缺点,不断试错,不断优化,在持续的迭代中完善产品。   迭代思维有哪些法则  1.小处着眼,微创新  ...
  • Java迭代器深入理解及使用

    万次阅读 多人点赞 2015-08-22 01:24:57
    Iterator(迭代器)  作为一种设计模式,迭代器可以用于遍历一个对象,对于这个对象的底层结构开发人员不必去了解。  java中的Iterator一般称为“轻量级”对象,创建它的代价是比较小的。这里笔者不会去考究迭代器...
  • 关于增量模型和迭代模型的区别

    万次阅读 2012-04-29 13:33:35
    迭代是不能并行的,迭代的并行是指迭代任务,比如从3.1-3.31号是一个迭代计划,该迭代计划需求人员可以分析功能点5-功能点10,设计人员可以做功能点3-功能点7的设计,开发人员可以做功能点2-功能点4的开发,测试人员...
  • App版本迭代时间安排(思路重要)

    万次阅读 2016-05-08 23:39:29
    相比起小公司,大公司迭代时间虽长,却更为不易,因为大公司流程更多,参与人数更多,需求更多,实现这样的快速迭代存在许多挑战,也有一定风险,管理者控制起来更困难。  那我们应该如何来实现2周1版的快速迭代...
  • TAPD上手指南

    千次阅读 2019-08-07 15:28:53
    迭代——敏捷研发,小步快跑 故事墙——直观展示需求状态 缺陷——快速跟进产品缺陷 报表——高效完成数据分析 文档—— 轻松在线协作编辑 什么是TAPD TAPD(Tencent Agile Product Development)全名为腾讯...
  • 小步快跑 快速迭代(整理)

    千次阅读 2018-05-28 21:01:08
    (1)快速迭代首先是一种产品研发理念。 在快速迭代理念支持下的产品研发是“上线-反馈-修改-上线”这样反复更新内容的过程,形式非常适合互联网产品或者移动端,通过收集数据或用户反馈迅速知道改进的结果,用快速...
  • 快速傅里叶变换FFT的迭代实现

    千次阅读 2014-10-12 19:58:38
    快速傅里叶变换的相关定义、原理及其递归算法》描述了y
  • STL源码剖析---迭代器失效小结

    万次阅读 2012-07-10 21:40:13
    迭代器(iterator)是一个可以对其执行类似指针的操作(如:解除引用(operator*())和递增(operator++()))的对象,我们可以将它理解成为一个指针。但它又不是我们所谓普通的指针,我们可以称之为广义指针,你...
1 2 3 4 5 ... 20
收藏数 240,463
精华内容 96,185
关键字:

快速迭代