论文来源(Source):ICLR/ICML/NIPS
主题(Topic):Deep Learning(深度学习)/Deep Neutral NetWorkS(深度神经网络)
格式:Miktex
- 敏捷开发(Agile Development)
一种开发方法、不是一门技术(指导思想、开发方式)
敏捷开发 ( Agile Development )是一种 以人为核心、迭代、循序渐进的开发方法 。核心为用户的需求进化,方法为迭代、循序渐进
Scrum开发流程中的三大角色
怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发。
为什么说是以人为核心?
我们大部分人都学过瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切以文档为依据;而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心。
什么是迭代?
迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,这样的一个周期就是一次迭代的过程;同时每一次迭代都可以生产或开发出一个可以交付的软件产品。
关于Scrum和XP
前面说了敏捷它是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而Scrum和XP就是敏捷开发的具体方式了,你可以采用Scrum方式也可以采用XP方式;Scrum和XP的区别是,Scrum偏重于过程,XP则偏重于实践,但是实际中,两者是结合一起应用的,这里我主要讲Scrum。
产品负责人(Product Owner)
主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。
流程管理员(Scrum Master)
主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。
开发团队(Scrum Team)
主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标。
参考
http://www.scrumcn.com/agile/scrum-knowledge-library/scrum.html
http://www.cnblogs.com/taven/archive/2010/10/17/1853386.html
敏捷建模(Agile Modeling,AM)
- 看板管理(Kanban)
是丰田生产模式中的重要概念,指为了达到及时生产(JIT)方式控制现场生产流程的工具。及时生产方式中的拉式(Pull)生产系统可以使信息的流程缩短,并配合定量、固定装货容器等方式,而使生产过程中的物料流动顺畅。
及时生产方式的看板在生产线上分为两类:领取看板和生产看板,旨在传达的信息是:“何物,何时,生产多少数量,以何方式生产、搬运”。
看板分类
在制品KANBAN(production card):(1)工序内KANBAN,(2)信号KANBAN;记载后续工序必须生产和定购的零件、组件的种类和数量。
领取KANBAN(withdrawal card):(1)工序间KANBAN,(2)对外订货KANBAN;记载后续工序应该向之前工序领取的零件、组件种类和数量。
参考
http://www.cnblogs.com/waoh/p/4026905.html
http://www.cnblogs.com/waoh/p/4026905.html
http://www.jianshu.com/p/e44b1038c9cf
Scrum,迭代式增量软件开发过程,一种流程、计划、模式
Scrum偏重于过程,XP偏重于实践(极限编程是敏捷开发具体方式)
XP Practices:Test-Driven Development(TDD)测试驱动开发
极限编程(Extreme Programmi,简称XP),一种软件工程方法学
软件:计算机程序、数据、文档组成
系统软件、支撑软件、应用软件(分类)
软件工程方法学:方法(Methods)/工具(Tools)/过程(Process)
软件过程
软件过程模型(瀑布/V/增量模型)
瀑布开发模型:以文档为驱动
需求
软件设计
软件测试
项目文档