敏捷开发模型的特征_采用敏捷开发模型防黑客
文字日记:
安全开发你必须使用的28个DevSecOps工具
将安全融入开发过程,更早捕获并修复应用漏洞,你需要这五类共28款DevSecOps工具。
DevSecOps 是将安全集成到整个应用开发周期的过程,是从内到外强化应用,使其能够抵御各种潜在威胁的理想方式。因为很多公司企业不断开发应用以满足客户和商业合作伙伴的需求,DevSecOps的吸引力也与日俱增。
敏捷开发 *** 与DevOps操作帮助公司企业达成持续开发的目标。云原生应用架构也成为了DevSecOps运动的有力贡献者,推动采用公共云提供商、容器技术和容器平台为应用提供计算能力。DevSecOps将安全过程与工具集成进工作流并加以自动化,摆脱了传统 *** 按时间点进行的潜在干扰,是个无缝且持续的过程。
咨询公司 Data Bridge Market Research 称,鉴于 *** 安全威胁数量与危害性的持续上升,全球DevSecOps市场预计将从2018年的14.7亿美元增长至2026年的136.3亿美元。
市场繁荣之下,DevSecOps工具必将呈现百花齐放百家争鸣的局面。下面就按核心门类为您呈上多款优秀DevSecOps工具。
开发应用的时候很容易忽略掉安全漏洞。下面的工具为开发人员提供了潜在安全异常及缺陷的警报功能,可供开发人员及时调查并修复这些漏洞,不至于走得太远回不了头。有些工具专用于警报功能,比如开源的Alerta 。其他工具则兼具测试等别的功能,比如 Contrast Assess。
1. Alerta
()
该开源工具可将多个来源的信息整合去重,提供快速可视化功能。Alerta与Prometheus、Riemann、Nagios、Cloudwatch及其他监视/管理服务集成,开发人员可通过API按需定制Alerta。
2. Contrast Assess
()
作为一款互动应用安全测试(IAST)工具,Contrast Assess 与用户应用集成,在后台持续监视代码,并在发现安全漏洞时发出警报。据称即便是非安全开发人员也可使用 Contrast Assess 自行识别并修复漏洞。
3. Contrast Protect
()
该运行时应用自保护(RASP)工具采用了 Contrast Assess 同款嵌入式 *** 。Contrast Protect 在生产环境中查找漏洞利用程序和未知威胁,并将结果提交给安全信息及事件管理(SIEM)控制台、防火墙或其他安全工具。
4. ElastAlert
()
ElastAlert提供近实时接收警报的框架,可接收来自Elasticsearch数据的安全异常、流量激增及其他模式。ElastAlert查询Elasticsearch并根据一系列规则比较这些数据。一旦出现匹配,ElastAlert便发出警报并随附建议动作。
大多数DevSecOps工具都提供一定程度的自动化。此类工具自动扫描、发现并修复安全缺陷,只是自动化程度各有不同,从条件式事件驱动的自动化到运用深度学习技术的自动化都有。
1. CodeAI
()
旨在通过深度学习技术自动查找并修复源代码中的安全漏洞,号称可为开发人员提供可供参考的解决方案列表,而不仅仅是安全问题列表。其供应商QbitLogic宣称,已为CodeAI馈送了数百万个现实世界漏洞修复样本供训练。
2. Parasoft tool suite
()
Parasoft提供包括应用开发安全测试在内的多种自动化工具:
1)Parasoft C/C++test
()
用于开发过程早期缺陷识别;
2)Parasoft Insure++
()
可以查找不规范编程及内存访问错误;
3)Parasoft Jtest
()
用于Java软件开发测试;
4) Parasoft dotTEST
()
以深度静态分析和高级覆盖作为 Visual Studio 工具的补充。
3. Red Hat Ansible Automation
()
该工具包含三个模块——Ansible Tower、Ansible Engine 和 Red Hat Ansible Network Automation,可作为无 *** IT自动化技术单独或联合使用。尽管不是专门的安全工具,Ansible Automation 却可供用户定义规则以确定自身软件开发项目中哪些部分是安全的。
4. StackStorm
()
该开源工具号称“可进行条件式运营”,其事件驱动的自动化能在检测到安全漏洞时提供脚本化的修复与响应,并附有持续部署、ChatOps优化等功能。
5. Veracode
()
该公司提供DevSecOps环境中广泛使用的一系列自动化安全工具,包括在代码编写时即时自动扫描的Greenlight;在沙箱中扫描代码漏洞的 Developer Sandbox;识别漏洞组件的 Software Composition Analysis (SCA);以及识别应用缺陷的 Static Analysis。
专用DevSecOps仪表板工具可使用户在同一图形界面中查看并共享从开发伊始到运营过程中的安全信息。有些DevSecOps应用,比如ThreatModeler和Parasoft已自带仪表板。
1. Grafana
()
该开源分析平台允许用户创建自定义仪表板,聚合所有相关数据以可视化及查询安全数据。如果不想自行构建,还可以在其网站上选用社区构建的仪表板。
2. Kibana
()
如果你使用Elasticsearch,该开源工具可在统一图形界面中集成成千上万的日志条目,包括运营数据、时间序列分析、应用监视等等。
威胁建模DevSecOps工具用以在复杂的攻击界面中识别、预测并定义威胁,以便用户可以做出主动安全决策。有些工具可根据用户提供的系统及应用信息自动构建威胁模型,并提供可视化界面以帮助安全及非安全人员 探索 威胁及其潜在影响。
1. IriusRisk
()
出自 Continuum Security 的解决方案,既可云部署,也可现场部署,能以基于问卷的界面自动化风险及需求分析,并设计出威胁模型和技术性安全要求。IriusRisk还可帮助用户管理代码构建及安全测试阶段。
2. ThreatModeler
()
该自动化威胁建模系统有两个版本:AppSec版和云版。在提供了用户应用或系统的功能性信息后,ThreatModeler会基于更新的威胁情报自动就整个攻击界面进行数据分析和潜在威胁识别。
3. OWASP Threat Dragon
()
一款基于Web的开源工具,提供系统图解和用于自动化威胁建模与缓解的规则引擎。Threat Dragon 承诺可与其他软件开发生命周期(SDLC)工具无缝集成,且界面易于使用。
在开发过程中测试应用以找出潜在漏洞是DevSecOps的关键部分,能够事先发现安全漏洞,避免漏洞被黑客利用。尽管其他工具往往包含了测试功能,比如Parasoft出品的那些,下列工具仍然在应用安全测试上表现强劲。
1. BDD-Security
()
该出自 Continuum Security 的开源框架可使安全人员在敏捷开发过程中测试行为驱动开发(BDD)语言编写的功能及非功能性安全场景。此BDD框架旨在使安全功能独立于应用特定的导航逻辑,让同样的安全要求能够更容易地应用到多个应用程序上。
2. Checkmarx CxSAST
()
可对25种编程及脚本语言进行未编译/未构建源代码扫描的静态应用安全测试(SAST)工具,能在SDLC早期发现成百上千种安全漏洞。CxSAST兼容所有集成开发环境(IDE),是Checkmarx软件暴露平台的一部分——该平台可在DevOps所有阶段植入安全。Checkmarx的交互式应用安全测试(IAST)工具可检测运行中应用的安全漏洞。
3. Chef InSpec
()
整个开发过程中的每一阶段都可以运用该开源工具自动化安全测试以确保针对传统服务器及容器和云API的合规、安全及其他政策要求。
4. Fortify
()
Micro Focus 出品,提供端到端应用安全,可供进行覆盖整个软件开发生命周期的现场及按需测试。Fortify on Demand 是 Micro Focus 的应用安全即服务产品,提供静态、动态和移动应用安全测试,以及生产环境中Web应用的持续监视。
5. Gauntlt
()
流行测试框架,旨在推动易操作的安全测试及安全、开发和运营团队间的沟通。GauntIt便于产生攻击测试用例,且能方便地钩入现有工具及进程。
6. Synopsys suite
()
Synopsys提供多个应用安全测试工具,包括:
1)SAST工具Coverity
()
自动化测试且融入持续集成/持续交付(CI/CD)管道;
2)SCA工具 Black Duck
()
采用容器及应用中的开源和第三方代码检测并管理安全;
3)SeekerIAST
()
识别可暴露敏感数据的运行时安全漏洞;
以及一系列用于应用安全测试的托管服务。
以下DevSecOps工具同样含有上述工具提供的功能,但或多或少略有不同。
1. Aqua Security
()
在整个CI/CD管道和运行时环境中管理端到端安全,可用于所有平台和云环境的容器及云原生应用。
2. Dome9 Arc
()
被 Check Point 收购,提供自动化测试及安全实施,使开发人员能够将安全及合规融入公共云应用的构建、部署及运营。
3. GitLab
()
该工具可将DevSecOps架构融入CI/CD过程,在提交时测试每一块代码,使开发人员能够在编程期间缓解安全漏洞,并提供涵盖所有漏洞的仪表板。
4. Red Hat OpenShift
()
为基于容器的应用提供内置安全,比如基于角色的访问控制、以安全增强的Linux(SELinux)实现隔离,以及贯穿整个容器构建过程的核查。
5. RedLock
()(前身为Evident.io)
Palo Alto Networks 出品,适用于部署阶段,帮助开发人员快速发现并缓解资源配置、 *** 架构及用户活动中的安全威胁,尤其是在亚马逊S3存储桶和弹性块存储(EBS)卷上。
6. SD Elements
()
出品自 Security Compass 的自动化平台,旨在收集客户软件信息,发现威胁及对策,突出相关安全控制措施以帮助公司企业实现其安全和合规目标。
7. WhiteHat Sentinel 应用安全平台
()
该解决方案提供贯穿整个SDLC的应用安全,适用于需将安全集成进工具中的敏捷开发团队,以及需持续测试以保证生产环境应用安全的安全团队。
8. WhiteSource
()
用于解决开源漏洞,可集成进用户的生成过程,无论用户采用什么编程语言、生成工具或开发环境。WhiteSource使用经常更新的开源代码数据库持续检查开源组件的安全及授权。
手机软件开发管理过程中,如何采用敏捷开发模式
1 传统的瀑布模式软件开发不能满足正规公司的软件开发要求
1-1 手机软件公司大,小之分
目前手机软件公司应该说一个参差不齐,
(2)一般公司做法,有一定规模的公司,在软件开发过程中,引入了项目管理思想按照传统的瀑布方式的软件开发模式在做软件管理,按照软件需求分析,软件概要设计,软件详细设计,编码,集成,软件测试,软件发布流程在做项目计划,项目管理按照这个项目计划进行软件开发控制,软件项目管理仅仅是强调了软件开发计划和软件开发控制,对于整个软件实施构思,已经如何实施才能达到项目要求,指导比较少?
针对于目前手机软件需求变化极快的情况,此开发模式在多项目情况下,软件需求确定,软件开发计划确认,软件开发反馈以及沟通,分工在实际实施过程中,都会往往应为一些软件需求变更导致项目交付有问题!
(3)软件成熟度较好的手机软件开发公司,引入了PM,按照CMM流程重视软件开发过程控制以及软件开发技术积累,同时为了能适应手机软件开发需求变化比较快的特点,不采用传统瀑布模式软件开发,引入了敏捷开发模式,在软件实践过程中,引入了FDD,ASD,XP的敏捷开发模式,在软件开发过程中,强调以构架为中心,以需求为驱动的迭代开发模式,通过构架,确保软件的可扩展性和接口合理性,强调接口设计,方便于迭代和合作开发;通过需求驱动,把每一个需求功能,作为一个user 测试点独立开发,先进行每一个user feature 验证,然后集成,通过每一个user feature的验证中,引入客户参与以及反馈确认,从而控制开发过程质量以及需求匹配程度,减少软件开发偏差!
1-2 采用敏捷开发好处
引入敏捷开发,通过需求阶段,需求管理敏捷,在需求管理过程中,以客户为中心;
软件构架,采用敏捷分析,客户,测试,研发共同参与,让虽有参与,可以尽快获得客户反馈,以便于保证工作正确性;
敏捷开发,强调接口,合作,迭代集成,迭代测试;
敏捷测试:尽快确认研发是否适合需求,并且反馈;
如果整个团队内部都已经能熟练的实施后,可以考虑实行分布式的敏捷开发;即机制外包开发或者异地机构开发管理;
分布式敏捷:
快速达成共识---沟通以及反馈确认通畅---敏捷开发
2-1 敏捷开发工具
CC,SVN--软件配置工具;
CQ,BUGFREE---测试管理工具
开发论坛:WIKI;技术共享,目标共享,计划共享,接口共享 *** 工具:沟通工具
低代码开发可以解决那些问题?
根据Forrester在2014年提出的定义,“低代码”是指“利用很少或几乎不需要写代码就可以快速开发应用,并可以快速配置和部署软件的一种技术和工具”!
1、低代码开发平台可以帮助企业解决哪些问题?
对此T研究发布的《2020年中国低代码平台指数测评报告》给了我们答案,主要是三方面:
A、降门槛。低代码开发平台基于业务形式进行代码封装,并提供了可视化、可拖拽的便捷
式操作,减少了大量单纯的代码编程操作,降低了开发门槛。
B、促交付。多数应用可通过简单拼搭、配置完成,开发难度降低;复用成熟代码降低了代
码出错风险,,应用开发周期缩短,交付效率提升。
C、固基础。低代码平台汇集开发资源,促进系统流程的标准化、规范化和统一化。支持企
业应用的构建、分发、安装、运维、升级,快速响应业务需求、支持企业加速数字化转型。
2、用户使用低代码开发平台主要在哪些方面?
随着对客户需求理解的深入挖掘与不断探索,个性化、定制服务等业务的不断出现,应用开发/更新、部署的周期不断缩短,企业对应用持续交付的诉求愈发明显。根据T研究的调查,用户最为关心的低代码平台功能特质主要包括:可视化流程设计能力、复杂业务逻辑设计能力、动态报表设计能力!
一切管理和信息化解决方案的本质是提升效率,低代码开发平台以其创新的思维和视角提供了软件开发提速和业务变革的新路径,必将成为企业的赋能神器!
虚拟化有哪些应用?
虚拟化技术具有可以减少服务器的过度提供、提高设备利用率、减少IT的总体投资、增强提供IT环境的灵活性、可以共享资源等优点,但虚拟化技术在安全性能上较为薄弱,虚拟化设备是潜在恶意代码或者黑客的首选攻击对象。
目前常用的虚拟软件有VMware、VirtualPC以及微软在推的windowssever2008中融入的Hyper-v1.0。自从全球经济危机开始,虚拟化技术被广大企业迅速应用,2009年也是虚拟化技术大潮兴起的一年。
1、高校信息化建设中的应用
高校信息化建设从20世纪90年代开始,已经经历了单机环境、C/S架构、B/S架构、SOA等多个发展阶段。目前,高校信息化建设已经涉及到高校的教学、科研、管理、生活、服务等相关领域,所需要的计算机平台、存储环境和 *** 环境多种多样,随之也带来了IT基础设施的资源利用率低和管理成本高等问题。将虚拟化技术应用到高校信息化建设中,既能提高高校信息基础设施的效率,也能提升信息化基础平台的可靠性和可维护性,降低IT相关管理成本。
2、企业管理上的应用
企业应用虚拟化技术时,主要集中在与对企业服务器虚拟化管理以及企业信息化建设应用中。
虚拟化技术在云计算中的应用
1、服务器虚拟化
服务器虚拟化技术可以在单一的物理服务器上运行多个虚拟服务器,并且为虚拟服务器提供了能保证其正常运行的硬件资源抽象,比如虚拟BIOS、虚拟CPU、虚拟内存、虚拟I/O设备等等,同时还可以使虚拟机具备良好的隔离性和安全性。在云计算中,服务器虚拟化技术也可以将一个云计算服务器虚拟成若干个服务器使用,但服务器虚拟化需要具有封装性、多实例、隔离性和高性能这些特性,才能保证在实际环境中进行有效的运用。封装性指的是硬件无关性,意思是在使用了服务器虚拟化技术后,一个完整的虚拟机环境对外表现为一个单一的实体,便于在不同的硬件间备份、移动和复制等。多实例是指在一个云计算物理服务器上,支持多个客户操作系统,运行多个虚拟服务器。隔离性是指当服务器虚拟化为多个实例时,一个虚拟机与其他虚拟机能够完全隔离。使用隔离机制的好处是即使其中的一个或几个虚拟机因意外发生崩溃,其他的虚拟机也不会泄露数据,受到任何影响,保障了数据的安全。高性能是指服务器虚拟化的性能损耗要被控制在可以承受的范围之内。
2、 *** 虚拟化
通常 *** 虚拟化包括虚拟专用网和虚拟局域网。由于虚拟专用网抽象了 *** 连接,所以远程用户可以像物理连接一样访问组织内部的 *** 。而且虚拟专用网还可以防止来自Internet或Intranet中其他网段的威胁,使用户能够安全、快速地访问数据,极大的帮组了 *** 管理员对 *** 安全的管理。虚拟局域网技术可以使其内部的通信类似物理局域网,将多个物理局域网划分到一个虚拟的局域网中,同时也可以将一个物理局域网划分成多个虚拟局域网。目前虚拟专用网和虚拟局域网在云平台搭建中均有使用,成为云计算服务的一个重要支撑技术。
3、存储虚拟化
*** 存储系统随着信息业务的不断发展已经成为企业的核心平台,随着企业高价值数据的应用,对 *** 存储平台的要求也越来越高。 *** 存储平台性能的好坏直接影响企业整个云平台的运行,因此对 *** 存储平台的存储容量、数据传输、数据管理和运行、扩展能力上都提出了更高的要求。正因为这个原因,存储虚拟化技术应运而生。
云存储是一个以数据存储和管理为核心的云计算系统,是一个复杂的存储虚拟化、自动化的过程。通常在云计算构架中,云用户终端没有任何的储存设备,他们只管享用云中的存储服务,不必了解具体的存储过程,也不需拥有具体的存储设备。使用存储虚拟化技术可以将逻辑存储单元整合在广域网范围内,并且存储单元从一个磁盘阵列移动到另一个磁盘阵列上时可以不需要停机。云计算存储系统中使用存储虚拟化技术可以大幅简化存储资源的分配与管理,提高硬件利用率。数据管理员只需要通过通用的管理界面就能对数据进行管理和控制,大大减少了交互操作的工作。
4、桌面虚拟化
桌面虚拟化可以解除用户的桌面环境和终端设备的耦合关系。用户的完整桌面环境可以存储在服务器中,桌面虚拟化技术可以让用户通过不同的具备有足够显示功能和处理能力的终端设备通过 *** 来访问桌面环境。比如用户或维护人员可以通过智能手机、个人电脑或者平板电脑等终端设备通过 *** 来配置PC或其他客户端设备,而不必去每个用户的桌面管理这么多的客户机,大大减轻了维护工作量,也加强了对客户端设备的管理和控制。
Agile敏捷管理
目录:
一、什么是Agile
二、什么样的团队适合Agile
三、敏捷开发的实施步骤(SCRUM)
四、Agile敏捷管理的具体实施
五、敏捷工作坊的体验
六、结语
七、附:SCRUM在教育和 *** 领域的应用
从本质上讲,敏捷(Agile)并不是开发 *** ,而是一种理念。对于项目管理而言,敏捷是一个全新的术语,敏捷强调在软件研发过程中持续性的根据用户反馈和需求优先级来发布新版本,不断进行迭代,让产品逐渐完善。
在数十年前,瀑布式项目管理是软件研发的主流 *** ,在研发过程中,团队成员将会花大把的时间和精力在项目前期去收集资源和信息,然后基于这些去做产品设想和研发规划。
到了70年代,有先觉的研发人员发现瀑布式研发不仅在执行中各处受限,研发速度还很慢,显然Out了。尤其到了90年代末期,开始出现黑客来捣乱,这就意味着前功尽弃、全部推倒重来,这简直是研发的噩梦。
相比瀑布基于线性、可预测性地去开发产品,研发人员更想要能够灵活管理用户反馈、Bug和需求的 *** 。这也就是敏捷 *** 出来以后受欢迎的原因。
另外,你也可以通过这个视频学习 什么是敏捷(Agile)
在2001年,17位研发人员共同探讨出了《敏捷宣言》这份文档,阐述了他们对于软件研发的看法。文中他们定义了敏捷开发需要遵守的四项价值观。
总结为:
尽管如此,这四项价值观并不意味着我们就该放弃工具、文档和计划。因为它们对研发结果依然有非常重要的价值,只是相比之下,我们应该关注更核心的事物:人、产品模型、协作和迭代。为了让这四项原则变得简单易懂好执行,他们又将写了 敏捷开发12项原则 作为指导:
如果我们把这些原则和遇到的问题对号入座,很快我们就会发现,这12项原则正是对应了客户期望。比如,客户不会关心开发文档写的怎么样,他们更感兴趣交付的成品能干什么;他们不在意你的开发计划,他们希望你能立马交付;昨天他们想要修个BUG,而不是等到下次版本更新。
我们总会遇到需求多样化的客户,而这时,敏捷能够确保你在研发过程中始终将用户需求作为核心。
敏捷虽然听起来光鲜亮丽,但不是所有项目都能用敏捷来做。
敏捷在公司里投入使用后可能与预想的结果背道而驰。敏捷意味着快速推进项目,也就是说并不是所有事情都是按部就班。因此,我们得知道在这种快速变化的环境下,团队是否能够适应变化。
所以在部署使用敏捷前,需要团队先明确几个问题:
1.你是否会愿意接手目标不明确的项目?
敏捷项目管理中有句话叫做:快速失败。比如我们接手了一个连最终产出都不明确的项目,首先我们会先交付最小模型产品,这时我们得做好被质疑的准备。毕竟没人知道要做出怎么样的产品,所以我们的最小模型的产品很可能是个怪胎。在与客户反复测试后,我们才会逐步了解他们的真实需求,这时候我们离成功又近了一步。
2.你会如何规避项目风险?
就像我们前面提到的,敏捷提倡不断从犯错中积累学习并持续迭代。如果我们走老路,用传统项目管理的 *** 来推进的话,我们会要承担更大的风险。当然就算我们开始敏捷之后,也要准备好随时响应未知问题。
3.你的团队能有多灵活?
作为项目经理,我们的责任是和客户一起把产品做的更好。这么做很可能和设计、研发、其他成员的想法背道而驰。这时我们需要找主心骨聊一聊,是否愿意放下老套路,根据用户需求来调整想法、重新规划方向。
4.公司阶层制度严格吗?
敏捷的其中一项原则不仅是和用户一起工作,研发成员的身份也会发生变化。你们公司的文化开放吗?是否能接受扁平和开放的管理 *** ?
5.你怎么衡量进度?怎么定义成功?
用敏捷来管理项目能够帮我们逐渐进步的同时也督促我们将产品做得更好。如果因为突发灵感而放弃正在执行的任务,那么敏捷将毫无意义。我们先花些时间来看看团队是怎么看待进步和成功。然后再来看我们是不是离最终目标一步步的更近了?
在Scrum中,产品经理和项目团队紧密协作,一起定义目标、梳理产品需求清单。清单中通常会包含产品特性、修复bug、非必要功能需求以及其他要在交付时完成的工作。
有了产品清单,产品经理就会开始确定需求优先级,研发团队通常会在接下来30天左右的迭代中产出“潜在可交付版本”。当研发团队制定了迭代清单后,除了团队成员外,任何人都不能再加入需求。当一轮迭代完成后,全员再次分析需求清单、划分需求优先级,然后进入下一轮迭代。
1.三个角色
2.三种可视化文档
另外,用户故事要注意必须完整,遵循INVEST标准:
Independent——让一个用户故事独立于其他用户故事
Negotiable——可协商性,协商更多细节
Valuable——必须对客户具有价值
Estimable——开发团队需要衡量用户故事,以便确定优先级和工作量,并便于安排工作计划
Small——规模小,至少要确保在一个冲刺周期中能完成、
Teatable——可测试,便于确定它是可以完成的
3.三种不同形式的会议
1、确定敏捷开发中的3个角色:Product Owner, Scrum Master, Scrum Team。
2、拟定待办事项清单,并确定优先级
3、改进和评估待办事项清单:
·要完成这些事项,现有信息足够吗?
·是否细分到了可以评估的程度?
·是否成员都能接受,用于评定一个事项已完成的标准?
·用相对难度去评估,利用斐波那契数列的数字
4、冲刺规划会:Product Owner, Scrum Master, Scrum Team一起规划冲刺的内容,记录每个冲刺完成事项的点数
5、将工作透明化:利用白板和燃尽图更新进度
6、每日站会
7、冲刺评估和冲刺展示:将成果展现给产品负责人看,哪些事项可以移到“完成事项”一栏,并接受评价。
8、冲刺回顾会
9、上一个冲刺阶段结束之后,立刻开始新的冲刺阶段
在冲刺阶段结束之际,把所有已完成的用户故事列出来,将各项难度评分加在一起,最终的数字就告诉我们团队的进度是多少。然后再看未完成用户故事的难度分值总和,就可以知道什么时候可以完成项目。
速度 X 时间 =交付工作量
敏捷非常注重节奏,当你有多个任务要交付,团队更需要注重节奏的把握。而身为项目经理,我们的职责是让整个团队通过协作最终交付产品。
敏捷是不断规划、执行、学习和迭代的过程,敏捷项目通常可以分解为一下7步:
第1步:通过战略会议定义你的愿景
每当开始新项目时,之一件要做的事情是定义产品的业务需求,或者说想要达到的愿景。事实上,我们只需要回答一个问题:你为什么想要做这个产品。这是我们心中的蓝图,时时提醒我们不要跑偏。
作为一家产品公司,定义愿景的更佳 *** 之一是电梯演讲:
用于:(哪部分目标客户)
需求:(用户的需求)
类别:(我的产品是哪种类型)
功能:(产品的价值、客户为什么选我们)
竞品:(主要的竞争对手有哪些)
差异化:(和竞品的差异化描述)
即使我们做的不是软件产品,我们也可以根据项目的目标来调整上述内容。
战略会议的参与角色都有谁?
此时我们要让更多人认同这个项目,所以很多关键的利益相关者自然不能缺席,包括相关主管、经理、主任和产品经理。
战略会议该什么时候召开?
项目开始前我们就该来开战略会,或者至少每年一次的定期会议来保证愿景依然不过时
战略会议要召开多久?
这个就由你主观来决定了,一般来讲,花4-16小时来探讨战略已经足够了。
第2步:绘制产品路线图
当我们开完战略会后,就该轮到产品经理把愿景变成产品路线图。产品路线图能帮助我们纵观全局、理清思路,让我们有宽松的时间来开发每个产品需求。“宽松”并不是说我们可以花数天或是数周的时间来推进每步计划,而是轻量级的去定义产品、理清需求优先级和粗略估算产品每个需求的时间。
项目管理专家Roman Pichler认为:目标导向的产品线路图能够聚焦于目标和产出结果(比如:获客、增加活跃度、满足客户需求)。而产品特性来自于这些目标,所以我们在制定目标时应谨慎,每个目标对应3-5个产品特征。
而每个目标,我们需要包含5个关键信息:时间、名称、目标、产品特征和衡量标准,有了这些,我们就能清楚知道哪些该做、什么时候算做成功了以及我们如何取得了成功。
产品路线图由产品负责人画,同时听取利益相关者的想法,如客户、市场、研发代表等,并更好在战略会议结束后着手画产品路线图。
第3步:制定发布计划
当我们有了战略和计划,下一步我们就可以暂定几个时间节点。
这个阶段产品经理要严格按照计划发布新版本。我们也不用担心功能不齐全的问题,敏捷项目都会有多次发布的过程,所以我们只要优先发布核心功能的版本即可。
举例来说,你的项目要在11月交付,而你可能在2月初就已经做好了最小模型,打算在5月左右发布完整版。这些时间节点的安排都将由你的项目难度和每次迭代时长(或者说每次达成目标需要的工作时长)决定。通常每次发布新版本都需要经历3-5次迭代。
谁来制定发布计划?
产品经理、项目经理和所有团队成员都该来参与其中。当然,邀请少数利益相关者来加入其中也是对其他成员的鼓励,让团队能够尽早开始。
发布计划什么时候来做?
越早越好,你的发布计划应该在确认新产品后的之一天开始制定。在随后的每个季度中至少记录一次。
制定发布计划要多久?
一般来说会需要4-8小时,实际时长由具体情况决定,但不能因为它拖进度。
第4步:制定迭代(Sprint)计划
迭代(Sprints),我将其理解为通过短期研发完成具体任务来达到目标的一个过程,也是帮助产品经理和研发团队逐渐切入项目细节的 *** 。
通常情况下,每次迭代大约要花费1-4周。具体的时长我们需要根据团队过往的表现情况来制定,同时尽量保持每次迭代的时长相同。
哪些角色参与制定迭代计划?
迭代是整个团队的活,因此,产品经理、项目经理以及其他所有成员都该积极参与其中,表达自己的声音和想法。
迭代计划什么时候来制定?
在每次迭代周期开始前,我们就需要做好迭代计划。比如说,你的计划是每周迭代,那么就你就需要在每周一(或者你选好的某一天)告诉其他人迭代计划。
制定迭代计划要多久?
迭代计划是迭代周期的基石,虽然如此,我们也不要在这上面浪费过多的时间,通常2-4小时足够了。写好了迭代计划也就意味着我们已经踏上了正轨。
第5步:每日站会
在每次迭代过程中我们需要有时间来确认项目组没有遇到阻碍,同时保证能准时完成既定目标。这时候我们就需要使用每日站会。
每日站会,如同字面意思一样通俗易懂,每天花15分钟左右的时间来讨论下面3件事:
昨天我完成了哪些事情
今天我打算做哪些事情
我有遇到哪些问题,如何解决
或许讨论这3件事,可能让团队的一部分人的脸挂不住。但这对推动敏捷项目管理的沟通有积极意义。敏捷之所以能够跨团队协作,主要依靠的就是团队快速响应和有让成员发声表达的空间。
第6步:迭代(Sprint)结束了?那就进入评审阶段吧
如果迭代中一切顺利,那么迭代周期结束后,我们需要来检测下软件的功能。我们可以借评审的机会来向团队成员和利益相关者展示成果。
作为产品经理,你对产品功能有选择的权利。如果有哪步错误,尝试多问几个为什么?下次迭代时我该怎么调整才能让团队达成目标?敏捷是不断学习和迭代的过程,你的流程管控和最终产出也是同一道理。
哪些角色参与评审?
团队全员和利益相关者都应该参加迭代评审会来确认项目进度和表达他们的观点。
什么时候执行评审?
每次迭代结束后就可以开始。
评审阶段要多长久?
无需特意去准备PPT、功能说明,审查会最多1-2小时就够了。
第7步:迭代(Sprint)回顾总结
为了让敏捷项目管理能顺利运作,我们在每个阶段结束后需要知道下一步要做什么。这是我们在迭代回顾阶段要做的事。当迭代和审查结束后,接下来该去决定下次要做哪些工作。我们需要回顾下,在迭代中是否发生了些事情改变了你的既定时间,甚至是项目愿景。
谁来参加回顾总结会议?
回顾总结是审查的延伸,这时利益相关者离开也没有关系,而其他团队成员则加入其中,给出自己的意见。
什么时候来做?
当然更好是在审查阶段结束后,立刻开始迭代回顾总结。
这会花多长时间来做?
概括下来大概几个词:简短明了、甜蜜温馨,最多花1-2小时来总结和大致规划下次计划。
工作坊的体验主要是让学员大概体会一下运用敏捷的方式开发项目的流程,并通过一些敏捷工具深化在敏捷开发过程中的运用。
1、 *** 自行车项目
(1)分组并确定团队内敏捷3个角色
(2)定冲刺周期(每10min1个sprint,3个sprint)
(3)在冲刺开始前,给每个组15分钟开战略规划会,此期间验收人对自行车提出需求,要满足什么样的功能,团队开战略会列出任务清单。
(4)每个sprint结束后给每个组7分钟开站会
(5)每个组的SCRUM Master更新看板和燃尽图
(6)进行项目验收,对成果进行点评
(7)结束后小组内进行总结回顾会
2、乐高堆房子项目
(1)分组并确定团队内敏捷3个角色
(2)定冲刺周期(每15min1个sprint,4个sprint)
(3)在冲刺开始前,给每个组15分钟开战略规划会,此期间验收人对自行车提出需求,要满足什么样的功能,团队开战略会列出任务清单。
(4)每个sprint结束后给每个组10分钟开站会
(5)SCRUM Master更新看板和燃尽图
(6)在第三个Sprint开始时,要求团队内交换2名成员到其他组完成自己组的任务,期间不得交流,只能依据看板进行
(7)进行项目验收,对成果进行点评
(8)结束后小组内进行总结回顾会
七、SCRUM的应用
1、SCRUM与教育
教师首先让学生对自己的性格做评价,将自己划分为不同类别,分为”勇敢类“,“喜欢数学类”,”关心他人感受类“,”勇往直前实现目标类“,将不同类型的学生组合在一起,形成多功能小组。教师拟好所有待学事项,让各小组的学生每天将“所有事项”移到“待办事项”中,然后开始动手,打开教材,自己学习,组内互教互学。教师从“完成事项”一栏随机挑出一些事项问组内成员,以确定每个人都理解相关概念,只有当每个人都理解了之后,才符合所说的”完成的定义“,一切交给学生来做决定。
2、SCRUM与 ***
制定政策:每周都去改变一件事情,采用增量 *** ,每周都会展示一种可交付的产品,每个机构都会切实感受到成果的存在。
书籍建议:
《敏捷革命:提升个人创造力与企业效率的全新协作模式》
SCRUM的一些工具:
Leangoo(领歌)——基于看板的可视化协作
Confluence——Jira
国外有Redmine,Axosoft,国内有禅道,一些自研工具(百度Icafe,阿里Aone,腾讯Tapd)
劳伦斯在《七根智慧之柱》中写道:所有人都做梦,但是却不尽相同,那些夜里在蒙灰的心灵角落做梦的人,早上醒来往往发现是空洞虚无的。而那些白日做梦的人,则是最危险的,因为他们会在睁着眼睛做梦的时候,把梦想变成现实。
看了这么多,不如试一试吧!此文由个人整理而来,主要来源于个人在敏捷团队时敏捷开发的逻辑和思考,以及明道云博客和敏捷相关书籍、英文文档翻译等。如有疑问或补充,欢迎评论下方交流~