技术管理课九
如何进行正确的项目排期
这里我们直接开篇点题,总结下来一共几个阶段
OKR的设立
划分项目模块
明确各个模块的生命周期
收尾 维护 复盘
- OKR的设立
每一个项目,都需要设立对应的目标,而对于项目,设立的OKR应该是自上而下的。
也就是先有项目整体的OKR,这是对老板保证的,然后是组之间的OKR,从大组到小组。
对于项目的OKR,应该注意目标,而非细节,在确立OKR的时候,应该是明确最终目标是什么,而不是技术应该如何选型等。
- 划分项目各个模块
一旦确立了OKR,就需要确立各个模块的划分。并将不同的模块划分下去。
不过划分的方法多种多样。
一种是每个人完成一个模块。
这样对于责任的划分更加明确,但是如果负责的人员能力不足,会导致这个子项目称为完成目标的瓶颈。
另一种所有人逐次完成模块或者需求。
合作最大化,可以彼此协调,彼此学习,有统一的里程碑
但是每个工程师的责任不是很明显,会出现能者多劳的情况,并且新人没法很好的得到锻炼。
- 然后明确各个模块的生命周期
首先是对于各个模块的文档书写,明确各个模块的基本设计。
涉及模块的整体架构,还需要进行大量的讨论
然后是进行设计测试实验,比如设计AB实验,然后进行统一的开发,引入统一的类库,比如统一的监控,日志,预警。
最后确认代码没有问题之后,进行扫尾工作。
然后需要针对所有的子项目,抽取公共服务
然后根据子任务的不同进度,完成人员重新配置
然后根据需求的不断变化,取消或者生成新的子任务。
最后是做好文档总结,确保对外的交流无误。
- 收尾,维护,复盘
最后对项目进行一个扫尾工作
将相关的问题,写到相关的运维手册。
并将项目中出现的教训和经验,进行复盘总结。
我们来看看硅谷的编程马拉松,看看能从中得到什么样的提示。
Hackathon是一个合成词,是马拉松和黑客的结合体,也可以理解为编程节。
在硅谷的很多公司中,每年都会抽出来四五天,去Hack出一些小项目。
那么从硅谷的编程节中,我们能从中得到哪些启发呢?
- 首先是这些由程序员自我组织,自我实现的项目,往往是从实际工作中得到的相关启发,但是实际工作中没有来得及实现的想法,从公司的层面,往往这些平常没有得到实现的想法,是具有一定价值,是具有变成正式产品的潜力。
- 其次是,往往作为一个技术方面,技术领域的人才,看待事物的角度可能被自己限制了。只局限于了技术方面,但如果引入一些外部的,比如产品的,市场方面的技术,也会学习到从不同的角度看待问题。
- 编程节中可以和大牛组队,通过结对编程学习技术。
在编程节中,如果可以直接拉上大牛进行组队,那么就可以获取到直接受大牛指点的机会。并且从五角星战士的身上学习,也可以锻炼自己的其他方面的能力。
该如何看待产品经理和数据工程师
这两者在实际的工作中,作为一个技术人员会经常打交道,我们该如何看待和理解他们的角色和定位呢?
对于产品经理,需要明确其定位,其应该是一个对项目边界,项目进度,功能优先级有所把握定位。
对于项目边界,则是因为我们在开发过程中,会分为不同的小组,不同组之间,应该如何从项目的角度划分功能,下发下去进行开发,这一点可以由产品经理提出意见,进行协商制定。其次是对于项目开发中,针对不同功能的优先级,这一点可以由产品经理进行把控,和技术管理者一起去调节。
那么如果我们作为技术管理者,该如何和产品经理进行搭配合呢?
需要可以在他需要进行划分功能的时候,提出多个可能的技术方案,针对不同方案的利弊,交给谁来做,不同组员从技术出发,擅长什么,不擅长什么进行总结,让产品经理根据需求进行边界设定。
再来看看数据工程师
对于数据工程师,则是属于技术的一个旁枝,只不过一个更擅长开发,一个更擅长数据分析。
对于一个项目,哪些指标需要监控,哪些不需要,都可以由数据工程师来明确。
而且在项目的后期运维过程中,一旦出现了事情。数据工程师可以利用其专业的分析知识,配合各种监控和预警系统,来分析定位问题。
而我们作为一个开发工程师,也可以学习其对于数据的敏感性,从而增强自身。