作者回复: 其实你知道吗?在这个项目中,我不是项目经理,我其实是程序员,项目经理是编辑,她定的计划,而且不同意我放出来😄
而且她还活学活用,基于敏捷的写作模式,一个Sprint一个Sprint反复迭代,你看到的每一个发布版本可能已经迭代修改过好多版了!
作者回复: 谢谢分享和补充,讲的特别好,尤其是那句心理欺骗的,说到心坎里面了,我也常犯这样的错误!
建议计划一开始不要太细,先粗一点,定好里程碑,然后进入下一个阶段前细化,细化时拉上参与计划的人一起。这部分建议你看一下我给一路向北的留言回复。
另外个人计划我觉得你已经做的很好了👍
我建议你也可以多考虑一些长远的规划,例如五年十年的,然后针对这些大目标设置几个大的里程碑,这样再定细节的计划会更有方向感。
作者回复: 不用客气,有些问题也只是一家之言,你自己的情况我其实了解不多,建议你还是自己多想想,多问问你的朋友和领导们,他们可能能给出更具体的意见。
作者回复: 这一段总结的太好了👍
作者回复: 能理解,迷茫在于对于方向的不明确,以及未来的不确定。
建议在方向上先选准了,想想5年后做什么10年后做什么,而不仅仅是一年后做什么。
如果是5年后还想继续运维,那么想做到什么高度?是不是要去大公司锻炼一下?
如果5年后是想做管理,那么是不是得准备学习一些专业知识,是不是让自己尽早有机会管人?
想清楚未来做什么,给自己设一些里程碑,一步一个脚印,应该就没那么迷茫了。
一点建议,仅供参考:)
作者回复: 遇到阻塞了要让老板知道,让老板提供帮助,不要一个人耗着,不然难有进展。
另外也可以尝试项目之外寻求帮助,例如搜索引擎、技术论坛、stackoverflow,还有像github上找找同类项目。
作者回复: 做里程碑要不要整合做集成测试,取决于里程碑的目标,比如说如果目标是具备测试条件可以联调,只要能调就可以;也可以定义目标是要测试验收通过,这就需要做集成测试的。
这种需要人需要时间去做的事情,都应该放到计划里面。文章中的计划表没有放,是考虑不周。
作者回复: 👍总结的非常深入
1. 管理,还是有很多理论知识在里面的,建议可以系统学习一下软件工程和软件项目管理的知识
2. 做技术管理,有一点coding能力还是好一点,一个便于沟通,另一个便于对方向的把握。也不需要特别深入,看几本相关语言的基础书;平时多Review同事代码;多看一些业界好的实践,看是否可以借鉴到工作中。
3. 如果你现在做技术管理,如果不是偏运维的管理,倒建议你不如花点时间补一点编程和管理方面的理论知识。跟木桶原理一样,先弥补短板。
4. 很多时候不需要太多试错,只要有理论知识指导实践,就不会偏差太多。
作者回复: 这是个好问题!
计划恰恰就是为了预防类似于开发不紧不慢耽误了时间的问题。
具体例子,一个模块,正常估算(开发和PM都认可)需要5天,但是如果你的计划粒度是5天,那么你到最后一天才能知道是不是会延迟,这时候补救已经晚了。
如果你能把粒度设置到半天一天,那么第二或第三天你大概就能知道进度是不是有问题,然后马上作出调整,要么加班,要么找人帮忙,要么换人,要么改计划。这样才可以做到防患未然!
至于奖惩制度,只是手段,而不是目的!
作者回复: 谢谢分享
计划一定是要有的,不然就完全不可控了
计划一定是个迭代的过程,计划也是个粗到细的过程。
一开始不建议特别细的计划,整体粗一点,定好大的时间节点,也就是里程碑,然后对于下一阶段的计划细化。
细化过程中要拉上具体参与的人一起制定,这样结果才科学也不会导致抵触。
里程碑定了后不要轻易变,不然就失去了DeadLine的意义,即使变也不能过于随意和频繁。
作者回复: 敏捷的项目计划确实有些不一样,WBS分解后会变成backlog,backlog的项会被打分(参考扑克牌打分),根据分数大致可以算出来需要多少Sprint,因为敏捷开发磨合好后,每个Sprint能做的任务分数大致相当。算出来多少Sprint就能大概知道需要多少时间。
通常里程碑不会那么密集的,一般会几个Sprint一个里程碑。
作者回复: 你这种性质的单位我确实没经历过,缺少经验。
不过我可以帮你从另一个角度分析下,就是如果我不愿意参与计划可能有这些方面原因:
1. 跟我利益不相关,做了没好处,不做没损失
2. 你已经做的够好够细了,没什么好发挥的
3. 就算参与了提了想法和意见也没用,最后还是项目经理说的算,那我还掺和个啥劲
所以你可以看看能不能让这事变成一个跟大家利益相关的事,跟绩效考评啥的扯上关系,必要的话拉上领导狐假虎威一番,然后拉他们参与时不用太细,让他们有机会参与制定,制定时能平衡好他们利益关系。
尤其是里程碑的确定,我觉得应该是和大部分人利益相关的,至少这个点得让他们参与进去。
一点浅见,供参考
作者回复: 👍哪怕业余时间自己做点项目也算是项目经验的。
项目管理懂点技术会更好,不需要太深的,主要还是需要项目经验和管理经验。
作者回复: 对的,第一步先想好做什么。
给你的建议是:
1. 做个小的
2. 做个实用的,最好自己能用或者身边人能用
3. 迭代开发,第一版本只做核心功能
👍支持,做做挺好的。
作者回复: Code Review后面章节会有谈到。
简单来说,你首先要把Code Review变成开发流程的一部分(参考前面大厂如何敏捷开发那一篇),比如说新功能,必须要Code Review之后才能合并主分支。
Review的时候,主要检查代码结构是不是符合架构,细节上有没有什么问题。其实不需要特别多的条条框框,网上也有很多实践可以参考,重点是先做起来,做的过程中逐步总结经验。
作者回复: 谢谢补充🙏
让所有干系人参与计划,知道计划情况是很重要的。
另外一般不是直接参与项目但利益相关的,比如客户、管理层,他们更关注里程碑
作者回复: 原始版本是MS Project,我现在主要用Mac,所以用Merlin Project打开导出了图片。
作者回复: 👍是的,工具只是帮助提高效率,关键还是看人!
作者回复: 我对预研类型项目没什么经验,只能说试着帮忙分析一下,给些建议:
1. 需要明确项目目标,这样才能有的放矢
2. 参考金三角,如果你想要计划性,需要把时间这条边固定下来,然后再选一条边,比如说把时间和成本固定下来,然后看能出来什么成果;或者说把时间和范围确定下来,不计成本;
3. 可以参考软件生命周期划分阶段,比如说:
- 准备阶段:明确目标确定计划
- 调研阶段:类似于需求分析阶段
- 研发阶段:类似于编码阶段
- 验收阶段:类似于测试阶段
4. 有了目标,才好定制订计划;划分了阶段,才好确定里程碑。
5. 同样,计划也是个从粗到细的逐步迭代完善的过程。
作者回复: 👍很有价值的补充,谢谢