最近一直在反思自己的工作方法,发现还是很有问题的。 首先罗列一下自己的工作的流程:
1.发现问题
2.定位问题,找到问题的root cause。
3.思考解决问题的办法,编写代码实现。
4.编译代码,解决编译过程中出现的问题。
5.运行测试代码,解决在运行结果与预期不一致的问题。
6.review代码,优化一些可以优化的代码,如有必要再次编译执行,测试是否符合预期。
看着是一个不错的过程,但是发现现在也不听的暴露一些问题,比如:
1.有些隐藏在新代码中的问题,需要仔细review才能发现。但是我自己发现测试已经通过,在步骤6中就没有仔细的再去review代码,没能发现这部分问题。最后就在测试team的测试中爆出regression 问题。
2.有些问题在步骤5之前做review的话,比较容易发现,但是我直接进行测试而没有review,在测试的时候发现问题。如果测试比较方便,则损耗比较小,如果测试不是很方便,这样测试问题,发现问题,解决问题,再测试问题,发现问题,解决问题...的循环也是很花费时间的。
3.有些问题可能和发现的问题很相近,但是在解决这个问题的时候没有发散的去思考有没有近似问题需要解决,所以可能只是解决一个问题而没有解决一类问题。
其他一些问题,一时我也想不起来,但是就以上两个问题,已经让我自己吃了很多苦头,我觉得有必要改变我的工作流程,我觉得如下的工作流程是我目前觉得比较合理的,罗列出来供大家讨论:
1. 发现问题
2. 定位问题,找出问题的root cause。
3. 扩展问题,看看有没有类似问题也存在,如果有,可以考虑在这次一并解决。
4.思考解决问题的办法,编写代码实现。
5.编译代码,解决编译过程中的问题。
6.仔细review代码,发现代码中的可能存在的问题并解决。
7.编译通过,执行代码,测试结果是否符合预期。如果不符合,解决问题。
8.Review 代码,优化一些可以优化的地方。这个时候应该只是小的优化,大的应该在步骤6里面完成。
列出以上解决问题的流程供自己以后实验,在以后解决问题的过程中不断改善之。 也请有经验的大牛可以提供自己的建议或者宝贵经验。