2017- 我的敏捷学习之年

作者: 鱼心DrFish | 来源:发表于2017-01-18 16:34 被阅读1918次

    我是谁?

    读了九年理论物理,忽而迷上数据科学,无奈做了研发组长。

    东渡异国他乡,初心不忘,拾起旧日梦想。

    一直迟迟不愿写下新年计划,怕落空、怕让自己失望。回顾过往,貌似没有一次新年计划是成功完成的,总是抱着巨大的欣喜开篇,最终却伴着更大的失落收场。

    今年也会重复这轮回般的宿命吗?要说认命,我并不甘心,所以还是鼓起勇气,再一次挑战新年计划。今年,2017, 我怀着谦卑的心态,没有雄心勃勃,没有一腔热血,而是冷静的思考,思考着如何让计划可以执行,并且足够健壮以应对不确定的未来。

    正当苦苦冥思之时,脑海中先后跳入了两个词:SMART 和 SCRUM。 对,就是你们了! SMART用于解决计划的可行性问题,而SCRUM框架则可以保障计划的顺利执行。


     SMART 让计划落地

    SMART原则是检验一个计划是否可行的标准,它可以让悬浮于空中的愿望落地,成为一个切实可行的目标。

    先说一下我在数据分析方面的学习目标:以Udacity中的课程为主线,辅以其他在线课程和书籍,在2017年上半年完成数据分析纳米学位,2017下半年完成机器学习纳米学位。

    那么下面就用SMART原则分析一下我上半年的目标吧。

    • 【Specific(明确)】 是的,目标中定义了具体的活动,学习一系列课程(包括统计、数据处理查询、机器学习、可视化等),而不仅仅是说我要学数据分析。

    • 【Measurable(可衡量)】是的,只要完成这一系列课程和项目实践,我就能达成目标了。

    • 【Attainable(可实现)】根据课程中给出的300学时的建议,考虑要补充其他课程和书籍,我将这一时间乘上系数2,就是实际需要付出的学习时间。在半年内完成600学时,且在一周休息一天的情况下, 我需要平均每天准备4小时来学习。这是我目前可以实现的。

    • 【Relevant(相关性)】是的,这与我的长期职业规划是一致的。

    • 【Time-based(时限)】计划半年完成,最多乘上20%的浮动,也就是最迟7月底之前完成。同时我也为课程中的每个项目设置了里程碑,相当于预测了一个进度条。

    项目P1 - 统计学 - 2月15日

    ○ 项目P2 - 分析入门 - 3月15日

    ○ 项目P3 - 数据预处理 - 3月31日

    ○ 项目P4 - 数据探索 - 4月15日

    ○ 项目P5 - 机器学习 - 5月15日

    ○ 项目P6 - 数据可视化 - 6月15日

    ○ 项目P7 - A/B测试 - 6月30日

    好了,通过SMART原则,可以安心的知道我的目标至少是可以实现的。但问题来了,这只保障了目标是没问题的,但并没有保证我能完成啊?

    我意识到,我们管理的对象不应该只是计划本身,而应该是我们自己。


     SCRUM 保障计划的执行 

    互联网产品大多采用敏捷开发的方式,来保证产品的快速迭代。我们是否可以用这一套方法来管理自己呢?你也许会问,人又不是机器,怎么能用开发软件的方法开发人呢?可是,你看他们是那么的相似:

    • 我们的认知 -- 操作系统

    • 我们在某领域的系统知识 -- 软件产品

    • 对知识的学习 --  产品的迭代开发

    • 个人学习管理  --  敏捷开发流程

    敏捷开发正是指导一个团队如何高效协作,通过一次次迭代的过程,最终完成一款好的产品。其实每一个人都可以是一个团队,我们时刻扮演着各种角色,所以我相信这一套方法用于个人身上也是可行的。

    之前我在做项目管理时,研发组内采用了SCRUM的敏捷框架,所以我打算将SCRUM在自己身上做一项为期一年的实验。至于什么是SCRUM,维基百科的解释是“一种敏捷软件开发的方法学,用于迭代式增量软件开发过程“。好吧,还是不知所云?盯着定义看是没用的,让我们实践一下就知道了。

    SCRUM的整个流程在时间轴上是由N个Sprint构成的,每个Sprint需要完成一次产品的迭代。Sprint的原意是:在一段短距离上全力奔跑,有点像100米冲刺的场景。通常人们会把它翻译成“冲刺”或“迭代”,为了保证它的原汁原味,下面还是采用Sprint这个词。

    与传统的计划方法相比,SCRUM更适应这个不确定的时代。传统的计划方法方法总是试图做一份完美的计划,然后认为只要根据计划执行就可以把事情做好了。可这依赖于一个前提,就是我们把要解决的问题定义的足够清楚了,并且对整个过程能够准确的预测,且不会遇到任何变化。可这几乎是不可能的!我们没有办法精确预测到未来可能的变化。

    可为什么说SCRUM更能适应各种可能的变化呢?这是因为SCRUM对产品需求清单的掌控能力,应用到个人身上就是对学习阶段任务的可控。

    首先,SCRUM实施中会有一个总的任务清单(也就是本文所要做的年度计划), 这个清单中的每一项的详细明确程度不一定一样,远期的任务会比较模糊,而近期的任务则更细化。这个总清单并不是一成不变的,随着一次次Sprint的执行,我们可以根据实际情况进行调整,比如可以执行新建、删除、更改优先级等操作,对近期任务进行细化分解和工作了估算。

    尽管每一个Sprint中的任务是不能变的,但是由于整个过程是有很多Sprint构成,我们可以不断的根据现状来调整下一个Sprint的实施情况。

    Sprint的周期一般为1周到1个月不等。每个Sprint的的目的是将一些精细化的产品需求开发成一个潜在可交付的产品赠量。在每个Sprint周期中都包含计划、执行、评审、回顾几个环节。


    我的SCRUM实践

    下面就让我用我的学习计划来定义一下这些环节吧。

    SCRUM总清单,即是我上面表格中列出的学习计划,可以看出还是比较模糊的。没关系,随着一次次Sprint的进展,我会慢慢细化和调整。

    Sprint周期,定在1-2周左右,会根据实际学习任务的难易来调整。在每个Sprint周期中,我会进行如下四个环节,每个环节需要有明确的输入和输出。

    【Sprint计划】

    对总任务清单分析和估算,明确本次Sprint中需要完成的任务。

    输入:总的学习任务清单

    输出:本周期中需要完成的任务清单,并细化分解到每个任务怎么执行。

    【Sprint执行】

    这是Sprint的主要部分,就是按照Sprint计划中列出的任务清单逐一完成。

    除了完成任务,每天早晨都要进行“每日站会“,问自己三个问题,分别是:

    1. 昨天完成了什么?

    2. 今天准备做什么?

    3. 遇到什么困难?

    输入:Sprint 学习任务清单

    输出:新知识增量,包括完成的作业、实践的项目以及课堂笔记等。

    【Sprint评审】

    将目标和完成情况比较,检查是否需要调整总任务,并将学到的知识和实践进行整理。

    输入:Sprint 目标 和 新知识增量

    输出:梳理调整总任务清单;将新学到的知识增量写成文章和大家分享

    【Sprint回顾】

    相当于围棋中的“复盘”,检视本次Sprint周期,问自己三个问题:

    1. 这个Sprint周期中,哪些是做的好的?

    2. 哪些是没有做好的?

    3. 有那些地方是需要改进调整的?

    输入:回忆本次Sprint的过程

    输出:回顾小结;对自己进行阶段性奖励

    评审和回顾都是在单个Sprint结尾做的,乍看有些相似,但是它们的对象是不一样的。评审是针对产品本身(新知识)来说的,看看都学到了哪些东西,对自己的知识体系有没有升级;而回顾是针对SCRUM流程本身来说的,看看这个流程是否可行,如何能更好的执行下去。

    好了,到目前为止我对我的新年计划更有信心了。接下来,就是需要一些意志力和耐心,将计划付诸行动了!

    相关文章

      网友评论

      • Bog5d:就想来fish的文章下留个言,哈哈。感谢去年的课程,fish可是我学python的启蒙老师, 现在还在学python,而且用在工作上提高了不少效率。 希望fish一直前进哦
        鱼心DrFish:@_bobo_ 谢谢,收到你的留言也是很高兴呢!
      • 廖荣:完成的如何?
        燕麦酱:@鱼心DrFish 好感人啊
        廖荣:厉害了:+1:
        鱼心DrFish:@廖荣 完成啦!:smile:
      • 在旅途的车:2017年即将结束,不知道fish博士的学习效果如何,有没有更多经验可以分享?
      • 黑店店小二:楼主,17年即将结束,你的计划进行的如何呢?
      • 小朴同学:我的评论是为了扯淡,我就想知道,你在说‘呵呵!一起加油!’,呵呵在里面的意思或者语气或者其他???很好奇:smile:
        董大树:楼主,你好~~ 我是数据分析初学者,你是加入了Tiger的社群吗?
        鱼心DrFish:@朴青树 呵呵,没有任何意思,:smile:
      • 赵太一:从这篇《左手程序员,右手作家:你必须会的Jupyter Notebook》文章的转载追根溯源而来:grin: 给了我很大启发,感谢:sunglasses:
      • 海墨星人:请教DrFish,关于scrum以及devops有可以推荐的书籍吗:smile:
        鱼心DrFish:@杨核桃 我之前看的《Scrum精髓:敏捷转型指南》这本还不错,https://book.douban.com/subject/25887356/
      • 卞卡727:在仔细看了遍才发现 捡到宝了 好方法!
      • 彭健平6点30:加油 以Udacity中的课程为主线,辅以其他在线课程和书籍
        鱼心DrFish:@彭健平真实 我没有参加udacity的组,只是学习了里面的课程,我指的是tiger做的社群对我的影响,让一个人的奋斗变成一群人的奋斗,哈哈
        彭健平6点30:@鱼心fishstar 现在我也比较认同社群式的学习方法,你在Udacity数据分析同步学习小组的感觉如何?催化作用大吗?
        鱼心DrFish:@彭健平真实 在写这篇计划时,并没有想到社群对我的巨大影响,可以说是我学习的催化剂吧!
      • millennial:准备使用敏捷,先了解下
        鱼心DrFish:@millennial 给你推荐本书吧 http://www.innolution.com/essential-scrum/table-of-contents
        也有对应的中文版
      • 鸿雁之志地上走兽:先进,有道理。写的很明白,步骤清晰。
        鱼心DrFish:@鸿雁之志地上走兽 目前还是理论初期,后续需要实践来验证,我会不时总结的
      • 鸿雁之志地上走兽:虽然书卷气,但是值得一试。我也依葫芦画瓢😂准备干了。
        鱼心DrFish:@鸿雁之志地上走兽 谢谢!一块儿加油吧!
      • 前端开发博客:感觉你的实践环节有点多,执行起来增加困难。
        前端开发博客:@鱼心fishstar 嗯,加油,培养一个习惯不容易
        鱼心DrFish:@前端开发博客 在实践中的确有可能,所以我将之称之为实验,过程中也会进行调整。
        主体部分还是学习,至于计划,站会,评审,回顾也是严格控制时间的,它们主要用于辅助执行,而不应该起阻碍作用。
        另一个角度来说,如果这套流程熟练掌握进而形成习惯的话,那么就会像刷牙洗脸一般自然而然了。当然前期还是需要一些意志力的。
      • li_Struggle:加油
        鱼心DrFish:@li_Struggle 谢谢鼓励:smile:
      • 飞猫不二:加油,计划很赞,目标很明确
      • Bog5d:很欣赏你的一句话“2017, 我怀着谦卑的心态,没有雄心勃勃,没有一腔热血,而是冷静的思考”
        这是最智慧的心态。加油
        鱼心DrFish:@7e9e214b6c1e 谢谢!思考了半个月才敢动笔,呵呵!一起加油!

      本文标题:2017- 我的敏捷学习之年

      本文链接:https://www.haomeiwen.com/subject/picbbttx.html