Tasking
Git Exercise
- GIT 与 SVN 有哪些区别?
- GIT 管理下的文件共有几种状态,各状态间怎样切换?
- GIT 合并分支共有几种方式,命令分别是?
为什么要做 Tasking
凡事预则立 不预则废 ——《礼记·中庸》
交付高质量的代码和价值
tasking的两种作用域
- 产品功能分解,任务划分
- 功能点划分,代码的实现顺序


项目经理的思维方式
- 用户最关注的功能是什么?
- 哪些功能是用户 nice to have 的?
- 为了交付核心功能,还有哪些事情是必须要做的?
- 核心工作流是否还可以简化?
开发人员的思维方式
- vector or list
- maven or gradle
- 同步 or 异步
- 消息推送 or 轮询
- OO or Reactive
做Tasking时,你其实是自己的项目经理
任务拆分指导思想
- 用最快的速度实现一个 Walking Skeleton / MVP (Minimum Viable Product)
- 给Walking Skeleton增加功能
Step 1

Step 2

Final


任务拆分的评价标准
INVEST in good stories, and SMART tasks
INVEST
- Independent (独立性)
- Negotiable (可协商性)
- Valuable (有价值)
- Estimable (可估算)
- Small (工作量小)
- Testable (可测试)
SMART
- Specific (具体)
- Measurable (可度量)
- Achievable (可完成)
- Relevant (相关性)
- Time-Boxed (时限性)
写一个显示LCD数字的程序,要求可以调整数字大小

根据开发过程分解(误区一)
- 设计
- 编码
- 测试
- 做联调
- 写文档
根据架构分解(误区二)
- 实现Model层,用长度为7的vector保存一个数字
- 实现View层, 通过横竖线显示数字, 支持放大
- 实现Controller层, 通过命令控制创建Model并展现
- 编写验收(集成)测试
- 完善文档
根据处理流程分解(误区三)
- 用户在命令行输入 “lcd –s 2 1234567”
- 生成每个数字的LCD格式
- 根据尺寸调整生成的LCD符号大小
- 将所有数字的LCD格式收集到一起,并调整间距
- 显示
讨论:那么理想的分解方式是?
建议的分解方式
- 能打印一个字符,大小为1,输入为硬编码
- 能打印多个字符
- 增加控制字符大小功能
- 用户可以指定输入的字符
怎样得到walking skeleton
- 列出一个端到端场景完整步骤
- 对每一步提出以下问题: 如果想消除这一步,需要做哪些假设? 如果假设合理,就用一些“简陋”的方式暂时替代
- 重复以上两步
练习:实现一个人与人对弈的象棋软件

练习2:描述一个你做过的特性,如果用walking skeleton方式如何做拆分
Tasking
By melonq
Tasking
- 430