2019 年终总结

厚积薄发,牛刀小试

2019年匆匆而过,很久没有如此忙碌了。所幸,项目完成了,身体也还吃得消。我是如此幸运,在职业生涯中,一直能够得到上级的信任,让我可以自由地发挥,不断地尝试。在我到日本的第四个年头,职业生涯的第十三年,得以将以往积累的技术、理论付诸实践,带领团队进行了一次新的尝试(这也是今年忙碌的一个客观原因),新架构、新理念,推行可以用举步维艰来形容,好在大家陪我一起突破了舒适区,我们一起提升了一个层次。

工作之中

2019 足以使用“忙碌”来概括,好多年没这么忙了,但值得。

身份转变

虽然过去也曾经带领团队一起工作过,但是 2019 年才是真正从零开始带领团队走完了一个项目的完整流程。从最开始确认需求、技术选型,到架构设计、项目搭建,再到详细设计、布置开发任务,再到代码审查、实施测试,到最后发布产品、跟踪反馈。算是接触到了项目开发的各个环节,除了技术上的支持,还要考虑如何确保进度的前提下兼顾品质,前所未有的挑战,前所未有的收获。对于“管理”有了一个全新的理解,不仅要实施技术管理,也要考虑人员管理,如何高效沟通、避免失误、降低风险,每一项都不容易。既当爹又当妈的感受真的是辛苦,但总算完成了身份的转变,算是一次不小的飞跃。

理论落地

得益于这次难得的机会,以往积累的理论知识得以发挥作用。印证了很多管理上的理论,比如伴随着团队人员的增加,沟通成本会出现剧烈的增长;也落地了不少技术上的理论,比如这次总算将 DDD 作为设计的依据,也引入了依赖注入工具,对 TDD 也做了简单的尝试。这些知识都不是新出现的,但作为 13 年工作经验的“老”程序员,刚刚有机会将其在商用项目中落地,有些汗颜,但也得到了极大的满足。

波折不断

既然 2019 有如此多的尝试,面临的问题自然层出不穷,这也是 2019 年前所未有忙碌的主要原因。遇到的挑战实在太多了,需求不明确、需求变更频繁,导致设计改动很大,也造成了项目中期就开始“打补丁”,对设计的破坏非常严重;层次间职责出现了混淆,导致有些业务逻辑散落在多个层次之间,导致难以理解,维护困难;团队成员对于新架构、新开发手法的适应比我想象的要快,但理解不到位,导致代码实现时出现了很多让人哭笑不得的逻辑;单元测试用例没有代表性,导致根本无法暴露问题,也无法作为验收基准,很多用例流于形式。林林总总,焦头烂额,加班严重,其实大部分时间都开销在沟通上面了,如何在设计复杂度、开发者能力间寻找平衡,如何有计划地进行人才培养,这将是我下一阶段的主要课题。

在压力下成长

经过一年的忙忙碌碌,虽然结果并不能说完美,但总算画上了一个句号。回顾 2019,我的结论是,这一年的累没有白挨,无论是对我自己、对团队、对公司,都积累了非常有价值的经验,工作成果也会为将来的工作打下一个良好的基础。身份已经兼顾管理,那么就要考虑如何帮助团队一起成长,如何帮助公司实现愿景,这也是 2020 年我要着重思考的问题。

工作之余

工作繁忙,工作之余基本没有什么值得称道的成就,除了观影、读书,技术上倒是鼓捣了一点点,浅尝辄止。

AWS

我那博客还半死不活地挂在 AWS 上面,但是 EC2 的实例是真真的几乎没使用,白白浪费钱,索性到期后就不再续约了。所以现在 AWS 上还在继续使用的服务只有 S3 而已,不过贼心不死,2020 年还是打算继续鼓捣,毕竟理工男好折腾的本性难移啊。

Python

想学,但没有计划,简单的学习了语法,确实觉得不难,但是距离那它做开发,那就差得远了。至于接下来的学习,或许要先放一放,精力有限,没办法同时学那么多东西,2020 年打算还是先把 JavaScript 学一学,补齐自己的技术栈,回头再折腾这条大蟒吧。

JavaScript

相较于 Python,JavaScript 倒是下的功夫多一些,但也实在不值一提。最大的麻烦就是现在 JavaScript 的开发工具集与我最初基础它的时候,真的可以用天翻地覆来形容,不说语言本身,连工具链我都搞不懂。本来想写个 SPA 玩玩,结果发现我只是想用它补齐我的前端技术,后端我还是想用 C#,这就引出了新的问题,我还得先学怎么写 WebAPI,于是欠了一身技术债,狼狈地结束了 2019。

新年展望

工作上,趁热打铁,将 2019 积累的经验反馈给团队,一方面加强团队建设,一方面精炼技术架构,希望 2019 年开出的这朵花,在 2020 年可以结出一颗美味的果。个人学习上,沿着 WebAPI、JavaScript 的技术栈学习下去,希望好歹能落地一个看得见的玩意儿;另外,博客荒得长草,所以文字该写还是得写,不是懒得写文字,而是嫌发布麻烦,这种借口真的是连自己都不能接受。还是那句话,生命不息,折腾不止,希望 2020 能折腾出点儿精彩的故事。