敏捷开发的几点建议

简介: 移动互联网行业由于节奏快,产品迭代周期短,因此多采用敏捷开发进行快速迭代。下面我从Android客户端研发的角度,说说敏捷开发中的几点建议: 模块化 当项目开始变得很大时,需要按照主要功能进行模块化。同时对人员进行分组,每组负责一个主要模块。由于迭代周期短,任务重,可能在开发过程中,某个模

同步发表在:http://snowdream.github.io/blog/2016/04/07/agile-development-advices/
移动互联网行业由于节奏快,产品迭代周期短,因此多采用敏捷开发进行快速迭代。
下面我从Android客户端研发的角度,说说敏捷开发中的几点建议:

模块化

当项目开始变得很大时,需要按照主要功能进行模块化。同时对人员进行分组,每组负责一个主要模块。
由于迭代周期短,任务重,可能在开发过程中,某个模块无法按照要求,在既定的时间内完成开发任务。这时,应该由产品进行评估,是否进行跨版本开发。如果进行跨版本开发,该模块在本次迭代过程中不参与合并代码,推迟到下个迭代周期。
最大限度减少模块之间的依赖,不要让某一个模块的跨版本开发,阻碍迭代周期内,整个项目的代码合并。

结构清晰,通俗易懂

项目的开发从来不是一个人的事情,而项目的每个模块也不会一直由某个人来负责。
代码逻辑结构复杂,混乱,会给人员的工作交接,需求开发带来难度,同时可能埋下很多BUG的隐患。
因此,代码逻辑结构清晰,通俗易懂,很重要。

如何保持代码逻辑结构清晰?

  1. 保持树形的逻辑结构。每一次从上层响应到底层实现,都应该保持直线的流程,而不是类似盘山公路那样弯弯绕绕的流程,更不应该像迷宫一样错综复杂的流程。
  2. 函数嵌套调用需谨慎。在一个函数中调用另外一个函数是很普通的,但是毫无意义,或者毫无理由的嵌套调用容易带来问题。举个例子,函数A内,调用了函数B。意味着,函数B是函数A内的一个环节,每次调用函数A,间接调用函数B是没有问题的。如果我在调用函数A的时候,并不需要每次都调用函数B,那么函数B不应嵌套在函数A内。
  3. 及时删除过期的功能和代码。在迭代过程中,不仅有功能上线,也有功能下线。对于下线功能,需要和产品确认是暂时下线,还是永久下线。如果是永久下线,应该删除掉该功能所有相关代码和资源。大量的过期代码会使得代码臃肿,结构复杂,不易维护。
  4. 经常梳理代码结构。迭代过程中,新增功能,新增代码可能会使得代码结构重新混乱。因此,需要经常性的梳理代码结构,使得代码结构清晰。否则,随着人员的更替,可能出现部分代码,大家都看不懂,又不敢删除的尴尬局面。

如何保证通俗易懂?

  1. 函数名称最好能体现该函数的功能。如果函数名称不能准确描述函数的功能,则应该在函数注释中进行准确的描述。
  2. 函数功能应该单一。不应该像万金油一样,包治百病。
  3. 函数体一般不宜过长。函数体过长,不容易看懂,不容易维护,此时,应该对函数体进行拆分。
  4. 对于不容易看懂的代码块应该加注释。比如,某个地方突然用了经验值,这个应该说明,不然谁也不知道这个值哪里冒出来的。又比如,某个地方用了不常规代码(Hack性质的,黑科技),也应该进行注释说明。

时间规划合理

敏捷开发是为了功能的快速实现,推给用户。那如何保证功能的稳定性,代码的健壮性呢?

  1. 给产品充足的时间,让他们充分考虑功能实现的各个细节,包括功能拆分,功能的预期,功能的入口(可能有多个),研发上下游(平台,客户端,H5)各自应该负责开发哪些部分等。
  2. 给研发充足的时间。开发功能并不是买菜做饭,按部就班。给他们构思的时间,让他们好好考虑功能应该怎么实现。记住,不给研发构思的时间,就不得不给研发更多修改BUG的时间。
  3. 给测试充足的时间,让他们充分测试产品功能正确与否,产品的易用性,稳定性等。

快速响应能力

如果产品发布出去了,发现重大问题怎么办??
对于Web页面,通过紧急修改,测试,发布解决。
对于客户端而言,当然也要紧急修改,测试,发布。但由于涉及到多渠道,上线审核等因素,产品无法立刻更新发布。此时,建议采用热补丁方案。详细思路,请参考:《安卓App热补丁动态修复技术介绍》
下面是几种比较流行的开源热补丁方案:

  1. AndFix
  2. HotFix
  3. Nuwa
  4. DroidFix
相关文章
|
2月前
|
敏捷开发 数据可视化 测试技术
利用敏捷开发方法优化项目管理
【10月更文挑战第14天】敏捷开发方法论强调适应性和人本价值,通过迭代和增量的方式提升软件交付效率。本文介绍敏捷开发的核心原则、实施步骤及其在项目管理中的应用,包括透明化管理、快速响应变化、提高团队协作和持续改进等方面,旨在帮助团队更高效地运作。
|
敏捷开发 项目管理
深入理解Scrum:敏捷开发的核心原则和方法
Scrum强调迭代、协作、自组织和透明度,使团队能够更好地应对不断变化的需求和复杂性。Scrum方法的核心思想是通过一系列短期周期来交付功能,每个周期通常称为Sprint,以便及早获取用户反馈、适应变化并提供高质量的产品。
|
敏捷开发 数据可视化 测试技术
敏捷开发要点
敏捷开发是一种以人为核心,迭代、增量式的软件开发方法。它强调团队成员的自我管理、面对变化时的快速适应能力,以及持续的沟通和协作。
|
敏捷开发 运维 监控
敏捷开发发展和优缺点 2
敏捷开发发展和优缺点
286 0
|
敏捷开发 开发框架 架构师
敏捷开发发展和优缺点 1
敏捷开发发展和优缺点
177 0
|
敏捷开发 测试技术 BI
为什么要学习敏捷?敏捷有哪些好处以及敏捷工具
Leangoo领歌一款永久免费的专业敏捷研发管理工具,它覆盖了敏捷项目研发全流程,包括小型团队敏捷开发,规模化敏捷SAFe,Scrum of Scrums大规模敏捷。能够支持多种场景,如:敏捷研发管理、敏捷项目管理、工作流管理、轻量级项目群管理、任务管理等。2)管理产品路线图、产品backlog、迭代规划和执行、缺陷、测试、项目文件及企业组织架构等等。3)可查看多项目进度,项目视角的统计等,提供了不同视角的统计,例如:进度统计、燃尽图、团队速率、任务分布、缺陷分布、测试用例分布等等,实时掌握项目状态及进展。
|
敏捷开发 架构师 测试技术
谈谈变味的敏捷开发
谈谈变味的敏捷开发
72 0
|
设计模式 安全 Java
没有测试驱动开发、重构、简单设计及结对编程的敏捷只是虚有其表
  与过去 70 年间大多数程序员的做法相比,本章描述的实践有着根本的区别。它们强 制进行大量的分钟级甚至秒级、深刻的、充满仪式感的行为,以至于大多数程序员初次接 触时都会觉得荒唐。于是许多程序员做敏捷时尝试去掉这些实践。然而他们失败了,因为 这些实践才是敏捷的核心。没有测试驱动开发、重构、简单设计及结对编程的敏捷只是虚 有其表,起不到作用。   测试驱动开发是一个足够复杂的话题,需要一整本书才能讲完。本章仅仅是一个概览, 主要讨论使用该实践的理由和动机,而不会在技术方面进行深入的讨论。特别说一下,本 章不会出现任何代码。   程序员是一个独特的职业。我们制造了大量文档,其中包含深奥的技术
162 0
|
敏捷开发 监控 项目管理
三分钟让你理解什么是敏捷开发,这才是敏捷开发......
做为无所不能的产品经理,虽不是上知天文下知地理,但是也要对产品相关的知识领域有所涉猎。项目管理就是与产品密切相关的一个知识领域,同时也是产品经理日常工作中经常要负责的一部分内容。别问我为什么不是项目经理负责,因为很多公司没有…… 本文结合实际工作实践以及亲身使用CORNERSTONE项目管理工具经验,深入浅出介绍在敏捷开发的互联网公司中一个项目从无到有所经历的各个环节,当然项目管理这门学问还有很多需要深入探索的领域,以下仅仅与各位产品/项目经理们,学习交流一下。
1262 0