关于

去年年末的时候同事分享了一下 scrum 工作模型, 以后公司按照这种方式来执行产品开发.
联想自己在阿里的两年的工作方式和大学课程讲述的项目协同敏捷开发的一些知识.
所以本文想就开发工作流模型做一个简单的探讨, 并将 scrum 模型应用到 个人项目开发中的做一个尝试性产品 AngryTask 的讨论.

谁优谁劣是伪命题,解决问题才是王道

当在进行这种讨论的时候, 总会陷入讨论孰优孰劣的结局, 大学里边的课程给人的结论就是敏捷开发碾压瀑布流, 但到实际工作的时候发现其实忽略了上下文条件.

什么样的公司

  1. 技术外包公司

  2. 传统IT企业

  3. 互联网公司

  4. 创业公司

  5. 个人开发者

不同公司对产品开发模式和对产品的需求相差很大, 所谓有人的地方就有江湖, 真实环境的开发实质是围绕不同的利益在讨论.

  • 技术外包的公司目的是满足客户需求, 所以对客户必须以瀑布的方式, 需求就是合同

  • 传统 IT 企业, 老板才是开发的客户, 不错出能满足需求的产品才是核心价值

  • 对互联网公司和创业公司来说要求的就是快速迭代

  • 个人开发者需要钱, 需要实现理想, 需要完成一些工具也差异很大

什么样的团队

  1. 技术人员占比大团队

  2. 产品人员占比大团队

  3. 个人开发

不同人员结构的团队导致不同的协作方式, 有可能老板主导, 产品主导, 设计主导, 开发主导. 工作协作方式也会因为主导的人发生变化.

什么样的产品

  1. 视觉为主

  2. 销售为主

  3. 后台程序

  4. 2B 产品

  5. 2C 产品

开发核心价值是

  1. 时间为主

  2. 质量为主

  3. 需要用户参与反馈的迭代开发

没有哪种开发模型能够满足这些条件, 所以不谈场景只谈模式都是扯淡, 在真实开发环境中生产高质量高效率的产品必须找到适合自己的 pattern .

scrum 工作模型

scrum wiki

严格上的 scrum 是比较严肃的, 设计人限定了很多规则, 如:

  1. product backlog 的每个需求都是一个基于用户场景的用例或者用户故事

  2. 角色设定, 强调自我组织, 分为 "猪"组(产品负责人, scrum 主管, 5-9名全栈开发人员), "鸡"组(用户, 利益相关者, 经理)

  3. 每日站立会议

对于团队来说, 大多是应用伪 scrum 到团队中, 没有严格的遵循标准 scrum 的规则.

说说作为个人开发者的问题

几乎每个 coder 的某个文件夹里边都放着一些自己的个人项目, 但是大多数项目烂尾而终止, 原因很多如:

  1. 有新的更棒的 idea , 兴趣转移

  2. 工作上加班变多, 无力分心来开发个人项目

  3. 情绪左右着项目的投入时间, 每个月总有那么几天

  4. 被某一个问题卡死, 陷入细节, 太复制
    ....

能成功的完成的项目并且推向终端用户的产品是极少数的, 这些个人开发者要么是极度有经验, 要么是很有毅力, 要么是小团队作战.

所以能否也将个人项目像团队项目一样标准化, 通过某种工作模式让个人项目能够持续的投入并最终产出推向市场?

不要太聪明, 像猪一样笨的执行

个人项目没能完成往往不是因为开发者技术能力做不到, 不够聪明, 也不是因为项目 idea 不够好, 最主要的原因是因为开发者太"聪明", 对于公司的项目我们能够即便不加班的情况, 即便讨厌的情况, 也能够顺利完成, 因为有人要求我们去执行并完成上线. 所以总的来说就是个人约束没做到位

下面这张图是我根据 PPT 里边 scrum 的介绍画的

如果个人开发者也以这种工作方式来开展的话, 是不是就能解决问题了呢?

AngryTask - 为个人项目开发而生的任务管理工具

这也是我为什么要做现在的这个项目, 并用它来约束自身开发, 我取了一个不太好听的名字 叫 AngryTask

先上个正面图

AngryTask 截图

当然现在正在开发中, 还没有正式推出来, 先把话放在这里, 我会用上面的工作方式应用到这个产品的开发中, 并将这种开发模式整合到产品中 .....

转载自我的博客: http://6174.github.io/articles/scrum.html


陈学家_6174
3.8k 声望1.1k 粉丝

[链接]