艾伟也谈项目管理,敏捷教练的工具箱

  学习并不是简简单单的阅读和浏览,而是一个积累的过程,一个通过持续的学习,对自己的知识体系不断丰富、索引的过程。接下来我会从四个方面入手分享我的经验。

  高质量的信息源和高效的学习

  Google是一个很好的工具,通过它,我们可以找到很多很好的资源,但前提是必须先知道要搜索的关键字,没有关键字,就不知道该查什么。多数情况下,人们都是在不可能知道自己不知道什么(Unknown unknown)的状态,也就是不知道该用什么关键字去查询,因此也不会知道该去学习些什么。所有基于Google检索的模型是一种基于拉动的模型,而基于拉动模型的方式不可能让我自己去接触那些自己不知道的信息。

  为了让自己接触到充足的信息,我需要建立一个信息网络和信息渠道,让那些可能感兴趣的信息不断推送到面前。推送渠道主要是以Twitter和Google Reader为基础。通过订阅感兴趣的内容源,我可以时刻了解业界正在发生的热点讨论、研究、工具、书籍,以便及时调整学习方向。

  同时我所订阅的资源也起到过滤有价值信息的功能。从我欣赏和信任的专家那边推过来的信息或者被多次提到的关键字对我来说都是有价值的信息。思维导图是一种十分有效的快速学习的工具。在看书或者学到有价值的知识时,我经常会把学到的内容做成思维导图。

  这样我既可以对所学到的内容有一个概要的、抽象的了解,同时又可以随时深入到细节。思维导图桌面应用工具, 我常用的是XMind。XMind可以方便地支持思维导图、鱼骨图、组织结构、树状图等多种形式,同时它提供了一些初始模板,包括头脑风暴、会议、项目管理、读书笔记、流程图等。在线的思维导图工具, 我使用Minemeister。它能够做到修改通知,甚至播放整个修改的过程,并且支持多个人同时在线头脑风暴。我经常在头脑风暴电话会议中使用这个工具。

  方便的笔记管理

  学习是一个构建个人知识库并且不断建立索引的过程。每次接触到有价值的知识,我都会做笔记。好的笔记应用满足以下几个需求:

  • 记录多种形式的内容,包括文本、图像等。
  • 方便的标签功能,这样我可以方便地定位特定专题的内容。
  • 支持自由文本检索,这是标签功能的有效补充。类似于Google那样,通过一些关键字,去检索知识库。
  • 同步与备份,方便地在不同的电脑以及设备之间同步。

  最初我使用微软的OneNote来做笔记。早期版本的OneNote能够记录多种形式的内容,并且可以方便地用关键字查询。它的分页功能在一定程度上起到标签的功能,但是一个笔记只能放在一个标签下,除非复制多份,而多数情况下,一个笔记是需要放到几个标签下面的。由于微软的应用是以客户端为主,所有笔记都放在客户端,因此我需要自己备份这些文件。每次重新安装机器,都需要自己手动复制文件。后来我选择了能够满足我对笔记管理工具的全部要求的Evernote。

  首先,Evernote是一种客户端服务器架构,可以使用多种客户端应用来记录笔记,而笔记会自动同步到服务器。这样的话,每次更换机器或者更新系统,我要做的只是安装Evernote客户端登录,就可以自动下载同步所有笔记。Evernote做到了写入既存档,它会自动把最新的内容同步到每一个设备,这样我再也不用担心笔记丢掉。我比较反感很多应用中的保存功能,对于一个真正为了客户设计的系统来说,它不需要客户考虑是否保存这种琐事,每次客户输入,都应该自动保存在电脑中,而且客户根本不需要关心存放在什么地方,只要想找的时候能够方便地找到就可以了。

  Evernote的Tag和自由文本检索也十分强大,它的自由文本检索甚至可以认出 Evernote笔记中图片里面的字符,如果图片中的文字符合检索要求,它也会可以帮我找出来。  另外Everno te支持多种包括PC、苹果电脑、手机、iPad等多种设备。当然,作为一个有心人,一定要随时记录学到的知识,随身一定要带笔和纸。

  知识库的备份与版本控制

  我的个人知识库不光包括日常笔记,还包括各种各样的文档,比如论文、PPT、视频、培训及咨询资料、个人资料等。我对于资料知识库的需求如下:

  • 版本控制,我需要总是在最新版本的文档上做修改,但不希望用时间作为文件名。
  • 保留历史,希望看到每份文档的历史。
  • 占用磁盘空间不要太大。
  • 资料同步。

  我最初使用的工具是Subversion 和TortoiseSvn,Subversion是服务器,TortoiseSvn是客户端。每次对文件做完更新,在相应目录或者文件上用鼠标右键点击,选择更新,TortoiseSvn就会把修改提交到Subversion服务器。使用 TortoiseSvn可以很方便查询提交的整个历史。与Evernote不同的是每次都需要手动提交。相对于笔记在Evernote中的自动更新功能,我更希望手动更新资料,这样就可利用提交时填写的注释,记录整个文档变化的历史。

  但基于Subversion的解决方案也有问题,由于Subversion是基于服务器-客户端架构的解决方案,每次提交必须连接到Subversion服务器,而这个服务器往往是装在另外一台机器上,因此如果出差中,就没有办法提交更新。与Subversion相比,Git是一种完全不同的版本管理工具。作为分布式版本管理工具,它的服务器总是在本机,因此我随时都可以提交文档的更新。Git的数据库比Subversion数据库要小几十倍。在Windows平台上需要安装MSysGit来安装Git,在 Mac平台上直接安装Git  就可以。另一个重要原因是我希望通过使用Git来学习这种新的工具,以及了解分布式版本管理系统的工作方式。基于Git的解决方案给我带来一个新的问题我的资料数据库和我的资料数据都存放在同一台机器上,万一机器崩溃或者丢失,就会带来不可弥补的损失。因此需要把数据库同步到其他地方。

  我使用的是Mac自带的Time Machine,它会随时备份。Dropbox也是一个不错的备份方案,可以把资料同步到网上,但是对我不适合,因为我的个人资料库远远超出了Dropbox免费账户所提供的空间大小。而且Dropbox是采用自动更新的方式,这样我就很难利用手动提交时填写的注释来记录文档更新的历史。

  提高工作与学习的效率

  我十分反感低效的工作和学习,因此在我的常用工具箱中有不少提高电脑使用效率的工具,主要包括:时间管理、检索、快捷键、黏贴板等。

  1.时间管理

  对于时间管理来说,基本需求是保证能够专注于最重要的事情。因此我需要一个待办事项列表工具和一个能够帮助保证时间箱的工具。我使用番茄工作法管理自己的工作和学习时间。具体做法就把时间分成25分钟的时间箱(番茄时段),每个时间箱中排除干扰专注于做最重要的那件事情。我使用Pomodario作为时间箱工具(从下图可以看出,我写到这个地方已经花了十个25分钟)。

  我用的待办事项列表工具是Remember TheMilk(RTM)。它是一个在线应用,也可离线,具有丰富的标签功能,可与日历程序同步。美中不足的是不支持任务嵌套,我暂时通过标签来作区分。每次开始一个番茄时段之前,都会从RTM里面选择最重要的任务,然后在接下来的时段中,不受干扰地去完成这个任务。

  2.检索

  多数电脑安装的操作系统都是基于图形界面的,为了寻找文档往往需要打开资源管理器(在Mac上是Finder),然后资源管理器会树形展开所存储的资源。为了找到资源,需要用鼠标不断展开/缩放树节点,去寻找文件。这种做法十分低效,找一个文件往往需要半分钟。因此,迫切需要一个工具能够从电脑中快速定位并且启动文件或程序,只要简单输入关键字,  就可以从电脑中把相关的资源列出来。在Windows系统上,我会用Everything和Google桌面。Everything会将系统里所有文件索引,输入关键字就可以把文件名符合关键字的文件列出来,Everything还支持基于正则表达式和通配符的检索,资源消耗很少,速度很快。

  Google桌面也可以通过关键字检索来定位文件,而且比Everything更强的是它不仅仅对文件名作匹配,也会去匹配文件中的内容。问题是Google桌面功能太多,对我来说太过于重量级,所以我以Everything为主,以Google桌面为辅。 Mac系统自带了Spotlight,它实现了同样的功能。只要按下Command + Space,就可以直接启动Spotlight输入关键字。

  3.快捷键

  使用键盘比使用鼠标效率要高得多,对于常用的操作或者命令,我都会写一些脚本,定义一些快捷键。在Windows系统上,我用的是AutoHotkey。在启动机器后,我需要启动Git,然后到GitHub上拉最新代码,本地运行脚本去编译和测试,然后启Visual Studio打开项目。通过脚本和定义命令,我只需要按几个键就可以完成整个操作。

  4.增强黏贴板

  有一个功能实现起来不难,而且很实用,不幸的是它被Windows和Mac系统所遗忘。这两种操作系统的黏贴板仅仅能存放一个东西(文本、图像等)。如果按一下Ctrl + C (Mac下是Command + C),系统会把所选的东西放到黏贴板,替换掉原有的东西。我需要一个工具能够存放多于一个东西的黏贴板,这样它就成为一个临时存储区域,可以方便地把东西放到这个区域中,随时复制到其他地方。Windows系统上我用的是Cl ipX,在Ma c上我用的是ClipMenu。

  以上这些工具能够极大地保证我的学习和工作效率,保证在电脑前所有的时间都用来做有意义的事情。这些工具是日常的一部分,我的工具箱在不断地调整,我也在不断地尝试比较新的工具。读者可以以这些为基础,建立自己的工具箱。这里还想分享一下选择工具的原则:

  首先,不会为了选工具而选工具,选择的工具一定可以解决某个问题,这也就是为什么在分享工具的同时,也在分享这些工具解决的问题的原因;其次,选择能够发展自己能力的工具,比如Git,AutoHotkey等;最后,要不停地尝试和比较工具。

时间: 2024-07-30 11:27:24

艾伟也谈项目管理,敏捷教练的工具箱的相关文章

艾伟也谈项目管理,敏捷实施中的常见错误

一些评论员写下了敏捷实施中一些常见错误和反模式.他们贴出了"Top X"列表,列出了需要避免的事项和他们曾在各种组织实现敏捷时见过的错误. Target Process的Michael Dubakov写了两篇博文:"10个敏捷实施中最常见的错误"(Part 1; Part 2 ).他认为"许多公司在敏捷实施中再三犯同样的错误." 他的常见错误列表如下: 1. 从一个工具开始敏捷开发是不同的.一个工具不会立刻产生影响,不会由于这一工具的存在而解决多

艾伟也谈项目管理,敏捷的坏态度

虽然所有软件开发的专业人士都会对这篇文章感兴趣,但是经理.CIO以及软件架构师会对它最感兴趣.这个话题可能会引起许多争议,但我写这篇文章是为了让你了解在敏捷运动中看起来正在日益增长的问题. 你为什么在这?敏捷不需要经理. 以前听过这种说法吗? 想象一下,如果你听到开发人员认为你这个职位根本就不应该存在,你会感到多么震惊,就好像是你特意为自己搞出经理这么个职位似的.这个话最常应用在项目经理第一次与将要和他一起工作的开发团队碰面的时候.的确,最初的敏捷宣言绝对没有提到项目管理,并且后来的敏捷理论家更

艾伟也谈项目管理,动起来再调整 - 向项目经理推荐敏捷

要成为一个好的项目经理需要学会逆水行舟.虽然顺水推舟有时也能到达目的地,但学会逆水行舟,你才能到达任何地方. "虽然很有道理,但我认为现实不允许,很多项目都有规定的期限.中途还有给客户演示效果,往往实际项目中都是按最后上线日期来进行项目规划管理的." "写得不错,但是有些建议过于理想化了.毕竟说得很有道理,但实际中具体做起来又不是那么一回事了." 这是两位网友对<软件项目经理新手上路>的评论.这话很有道理,也是在现实生活中碰钉子碰出来的.在项目中确实存在

艾伟也谈项目管理,克服在企业中应用敏捷方法的技术挑战

在企业中应用敏捷方法是一项具有挑战性的任务.实现敏捷不像安装软件那样能在一天内完成.而是需要适应企业环境,其中包括:文化.技术和组织方面.本文将探讨面临的一些挑战,这些挑战与建立开发环境.自动化测试.持续集成相关,并且同在企业环境中明确完成的定义(DoD)相关. 建立开发环境 每位技术负责人和开发经理都想缩减团队成员建立开发环境的时间.然而,为了在项目中获得较高的产出,开发人员要持续投入许多精力,让事情变得有条不紊.缺乏文档,是建立开发环境时间过长的关键原因.第二个关键原因是建立过程中包含多少手

艾伟也谈项目管理,解读敏捷需求分析五大关键因素

大多数学计算机语言的人都会有过这样的感受,过去一直认为编程和架构是整个软件生命周期里最了不起的部分,但实际工作后才会发现在商业产品里,需求分析才是一个商业软件成功与否的关键. 放眼望去,在当今软件工程领域出现的许多问题,诸如缺陷及资源运用不当,都源于需求的不清晰,甚至有软件人戏称:"需求变更乃万恶之源",一时也获得了颇多响应.时至如今,业务IT间需求分析过程中存在的问题主要有哪些?什么是敏捷需求分析?产品级和项目级需求有何异同?敏捷需求分析方法论中的五大关键点是什么?就以上热点话题,雅

艾伟也谈项目管理,给敏捷软件开发的26条建议

我经常收集各种各样的至理名言,最近我重温敏捷软件开发:真正的问题是什么?下面是一份26条关键原则的清单,以指引敏捷软件开发团队. 1.完整地干完一件事后在开始另一件事:用厨房比喻来说就是:"先上这道菜,再开始做下一道".软件开发的最大问题就是同时开始几件事情,这将不可避免的造成某些工作被废弃,从而造成浪费.专注于一件事:完整地实现其功能:运行测试:编写文档:签入所有,把这当做一项工作完成,然后再开始下一件事. 2.不要破坏构建:非常明显,但必须被包含在任何软件开发建议清单中.程序员在签

艾伟也谈项目管理,敏捷开发,在路上

如果有一种方法能使你的软件缺陷率降低63%,核心缺陷率降低79%,整体投入减少62%,整个项目开发的时间缩短69%,你会采用这种新的软件开发方法吗? 在回答这个问题之前,你可能会问:是什么方法能达到这样的效果?答案是:敏捷开发.你一定会开始质疑:这是真的吗?或者你会说:我们也在用敏捷,但没有以上提到的这么夸张. 以上提到的一些数据来自Forrester,一家善于用数字说话的咨询公司.他们对多个采用敏捷开发的项目与传统开发方式进行对比,得出以上数据.而这些项目来自敏捷刚刚开始起步的2002年. 不

艾伟也谈项目管理,敏捷个人:内容框架之执行力

    执行力是敏捷个人需要学习的一个内容,本篇主要介绍执行力相关的内容,大家在读后可以采用介绍的一些指南开始行动. 执行力的三个层面 按照命令和规则做事的过程,简单讲就是能够听话照做 按照预定的计划行为的过程,简单讲就是做事章法 将想法变成现实的过程,简单讲就是规划实现 对第一个层面来说,要做的事情是片段的.非连贯的,但对第二个层面来说是连续的.整体的.一个计划并不是一两个步骤做好就行,而要将整体的顺序都做好才能达成效果.有了第二个层面的执行,组织的运转就有了相对较高的效率,但仍然不够,这就需

艾伟也谈项目管理,我也发软件开发团队的思考(侧重点是人员)

//上个月给我们老板的mail.洋洋洒洒6000多字. //为了方便公开,改了一下.以致可能有些地方前言不搭后语. //不管他同意不同意,先在我们组实行了再说. //请多大家多提提意见,日后看有没有机会找老板当面交流 经历的几个项目,项目的进度老是不尽如人意.更重要的是市场的开拓因为这些项目拖住了后退而无所作为. 我们现有的情况是:项目期限和最开始的保守估计都相去甚远,最后提交给客户的产品60%都是最后一个多月开发出来的,还有20%左右是以前就固有的固定模块.这几个项目我参与了编码,我对整个系统