一般一个前端项目完成需要多久_一种按周迭代的敏捷式项目管理方法

项目管理有很多理论,并且相关内容非常丰富,例如经典的项目管理的教材《项目管理:计划、进度和控制的系统方法》,字数达到了100万字。

但是从源头来说,经典项目管理理论都是源自于对生产项目的过程中需要的管理的总结。对于一个大型硬件设备的生产,需要组织庞大的供应链体系、工厂部门,所以需要合理的理论做指导。但是这种理论应用于互联网环境时,由于本身出发点要解决的问题的场景的巨大不同,变得并不是很适配。

项目管理,是计划、进度和控制的系统方法,也就是说,是一种方法论。所有的方法都是为了解决问题的,总体上来概括,可以认为项目管理的目的是在明确的目标下,让资源的利用率最高,成本最低。

对于一般的互联网团队来说,没有传统意义上的资源的管理了(连机器的管理都是云服务化),那需要控制的,基本就是人。所以,很多内部团队,不配置,也不需要配置项目经理,项目推进的工作就由产品经理顺手干了。

但是问题在于,人力这个东西,尤其是智力型人力这个东西,伸缩空间极其之大。我曾经跟的一个项目,开发给排出了96人月的排期。然而最终差不多是6个人干了三个月完成的一期交付。

同样的,还遇到过需求评审完了,在旧的功能上迭代,一个前端下拉框的修改,前端工程师给出0.5人日的排期。

不合理的排期有可能是开发本人的原因,大概率其实往往是团队管理的原因。一个管理不善的组织,会让开发来回的交叉做事情,经历过一两次吃亏后,再进行需求排期时,他就会留出非常非常大的余量。这样,如果有交叉的工作了,还能应付,不至于加班到半夜,要是没来交叉的工作,还能轻轻松松早点下班或者在公司磨磨洋工。这种情况,最终导致整体组织效率非常低下,而员工也不满意。因为要么一堆活加班到半夜,要么闲着磨洋工。

以人的特新来说,对于任何事情,最怕的是不可控,对于不可控人心里是会恐惧的。

消除多人协作的混乱的一个很好的方法,就是节奏感。就好比交响乐、那么多人每个人都在独立演奏,但是指挥带来的节奏让几十号人能够有条不紊的进行自己的演奏,每个人都清晰的知道自己什么时候该做什么,并且相信其他人也会按时完成自己的事情。从而达到整体的清晰明畅。

什么是节奏感呢?

音乐的节奏感的最直接的提现就是节拍器,固定时间打一个拍子。工作也可以有这种节奏感,就是固定时间周期,一个节点。

节奏感的不同,是瀑布式项目管理和敏捷式的一个重大区别。

瀑布式和敏捷式

瀑布式项目管理的典型表象特征:

1、产品经理产出需求文档
2、设计、开发、测试评审
3、设计、开发、测试工作量评估,一般是基于功能产出工时表格。
4、设计师基于设计的工作量评估,预估交付设计稿的时间,然后在规定时间出设计稿,评审
5、开发启动开发、基于工时评估,确定提测日期
6、提测后,测试基于工时评估定完成测试日期。
7、产品和项目验收、确定上线日期、上线。

这种方式的项目管理,每个时间点是以及与每个角色的人对于自己工作量的评估来决定的。所以,每个节点的耗时可长可短,由相关角色或者角色的主管来确定。每个节点的时间是随机的,是依赖前一个人的工作的。

敏捷式的项目管理的一些表现:

1.日会、周会
2.设定固定迭代周期
3.大迭代里套小迭代
举个例子,以周为周期迭代,工作流程如下图:

23304519ae07ab175899acd43be6181b.png


按周迭代的敏捷项目管理

第一周,产品设计和 UI设计,同时拆分工作。

第二周,产品设计下一模块(如果需要),开发开始开发产品第一周设计的产品(基于优先级)并提测。

第三周,产品继续下一模块设计(如果需要),开发进行下一模块设计,测试启动第一模块测试。

这里的周期设定为周,实际可以给予团队规模、项目特征,设定为双周或者月。例如,微信团队是多个部门多个团队要协作开发,他们设定的迭代周期为月。每个月的最后一周,项目经理组织多个部门的产品经理共同制定下个月的开发计划。

对于敏捷式执行顺利的团队,每个角色,对于每周做的事情,交付的内容都有明确的目标。对于工作量的预估,不再是基于一个事要做多久,改为一周能做多少事情。为了配合整体节奏,整个团队就要尽可能保持相同步骤、相同节奏。带来的好处是显而易见的:

1.不再完全依赖开发主管对于工作量的长周期评估——这种评估很大程度上并不是很靠谱。
2.不再产生由于开发资源紧缺导致的来回切换工作的并行开发——最起码这一周,这个人就是这个事情。
3.团队配合更加默契,这种项目推进方式,一般要求相对固定的产品、开发、测试人员。团队之间在几次迭代之后,变得更加默契,效率更高。
4.团队成员焦虑感减少。每个人每周需要做什么、交付什么是很明确的、可预期的。不确定感减少。产品不需要每次需求再跑去申请资源,开发不用担心来回插入工作、测试也不用来对插入工作。
5.综上,带来的是整体效率的提高,水分的减少。

习惯瀑布式项目推进方式的团队或者个人,切换到上面迭代的方是时会有巨大的不适应。包括提出巨多关于实现上述项目推进方案的难点或者可行性的问题。典型的包括:

不可能工作都刚好拆到一周做完;
不可能给你固定的人;
要和其他团队合作,经常有插入需求。

还有一些阻力来自于,修改项目推进方式,可能会让某些成员觉得自己的话语权降低(比如之前主要工作是决定人力分配而很少写代码的开发主管),进而抵制。

对于习惯瀑布式的人来说,切换到敏捷式的另一个阻力在于,他会觉得工作被打散了,目标不够清晰。

关于目标的问题,其实是另一个问题,不管是敏捷式还是瀑布式,都是在目标清晰的情况下组织人力工作的方式。也就是说,目标清晰,是进行项目开发前需要完成的工作。敏捷式不是产品经理偷懒的理由。

目标是会变动的,但是项目推进过程中目标应该是清晰的。敏捷式带来的另一个好处是,应对目标的变动会更加及时。

即使推进团队接受敏捷式的项目方式,由于人们巨大的行为惯性,依然会习惯的拿一个需求,问下排期,定下哪天到哪天开发。由于这种思维习惯,就让敏捷的节奏特征被打破了。所以要推进团队进行敏捷式的项目推进,要没完没了重复强化一种思维,就是评估工作不在是工作要做多长时间,而是固定时间内能做多少工作。当思维方式从明确工作估时间转变成了固定时间塞工作,你就掌握了敏捷式的精髓了。

总结一下,如果团队遇到下面这些问题,可以考虑改为使用敏捷式开发:

1.各种紧急需求来回插入,项目总是延期
2.产品经理抱怨开发评估时间乱估
3.定好的开发总被挪走去支援紧急需求
4.产品经理需求变来变去,经常开发到一半前面废掉了
5.需求方经常冒出来紧急需求,应付困难。
按周迭代的敏捷式,执行的要点:
1.给与所有需求方一个预期,提任何需求,最少提前两周,也就是需求本周提,最快下周开发,最快下下周上线。
2.产品经理能给出大致的总体目标,需求详情可以分阶段产出。
3.产出的需求详情能够基于逻辑和依赖关系进行分层和分块,合理标注优先级
4.日会同步最新进展和问题
5.周会,总结本周开发进展,开发内容提测,安排下周开发的工作,切记是按照下周的时长塞入具体工作,不需要开发评估具体工期,就问这些工作,下周能完成多少。总结测试进展,将能够上线的模块整合上线,安排下周测试任务。
6.月度总结。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352476.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel连接mysql 数据库

最近做个项目需要对收集到的数据进行实时刷新,原先考虑让获得的数据之间输出到txt文本,然后又文本导入到数据库,但是txt在修改查找的时候要把数据都读入到内存在进行相关改动,这样就很耗内存,而且文件占用率比较高&…

python jieba库下载_Python中jieba库安装步骤及失败原因解析

Python 中 jieba 库安装步骤及失败原因解析 作为计算机小白, Python 的流行也让我蠢蠢欲动, 在请教计算机 专业同学后,开始上网课自学 Python 基础知识。今天老师简单的一 句话“在命令行去运行 pip install jieba 的指令”安装 jieba 库&…

开放源代码库指南

微软.NET开发团队在博客上(https://blogs.msdn.microsoft.com/dotnet/2018/10/15/guidance-for-library-authors/)刚刚发布了.NET Library Guidance的第一个版本。这是一系列全新的文章,指导你为.NET创建高质量代码库。该指南包含我们已确定的…

[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

在数据库和excel对接中有可能会出现错误“[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配” 本人发生这种情况的是在excel 在选定数据连接向导的时候,这是驱动程序和excel的体系结构不匹配; 环…

python程序写诗_python写的简单发送邮件的脚本

近来有些东西需要监控报警发邮件,然后在网上找了点材料,自己写了一个简单发送邮件的脚本,主要就是运用python的smtplib模块,分享给大家看一下: #!/usr/bin/env python # -*- coding: utf-8 -*- #导入smtplib和MIMEText…

多线程的运行状态

多线程运行状态 线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。 新建状态 当用new操作符创建一个线程时, 例如new Thread(r),线程还没有开始运行,此时线程处在新建状态。 当…

LOAD DATA INFILE 语法

原文地址:http://blog.sina.com.cn/s/blog_539f03f00100xfxb.html mysql 的LOAD DATA INFILE 是一个高速insert的不错的方案 篇文章语法介绍的比较详细,转载,记录。 其实我就这样用: load data infile /home/mark/data_update.sql replace i…

@configurationproperties注解的使用_SpringBoot常用注解的简单理解

不定时更新...文章目录Spring容器JavaBeanPOJOAutowiredControllerResourceRestControllerServiceRepositoryMapperComponentEntityTransactionalBeanResponseBodyRestControllerRequestMappingPathVariableRequestParamRequestBody ValueSpringBootApplicationConfigurationPr…

3. Recursive AutoEncoder(递归自动编码器)

1. AutoEncoder介绍 2. Applications of AutoEncoder in NLP 3. Recursive Autoencoder(递归自动编码器) 4. Stacked AutoEncoder(堆栈自动编码器) 1. 前言 今天主要介绍用在NLP中比较常见的AutoEncoder的模型,Recursi…

python语言语块句的标记_NLTK基础教程学习笔记(十一)

语块分解例子: from nltk.chunk.regexp import * import nltk test_sent"The prime minister announced he had asked the chief government whip, Philip Ruddock, to call a special party room meeting for 9am on Monday to consider the spill motion.&qu…

Excel的VBA连接数据库方法

Sub GetData() Dim strConn As String, strSQL As String Dim conn As ADODB.Connection Dim ds As ADODB.Recordset Dim col As Integer 清空电子表格的所有数据 Cells.Clear 连接数据库的字符串 strConn "ProviderSQLOLEDB.1;Persist Security InfoTrue;User IDnam…

Python基础4

本节内容 列表、元组操作字符串操作字典操作集合操作文件操作字符编码与转码 1. 列表、元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作 定义列表 1names [Alex,"Tenglan",Eric]通过下标访问列表中的元素…

Catalan数(卡特兰数)

公式&#xff1a; n < 2 时&#xff0c; f(n) n; n > 2时&#xff0c; f(n) (4n - 2) / (n1) * f(n-1) 1-100的卡特兰数列表如下&#xff1a; n f(n) 1 1 2 2 3 5 4 14 5 42 6 132 7 429 8 1430 9 …

linux unix域socket_Socket通信原理

对TCP/IP、UDP、Socket编程这些词你不会很陌生吧&#xff1f;随着网络技术的发展&#xff0c;这些词充斥着我们的耳朵。那么我想问&#xff1a;1. 什么是TCP/IP、UDP&#xff1f;2. Socket在哪里呢&#xff1f;3. Socket是什么呢&#xff1f;4. …

LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 问题说明&#xff1a;当安装VS2012之后&#xff0c;原来的.NET 4.0会被替换为.NET 4.5。卸载VS2012时&#xff0c;不会恢复.NET 4.0。 l 当VS2012安装后&#xff0c;VS2010的cvtres.exe就无法使用了。…

NPOI打印设置

打印设置主要包括方向设置、缩放、纸张设置、页边距等。NPOI 1.2支持大部分打印属性&#xff0c;能够让你轻松满足客户的打印需要。 方向设置首先是方向设置&#xff0c;Excel支持两种页面方向&#xff0c;即纵向和横向。 在NPOI中如何设置呢&#xff1f;你可以通过HSSFSheet.P…

HDOJ 1030 Delta-wave

题目&#xff1a;Problem DescriptionA triangle field is numbered with successive integers in the way shown on the picture below. The traveller needs to go from the cell with number M to the cell with number N. The traveller is able to enter the cell through…

工厂模式个人案例_工厂设计模式案例研究

工厂模式个人案例我有一份工作来检查我们的项目代码质量。 如果我在项目中发现任何障碍&#xff0c;必须将其报告给我的团队负责人。 我发现了很多漏洞&#xff0c;我认为可以在博客上进行讨论。 不是嘲笑作者&#xff0c;而是一起学习和改进自己。 像这段代码一样&#xff0c;…

用Matlab实现字符串分割(split)

我们在这里借助正则表达式函数regexp的split模式。一般语法&#xff1a; S regexp(str, char, split) 其中str是待分割的字符串&#xff0c;char是作为分隔符的字符&#xff08;可以使用正则表达式&#xff09;。分割出的结果存在S中。 以下面这样一串字符为例 Hello N…

阅读笔记:基础知识(Java篇)

1. GC机制&#xff08;垃圾回收机制&#xff09; 找到垃圾的方法&#xff1a;引用计数法、可达性分析法 回收垃圾的方法&#xff1a;标记清除算法、复制算法、标记整理法、分代算法2. JVM内存划分 线程私有&#xff1a;程序计数器、JVM虚拟机栈、本地方法栈线程公有&#xff1a…