给我们团队的建议

本贴最后更新于 2018 天前,其中的信息可能已经时过境迁
来到新的公司两个月了,工作体验不是太好。 测试同学是大厂转来的,给团队带来敏捷迭代的经验,结果设计倒是敏捷了,开发进度却跟不上。 我准备提点建议,酝酿了一番,请各位网友过目,给点建议。

我们讲敏捷开发是要“拥抱变化”,但是“拥抱变化”不是放任变化,变化是需要管理的。经常出现这样的情况:功能开发的过程中,对需求有了新的理解,于是就对设计进行了改进。在功能开发到一半的时候,或者说还有 bug 的时候,对代码进行改动很容易造成新的 bug。对于研发来说,更好的工作方式是,一次只做一件事,不能一边改 bug,一边修改逻辑。(在我们以前的团队,修改逻辑俗称写 bug。。。)
我希望我们的设计能够有一个版本管理。一个功能一旦设计好进入研发阶段,在验收通过之前都不再进行改动。在这期间,如果对需求有了新的理解,就放到下一版本的设计中。一定等到已有的逻辑没有问题了再对逻辑进行修改。这样可以避免思路被打断或者在设计的切换中漏考虑等。而且有的细节可能会多次出现改进,如果这几次改进都在设计文档上进行,代码就只需要根据最后一次完善的设计修改就可以了。我们知道,文档是自然语言描述的,代码是编程语言描述的,设计文档的修改成本肯定要比代码的修改成本低很多,省几次代码的修改可以节省很多时间,从而就提高了效率。
乍一看,对设计进行版本管理可能会使得产品迭代的更慢,其实不然。根据现在我们的情况来看,需求分析的很多,设计迭代的也很快,但是呢——开发进度跟不上。一个团队开发进度跟不上,还能称得上敏捷吗。这就好比一个人走路,只要每一小步踩的稳,小步也能快走。哪怕第一步偏左一些,第二步偏右一些,问题都不大。要是想在一大步内就找到正确的方向,就很容易出问题。腿抬的老高,一会往左一会往右,最后一脚踩下去,就摔了。
我们一定要正确看待现在的情形,把提高代码质量和减少 bug 数量放在更重要的地位。只要代码质量上去了,开发进度能跟上设计进度,总体上效率肯定是比现在更高的。
没有必要强求一有更好的设计就要立刻在代码上体现出来,不妨在设计文档上停留一段时间。经过一个设计的步骤,可以有一个统筹规划的作用,减少中间的无谓的修改。
特别需要提醒的是测试同学,在返工的过程中,返的一定是 bug,不要是建议或者想法。同一个功能,有的人觉得这样好,有的人觉得那样好,不如所有人都把建议或者想法提给专门设计的人,统一处理,效果会更好。还是那句话让研发一次只做一件事,不要一边改 bug,一边修改逻辑。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 531 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 660 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    76 引用 • 258 回帖 • 627 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    22 引用 • 148 回帖 • 16 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    151 引用 • 988 回帖
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖 • 4 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    5 引用 • 7 回帖
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 652 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    5 引用 • 16 回帖 • 3 关注
  • 反馈

    Communication channel for makers and users.

    126 引用 • 930 回帖 • 272 关注
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    107 引用 • 127 回帖 • 340 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 119 关注
  • AWS
    11 引用 • 28 回帖 • 11 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 642 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    37 引用 • 157 回帖
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    494 引用 • 930 回帖
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    31 引用 • 108 回帖
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    143 引用 • 442 回帖 • 4 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 7 关注
  • 996
    13 引用 • 200 回帖 • 2 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    952 引用 • 944 回帖
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    498 引用 • 1395 回帖 • 249 关注