avatar

Derek Zeng

A programmer

有关管理自己工作的一些想法

by coderek

工作快两个月了。每天都埋着头写程序,但是一直觉得效率不高。尤其是当要同时处理好几个东西的时候,总感觉有些乱。

有时候在想我需要发展一套自己的工作习惯,这套习惯能够应对任何种类的工作,并能在处理好几个棘手的问题时候能有条不紊。最重要的是这个习惯要能很容易的遵循,应该有一些工具可供使用。比如我现在有一些简单的思路: 首先,邮件一定要归类,行政,项目1,项目2等等都要分得清楚。这样查找起来很方便。有时候为了防止遗忘某些重要的邮件,可以将它们标星。这些工作都要在收到邮件的第一时间做好,因为过了这个时间很可能就不记得了,再去清理的话,一来浪费时间,二来有可能出错。

其次,充分的利用一个任务管理软件,比如说thunderbird的日历功能。每次拿到新任务,一定要第一时间建立起一个任务。可以是没有时间期限的,但是任务细节一定要有。每一条小的步骤都要列清楚,这样每次看到这个任务的时候心中都可以有一个很清晰的图像。很多时候我觉得自己blur blur的都是因为对目前的问题不够了解,我觉得这些东西还是要写下来才行。任务的执行过程中,有些客户要求会经常变动,这时候一定要及时更新任务。每天要对自己完成任务的程度做一个更新,多少percent,都要写清除。我觉得任务的管理一定要集中,不然东西零散的堆积在那里,自己的思绪要乱七八糟,只会让情况恶化。

这个日历跟邮件一样在工作的时候都是一直打开的。这样一旦有新任务,就可以马上更新。

然后,写程序的时候一定要有一个好的源码管理软件,目前我使用的是Git,用起来很方便。它可以随时commit 设置存储点,每一次源码的变动都在掌握之中。Git 可以同步几个不同的文件夹,也可以很便宜的创建分支。不过我在使用Git的过程中还是有一个疑惑,就是几个feature同时开发的时候应该怎么做。是分几个分支,在干净的源码上分别开发,最后全部一起合并好,还是全部都在主分支上开发。前者思路比较清晰,很容易知道哪些改动属于当前的分支,但缺点是合并的时候可能会有很多麻烦。比如合并resource文件的时候遇到冲突几行程序唯一不同的只是几个坐标,这时候就很难分清哪些是需要的合并,哪些是需要舍弃的。全都在主干上开发的坏处就是乱,这时候唯一能够keep track的工具就是有意义commit标记。我现在用的是mix的方法,同时工作的feature多了,一时做这个,一时做那个,所以感觉相当乱。这个还需要探索一下。当然这个疑惑跟Git没有关系,属于软件开发过程的。

最后一点是思想上的,就是工作的过程中一定要时刻提醒刚刚做过什么,现在该做什么。多看任务记录,多看项目文档。这样才不会走神。

做到这么几点,我觉得还只是初步的,之后还有很多要做。但总体来说就是这么一点,要养成好的习惯,做事要有一致性,条理性。我现在是一个人做一个项目,勉勉强强可以胜任,唯一让我感到不满意的就是效率问题。这两个月虽不长,但我经历了软件开发的很多方面,可谓学到不少东西。现在的首要任务就是培养一个好的习惯,我相信这是提高效率的首要步骤。

(End of article)