查看: 1920| 回复: 10
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] 如何在scrum中设计和实现中大规模的feature

🔗
匿名用户-8P1KK  2022-10-29 02:20:40 |倒序浏览

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
交代一下背景。本人在一家media公司做python SE, intermediate level, 偏向data (ETL, migration, pipeline). 在公司最近1年做了好几个中等规模的features, 用scrum里的size算大概都是5-15 points. 也就是2-4周的工作量

做的效果都有一些不满意的地方,有些甚至差点流产。

这些项目的共同特点:
- 需要涉及到3个及以上左右的code repo or 不同的services,范围从纯后端层,到core service层,到api层,甚至到前端层 (JS) 和Ops层 (aws)
- 开始做的时候都是不知道到底需要多少effort的,随着做的过程,越做越大。
- 基本是我一人完成。

在做的过程中我遇到了不少问题:
- 功能的逻辑其实并不复杂,即便复杂,也是在我expertise范围内。但是随着项目的进行,复杂度越来越大。所以我每个project都低估了其工作量。
- 复杂度提升的一个感觉是,简单的功能由于分散在不同的service/code repo, 结合起来后实现/refactor的难度就提升很多。
    - 比如一个data field在data flow 中会涉及3个地方,那么一个bug改动就要同时改3处地方。由于要debug调试,那么就需要照顾3个unit test和一个integration test=4个test。平时在单个service中一个bug fix的cost变得要乘上3-4倍。
    - 由于要改动的地方变多,同时要可能编辑6个以上的代码,对眼神、记忆力、大脑切换能力都是挑战。即便ide分屏,也很容易迷失在“我刚改哪了?”“刚刚改完的文件跑哪去了?”这样的问题
    - 得到的感觉是,本来3+2+3=8的story,变成了(3+2+3)*1.5=12的情况
- 项目在推进过程中跟一开始的设计出现偏差
    - 一开始的模块module设计不能够反映真实的功能需求,所以要重新设计/refactor,增加cost
    - 增加新的需求,砍掉一些需求,但是总体还是增加cost
    - 变得是走一步设计一步,然后按走到的进度去create stories
        - 从而导致另一个严重问题,没办法分工
- 没有办法分工,项目进度变慢
    - 如果一开始的设计是正确的,那么一开始就建立好分工是没问题的;但由于项目是由一个人先探索,或者一开始的设计出错,导致进行中再分工,其他组员会不想加入进来。
    - 我虽然成了那个know everything的人,但也成了critical path
        - feature结构完全依赖于我的设计,我不完成设计,就没法break down。
    - 我其实也迫切希望他人进来帮忙,但是我感到领导能力上有限,不知道怎样更好的share knowledge和把story拆分。

以上是我复盘时的一些问题。虽然我知道其实有一些不可控的因素也起了作用
- 我们没有project manager
- 现阶段没有qa
- team lead能力很强,但是刚好遇上这几个story就我比较了解

但是我更希望了解自己哪些方面做的不够好,看看地里的朋友们有没有这方面的建议和提升意见?

评分

参与人数 1大米 +1 收起 理由
shrek2006 + 1 赞一个

查看全部评分


上一篇:请问有没有ood的视频资源
下一篇:有人合买educative么
全局:
过来人说句实话 - 答案就是学习如何把一天的工作说得让人感觉是一个月的scope

评分

参与人数 2大米 +2 收起 理由
zz1234 + 1 赞一个
jokingclock + 1 赞一个

查看全部评分

回复

使用道具 举报

全局:
微信用户_fethl 发表于 2022-10-28 13:08:47
lz没分析一下什么原因导致和最开始设计偏差那么大? 前期spike的不够吗?
一般这种情况就是team lead对project不够了解 但设计的时候都是team lead来主导

有时候组员像我 虽然能看出设计上的问题 但是还没能力独立做出合理的设计 比如想得更全面、预估这个story是多少points 或者有这个威信去assign story to teamember

有前期spike会好很多 不过有些story没想到要用spike 我掉坑的这些story都没有什么新技术 主要是backend的添加和重构
回复

使用道具 举报

🔗
zoevelynne 2022-10-29 02:33:25 | 只看该作者
全局:
最重要的,以后estimate的时候把你一开始的估计通通x3,你以为2-4周的至少准备两个月。。。
回复

使用道具 举报

全局:
zoevelynne 发表于 2022-10-28 11:33:25
最重要的,以后estimate的时候把你一开始的估计通通x3,你以为2-4周的至少准备两个月。。。
是可以这样自动换算。。 但这样就在team里拖累速度了
回复

使用道具 举报

全局:
lz没分析一下什么原因导致和最开始设计偏差那么大? 前期spike的不够吗?
回复

使用道具 举报

🔗
zoevelynne 2022-10-29 04:47:23 | 只看该作者
全局:
jokingclock 发表于 2022-10-28 15:20
是可以这样自动换算。。 但这样就在team里拖累速度了

那说明你整个team对项目进度有着不切实际的估计。。。
回复

使用道具 举报

🔗
yyz20002008 2022-10-30 04:55:43 | 只看该作者
全局:
请问下楼主 一般Python做sde的话技术栈一般需要掌握哪些
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-8P1KK  2022-10-30 06:11:04 来自APP
yyz20002008 发表于 2022-10-29 13:55:43
请问下楼主 一般Python做sde的话技术栈一般需要掌握哪些
除了python自己的特有一些工具像flask pandas 语言特有的数据结构 剩下的基本跟其他后端差不多 比如aws 数据库等 根据每个公司的情况会具体到一些特有的工具 比如mysql or mongodb
回复

使用道具 举报

全局:
my 2 cents 把integration和implementation分开, 弄ticket的时候就把这两个分成两个不同的ticket, implementation你没有依赖就可以一直推,integration你需要先搞清楚interface是什么样子,一般可以从对方的文档或者ping对方tl来得到。这样你两边并行做就行了,如果哪里block了也非常清晰。

评分

参与人数 1大米 +1 收起 理由
jokingclock + 1 赞一个!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表