对于研究者来说,记录一份有关他们工作的详尽日志是一种标准要求.它提供了日后详细了解工作执行过程、方式、结果以及结论.而软件开发者很少有这种习惯.我曾在这两个阵营都待过:不记录工作日志和详尽记录工作日志.我诚恳的提倡写工作日志,并鼓励在我的项目工作的所有开发者都保持纪录和共享详尽的工作日志的习惯.
在工作日志中应当记录什么?
工作日志不用很复杂.一个清晰的文本文件是最好的,你可以把它加入到程序版本控制系统(version control system)中并能够跟踪其变化.
每天,写下日期.谈谈你解决问题时的思路和方式.写下你所面对的选择、观点、观察、测试方法、结果和决定.如果你犯了错误,记下为什么事情会如此,描述你的选择.如果你碰到了bug或者问题,描述一下以及你如何解决的.如同有写日记习惯的人,工作日志只是个人用来记录有关工作的事,因此,它不会代替正式的项目文档或者源代码中的注释.一天大约写几百行.
最后,不要修改.描述你做了什么,以及详细的结果.诚实的记录下来,不管是好的、坏的还是令人讨厌的.
应当和同事共享你的工作日志吗?
是的,和同事应当互相读别人的工作日志.记住:每天要把工作日志登记到共享平台中,至少一次.看一看工作日志只需要很少的时间,却可以很好的理解项目是如何构建和发展的.如果看到同事遇到问题,也许能够早些提供预测,而不是直到遇到下一个困难时才有警觉.
然后能够通过工作日志来追踪项目开发,而不用打断项目组的工作.能对项目有一定的远见能力,会更快地看到项目的瓶颈和问题所在要记住,工作日志主要对个体开发者有用,而对项目经理并非如此.因此要避免严厉的检查内容或规定书写形式,另外,工作日志也许会变成无用的“小说”.
有什么好处?
下面是一些真真正正的好处:
保证正确的焦点和提高效率:大多数的办公室和实验室有太多的令人分心的事物;而工作日志有助于你保持正确的焦点.你也会更有可能的避免重新尝试那些已经证明过没有用的解决方式,而你有可能忘记曾经用过那些无效方式.虽然听起来有些矛盾,当你花时间写下那些事情时,你确实会发现你的效率提高了.
更好、更快的决定:把一个想法确切的写下来,那么它就会变得清晰和易懂.你会发现,通过把想法写下来以及描述你面对的选择,你就能更快的选择和排除主意.如果你是极限编程(Extreme Programming)的爱好者,但是因为实际原因却不能进行结队编程(Pair Programming),这样一份详尽的工作日志就是一位最好的编程伙伴.
详尽的历史:几天、几周或者几个月后,你要能够回想起为什么当初采用这种方式而不是另一种.源代码只是描述了最后的解决方式,但是工作日志描述了你在到达结果的过程中的每一步.
更好的多重任务处理:在不同项目之间的转换是比较困难的,但是必须这样做.读一读工作日志,会有助于你很快的回到你被打断的时候.