软件开发过程是一个复杂的过程,其间涉及技术和管理的多个方面,一般人没有10年8年很难有个全面的照顾。时间很长,除了需要耐心,也需要关注10年8年积累的积累方式。
工作4年,我是一个贪多嚼不烂的人,自认为努力从全局解决问题。刚刚入行时这算不得什么,能够快速的学习各种知识,完成相应任务。随着参加工作年限的增加,走过一个完整的产品研发流程之后,面临的困境是无法确切知道自己该怎么进一步的积累了(自我感觉软件过程中的各个阶段都有涉及)。
工作满2年的时候,当时觉得积累的东西足够应付项目的开发。跳到一个新成立的企业,企图将之前积累的知识用于新的产品开发中。项目到手之后,发现之前的积累远远不够,体现在两个方面,一是部分领域没有涉及或考虑过,如团队的建设;二是关键领域一知半解,如工作量的估算。项目开展3个月后,从项目的角度来看,失败。对于项目的困境,我也付出了惨痛的代价,所幸认识到了自己积累的肤浅。
软件项目开发需要天分,也需要积累。软件开发有“敏捷开发”,积累也该有“敏捷积累”。“敏捷开发”强调一个story开发完成之后,该story能够通过各种测试;“敏捷积累”也类似,每次遇到一个知识/经验点的时候,深入分析和理解该知识/经验点,从正面/反面进行阐述,如果条件许可,可以组织相应的研习班,讨论相应的话题。
通过“敏捷积累”的方式积累出多个点之后,可以尝试将多个点进行连接,由点到线、由线到面的方式进行关联。将积累点构建成系统,对照现有的知识/经验体系,再补充中间不同的内容,实现积累体系的单间。
“敏捷积累”仅仅是一个说法,所依赖的条件很强,深入的程度难以度量。在后续的工作中我计划通过所花时间、分析过程、输出物等方面来度量掌握程度。当然,如果有人知道如何确认一个知识点的掌握程度,请不吝赐教。