漫谈项目管理之一:一个人一个项目

那时候的小Z

小Z新入职了一家小型软件公司,成功通过了三个月试用期,被外派到甲方的项目(后面简称M项目)里。由于项目已经持续开发了一年多,业务已经比较复杂了,于是开始艰苦的业务学习与理解,同时小Z也了解到M项目采用Java开发,基于SprintBoot,采用微服务架构,使用k8s做容器管理。在这个底座上,划分APP,每个APP由多个微服务组成,各个微服务共用一些基础的微服务,比如身份认证、网关等。M项目实际是一个内部项目,项目的业务方和用户都是内部员工。那个时候微服务刚刚流行起来,小Z对这一切都感到比较新奇,准备撸起袖子大干一场。

之前的小Z

在这之前小Z做了8年开发,期间接触过很多不同的项目,有Android/IOS的,有混合开发的,有WPF/WCF的,有go语言相关的,也有前端项目,还有微信/支付宝相关的,总之做了很多项目,但是小Z一直对C#情有独钟。认为在宇宙无敌IDE Visual Studio的加持下,C#绝对是对程序员最最友好的语言了。小Z入职新公司之前也用.net core做了一个微服务项目,使用的是全套的docker官方套件,docker swarm什么的。

小Z的转折

有一天周四的下午,小Z正准备下班打卡,被M项目的甲方领导(后面叫大W)叫住了,说晚上先留下来说个事情。小Z开始忐忑了,于是晚饭也顾不得吃了,把最近学习的spring cloud神马的都在心中默默地温习了一遍。
七点半,开聊。
大W:我们准备启动一个新项目,有没有兴趣?
小Z:好呀,什么项目?
大W:一个B/C/S项目,依托于现有的平台,开发一套桌面软件,用于XX业务。
小Z有点小失落,桌面软件和java几乎扯不上关系了,但想着能继续用WPF,那是天然的强项,心情立马又平静了。
大W:这个项目呢,我准备用python开发。我知道你没搞过python,现在团队里也没人搞过。不过你简历里写过学习能力超强的。明天我们把业务梳理一下,周末两天先熟悉一下语法。下周一启动开发,因为要给大领导演示,开发周期只有两周,下下周五出版本。(大W喝了一口茶)演示成功了,这项业务就抢到手了,对我们团队而言你就是功臣,以后我是不会亏待你的。
小Z当时就震惊了,对于从天而降的这口锅不知道背不背得动,但无论如何,这个锅得接着了,听说python也挺好玩的,那就试试吧。

进击的小Z

那时候真是一穷二白啊,小Z不会python有木有,需求分析也只是简单画了个流程图有木有,大W承诺协调和招聘的人才迟迟不见踪影有木有,时间只有两周有木有……是当真要给领导演示,演示完是当真要拿给用户使用的……
但是,残酷的现实并没有击倒小Z,反倒激起了斗志,开始了16 * 7 的节奏。
一切从需求出发,小Z首先把业务进行再次梳理,输出了story,并和大W确认。
有了初步的story之后,小Z明确了自己需要重点学习的语言特性,开始死磕python。
对照story和有限的开发能力,小Z给自己定了一个简单的计划。
第一周搭建了初步的框架,初步调通了流程。
第二周完善业务逻辑,为演示做准备。
在小Z的坚持下,项目进展还比较顺利,M项目演示成功并顺利占坑。大M狠狠地表扬了小Z一把。

小Z的总结

1、想做的事情,不一定总是会按预期的路线来,想好的搞微服务架构呢。生活和工作总是充满惊喜,用一颗平静的心对待。
2、砸下来的锅,得见招拆招,总会有办法把锅砸成铁片。识别出项目中的风险,技术风险、时间风险等等,识别出来的风险就想办法规避、减轻,有条件的话可转移。小Z这个项目中只能硬刚开发能力缺陷。
3、越是紧张,越是不能慌乱。
这一条看着简单,做起来却是最难的,玄奘法师西行之时,在莫贺延碛迷路之后的非常急躁,慌乱之下打翻了皮囊。西行刚刚开始,救命之水就荡然无存,差点命丧于此,要真是这样,可能也没有后来的西游记了。
小Z给自己定了一个计划,其实是一个时间管理。项目开发虽不总是四平八稳,有了计划,就有了目标,事情有了主线,不至于因为盲目而迷惘慌乱。
小Z自发地输出了story和甲方确认,就是范围管理和沟通管理的实例。

一个人的项目,自己管理自己,也有套路。