再读《软件方法》

元旦假期,又重新阅读了一遍《软件方法》上册。

我参加工作的前七年都是在游戏领域,对于软件方法和建模的方法论知之甚少,也鲜有机会实践。直到2017年初,我因为各种原因,转到支付领域,才开始接触和学习。

初期的学习更多是聚焦在软件方法的工作流本身,例如其中的业务建模和需求部分,是为了能掌握工作流和在实践中应用,动力则主要来自工作中的需要。

近期的工作中,越来越能体会到这套方法论的重要性:

其一,支付领域90%以上的复杂度,都在于业务本身的复杂度,而非高并发、大数据、复杂算法等,和ERP、电商领域很像。这里的复杂度可能是超乎想象的,最近整理的一个基础场景的系统用例,统计发现共计约4w汉字!如果光靠一些设计文档和代码,那是一件非常恐怖的事情,过不了多久,这些代码就会没人敢碰,然后直到哪天出了问题,再花巨大的精力重构,然后周而复始。那么,如何来解决业务复杂度的问题呢?在过往二十年中的ERP和电商领域,都充分证明了软件方法行之有效,那就照着干!

其二,目前我所在的整个研发团队即将到达200人的规模,如何让这样一个规模的团队达成统一认知,如何规范工作流程,是非常重要的。软件方法就像是一种制式武器,它的套路工作流,能让全军上下用统一沟通语言和工作方式,提高效能。当然,要让这么多人都掌握这一套方法论,是个非常艰难的过程,需要投入大量的精力,需要自上而下的多轮学习 + 刻意练习。

所以这次元旦假期,又读了一遍书。

如果说前期的学习让我掌握了部分软件方法的工作流(分析部分还需进一步学习),即:知其然。那近期的一些体会,则越来越能让我理解其重要性和必要性,即:知其所以然。

前方的路依旧很长,2018 继续加油。