对个人而言,如何进行敏捷学习?读《深入核心的敏捷开发》有感
这篇书评可能有关键情节透露
读完ThoughtWorks的开发人员写到的《深入核心的敏捷开发》之后,意识到项目团队的管理和对个人学习的管理有很多共通的外部特点,趁记忆力还比较好的时候记录一些自己的想法。我
首先,要承认一件事情:事情总是会产生变化。所以我认为个人学习也要强调“敏捷”学习。比如说由于外出旅行,突然的家庭聚会等原因没有遵循需要学习的内容,那么从学习中收获到的正向反馈就会减少,最终导致的结果就是个人的计划很难得到持续的实行。这种情况下,遵照计划来执行的意愿也会慢慢降低的。以下是个人从近三周在TW团队中观察到的敏捷开发流程总结出个人敏捷学习可以参考到的内容:
- 响应变化 高于 遵循计划
- 就像是在项目中客户的需求会随时产生变化,因为工作原因加班/外出旅行/同学聚会/个人心情等原因每个人在不同时间段的执行力不尽相同。在不同的时间节点,每个人当下的个人需求也会随时产生变化。遵从敏捷思想,个人在做学习计划的时候也应该“响应变化” 高于 “遵循计划”。
- 自己以前习惯性地定按周的计划,比如说周二去游泳,周四去健身,周六去自习室之类的。既要给自己留出放松的时间(不能要求每个周末都在学习),也要保证学习的进度是可以监控的,这需要一段时间的摸索。
- 缩短个人学习的“交付”周期
- 如果直接告诉一个人现在开始学习Java,半年之后验收成果。那么这样的实践肯定是很有问题的:在瀑布式学习的流程中,半年这个长时间段首先会让人很难获得及时的正反馈,降低学习的意愿。把学习的内容进行拆分,把每个学习模块的“交付周期”减短,这样可以进行个人学习知识上的“持续集成”。
- 缩短学习的“交付”周期的另一个好处也是在响应变化。如果这一周的任务量较低就可以多安排一些工作,下一周如果有很多活动造成时间不够用的话就可以及时调整学习的进度。这样也会降低个人的心理负担:工作进度的紧张/参加活动等事情带来的学习内容数量下降不再归结到自己的效率问题,而是会转化为受到外界影响的主动调整,对个人而言也是正向肯定。
- 在一个学习周期结束后及时Retro,反思可以提升的空间及之前的进展。
- 切记:敏捷的一个核心就是顺应变化,任何仪式演变成为一个“不得不做的事情”之后,都会失去其敏捷的本质。
- 个人学习的质量内建仍然很重要
- 因为工作的任务需要各种各样的技术,所以说可能会需要人们在短时间之内学习一个全新的技术。这种情况下,工程师思维会习惯让”快速上手“的思维优于”扎根基础“。然而从长远看来,系统性打好基础的质量内建仍然很重要。会使用Springboot、Java和了解Springboot和Java的底层原理是完全不同的两种水平,也决定了职业生涯的高度。
- 举例:高中花费大量时间进行英语学习的质量内建在现在得到了体现:英语底子好,学习新的语法和其他的语言速度也更快。这样的底子也会和别人的水平拉开巨大的差距。
- 举例:在文理学院的系统性文献阅读培养让人有着持续阅读的习惯。
- 因为工作的任务需要各种各样的技术,所以说可能会需要人们在短时间之内学习一个全新的技术。这种情况下,工程师思维会习惯让”快速上手“的思维优于”扎根基础“。然而从长远看来,系统性打好基础的质量内建仍然很重要。会使用Springboot、Java和了解Springboot和Java的底层原理是完全不同的两种水平,也决定了职业生涯的高度。
- 对学习的质量进行及时地QA(质量检测)反馈
- 每一个学习内容的周期结束之后(一个学习的迭代),用合适的方法进行测试,确保学习的质量内建得以巩固。
- 方法还没想好,我觉得计算机知识的测试和金融知识的测试会运用不同的方法。
- 比如说,学习完财务报表的知识之后就可以回去反思之前做过的项目中,为何客户需要三张财务报表中的这些特定字段?也可以检测自己对财务报表内容上的理解是否正确。
- 每一个学习内容的周期结束之后(一个学习的迭代),用合适的方法进行测试,确保学习的质量内建得以巩固。