当前位置: 首页 > news >正文

app后端设计(7)-- 项目管理

    移动互联网行业是个快速发展的行业,需求不断变化,产品更新快。基于移动互联网的以上特点,在开发产品的过程中,我们放弃了传统的瀑布流开发模型,引入了精益的理念和scrum这个敏捷开发框架,下面谈谈实施过程中的一些经验。

 

 

   scrum简介:Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发周期包括若干个小的跌代周期,每个小的的跌代周期称为一个Sprint,每个Sprint的建议长度24周。在Scrum中,使用产品Backlog来管理产品或项目的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum的开发团队总是先开发的是对客户具有较高价值的需求。在每个Sprint中,Scrum开发团队从产品Backlog中挑选最有价值的需求进行开发。 Sprint中挑选的需求经过Sprint计划会议上的分析、讨论和估算得到一个Sprint的任务列表,我们称它为Sprint backlog。在每个迭代结束时,Scrum团队将交付潜在可交付的产品增量。

 

    我们的Sprint backlog是大概4周的时间,其中包括2天的sprint计划会议,2.5周的开发,每日例会穿插在开发时间里,1周的测试改bug1天的sprint评审会议和sprint回顾会议。

 

1sprint计划会议

 

    在开sprint计划会议前,产品经理必须所要实现的产品需求(产品Backlog)以用户故事的形式确定下来,并画好原型图,UI应该要出设计稿(在sprint计划会议前出设计稿很重要,因为设计对估算时间影响非常大)。产品经理同时确定各个产品需求的优先级。

 

    sprint计划会议期间(一般是2天),开发团队的成员不应该做任何的开发工作,把全部精力都放在把产品需求变为一个个开发任务,并对开发任务估算时间。

 

估算时间有几点注意:

1. 对于需要使用的新技术,要估算学习和调研的时间。

2. 根据统计,每个程序员每天的有效工作时间是5个小时左右,其他时间都被沟通,喝水,休息,上洗手间等占据,所以如果某个任务估算超过5个小时,那就代表了这个任务完成需要超过一天的时间。

3. 对于开发任务,估算尽可能的细,一般来说,每个任务的估算不应该超过5个小时,如果超过5个小时,就应该再把这个任务细分。只有尽可能细的估算任务,总的时间是大概精确地,因为估算时间是一个正态分布,有的任务估算的时间偏大了,有的时间任务估算的时间偏小了,估算越细,总体下来估算还是准确了。

 

    最后,根据产品经理的优先级和开发人员的估算时间,确定最终的开发任务和优先级,即完成Sprint backlog

 

2)日常开发

 

    在每个Sprint backlog,后台和app的交互都是通过api,所以由后台先写好相关的api并编写假数据,先让app端可以顺利开展工作。

    先编写api和假数据,有两个好处:

1. 能对整个开发计划有个总体的规范。

2. 相当于是TDD(测试驱动开发)。

 

    遇到问题的时候,必须要及时找相关的人员沟通。但这样有个问题,如果开发人员正在开发,被打扰可能会被决定很不爽,为了保证沟通的效果,可以:

1. 如果真的不是非常紧急,可以等相关的人员休息的时候再沟通。

2. 解决一个问题,先梳理情绪,再梳理人际关系,最后才是问题本身。多微笑,别苦着脸,平时待人以善,说好话,存好事,做好事,沟通的时候只针对问题,不针对别人的不良情绪。

3. 可以试一下番茄工作法。但根据我们自身的实践经验,效果不理想。

 

    在创业开发团队中,scrum master一般是由技术总监担任的。团队外部的沟通,必须统一通过scrum master。即如果市场部,运营部对开发团队有任何要求,必须要经scrum master同意后由scrum master传递进开发团队内部。团队内部的沟通,由团队成员自己解决,如果有重大的决策,必须经scrum master同意。通过scrum master遮蔽外部对开发团队的影响。

 

    在团队建设中,定期的团体活动是个很好的主意,我们一般是周四下午集体去打羽毛球。

通过团体活动,不但能加强团队的凝聚力,而且运动后,整个人沉闷的感觉都消失了,变得神清气爽,活力十足。

 

     在一个Sprint backlog中,需求不能变更,UI确定后原则上只能做小修改。

 

3)每日的例会

 

    在每天的例会前,每个团队成员应该更新自己的任务列表,包括:

1. 昨天完成了哪些任务,每个任务使用了多少时间,没完成的任务估算还需要多少时间

2. 更新总的剩余开发时间

 

    例会一般是产品经理和开发团队的成员都要参加,如果可以的话,让运营人员和市场人员也参加,这样可以使每个成员都公司的产品有个整体的了解。

 

    每个人在例会上说下面3方面的事情:

1. 昨天做了哪些工作。

2. 今天准备做哪些工作。

3. 有什么工作需要其他同事配合。

 

    注意,避免在会议上讨论问题,如果真的需要讨论,请在会议后和同事讨论,不要浪费整个团队的时间。

 

4)测试和修bug

 

    开发完成,就进入测试和修bug的阶段。如果人手不足,可以使用交叉测试的方式,即android开发人员测试iphoneappiphone开发人员测试androidapp,后台,运营,UI等人员看情况分配测试任务。

    针对每个bug,应该有3部分:

1. 问题描述和重现步骤

2. 测试人员

3. 负责解决这个bug的人员(这个人员一般由技术总监指定)

 

5sprint评审会议

 

一般是全体人员都参加,在测试和修bug后。

 

iphone的演示有个收费的工具,可以把iphone的屏幕通过电脑放到投影仪,android上没有哪个好用的工具!当时我们的方法是android演示的时候,用iphone的摄像头对着android机,通过iphone的收费工具在投影仪上看。

 

6sprint回顾会议

 

每个成员都要参加,每个成员都要提两点:

1. 在这轮sprint中值得表扬的点

2. 在这轮sprint中做得不好的地方

 

这个过程走两轮,即每个成员都要说2次。

注意,当一个成员提出自己的意见时,其它成员不作任何的批评。

 

 

7)及时反馈

 

在精益的理念中,很重要的两点是快速反馈和快速迭代。快速迭代是通过scrum这个敏捷开发框架实现了,但快速反馈呢?产品投入到市场后,怎么快速收集用户的反馈呢?

 

我们采用的方法:

1.建立相关的qq群,收集意见。

2. app中,有个意见反馈的功能,能把反馈的意见发送到服务器。

3. 后台中,有个系统的账号。每个用户一注册就和这个系统账号自动加为好友,可以随时通过聊天功能向这个系统账号提问题。一般我们的产品经理会经常登录这个系统账号和用户真正交流的。

 

app后端系列文章总目录

 

如果您觉得这系列的文章对你有所帮助,欢迎打赏。
支付宝账号:190678908@qq.com 收款人:曾健生




[文章作者]曾健生

[作者邮箱]h6k65@126.com

[作者QQ]190678908

[新浪微博] @newjueqi

[博客]http://blog.csdn.net/newjueqi

          http://blog.sina.com.cn/h6k65

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/dingxiaoyue/p/4926823.html

相关文章:

  • Linq语言性能比较
  • Enabling Process Accounting on Linux HOWTO
  • IntelliJ IDEA 使用GitHub代码仓库保存自己的代码
  • 【转】Picasso – Android系统的图片下载和缓存类库
  • codeforces C. Cows and Sequence 解题报告
  • hdu1231(最大连续子序列)
  • Android Studio Gradle project refresh failed No such property classpath for class
  • 给hmailserver添加DKIM签名
  • SharePoint 2013 App 示例之图片墙
  • OAuth2.0 介绍
  • CCI_Q1.7
  • 服务器安全部署文档
  • [转]How to solve SSIS error code 0xC020801C/0xC004700C/0xC0047017
  • 【VC++学习笔记三】控件自绘
  • 长沙多校联合训练
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • css系列之关于字体的事
  • download使用浅析
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • js算法-归并排序(merge_sort)
  • React-生命周期杂记
  • spring学习第二天
  • SQLServer之创建数据库快照
  • Yeoman_Bower_Grunt
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 对象引论
  • 如何设计一个微型分布式架构?
  • 一份游戏开发学习路线
  • 走向全栈之MongoDB的使用
  • 1.Ext JS 建立web开发工程
  • 通过调用文摘列表API获取文摘
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​2021半年盘点,不想你错过的重磅新书
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • # 飞书APP集成平台-数字化落地
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (力扣题库)跳跃游戏II(c++)
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四)linux文件内容查看
  • (一)python发送HTTP 请求的两种方式(get和post )
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET DataGridView数据绑定说明
  • .NET Project Open Day(2011.11.13)
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET中的十进制浮点类型,徐汇区网站设计
  • [AIGC] 如何建立和优化你的工作流?