复杂软件开发,是一个不断探索、试错、迭代的过程。在此开发过程中,有可能要不断地澄清、更新需求,更新架构和模块设计,更新测试程序,更新相关文档和模型...

  分支测试-状态

  程序员在自己的分支上,完成必要的测试(单元测试、功能测试、非功能测试等)。

  纠错(Debug)-子状态

  测试发现错误,程序员要不断进行查错、定位、改错、再测试的开发循环。

  重构优化-状态

  测试通过、确认功能实现后,程序员对已有代码进行必要的重构优化,改进代码质量。

  重构代码后,仍需要进入测试、纠错、重构、再测试的循环。

  checkin

  程序员之内应该多次 checkin 自己的代码,这个 checkin 是检入到自己的任务分支上,而不是团队主干。

  合并(merge)-状态

  程序员把自己分支上达到提交质量的新代码合并到团队主干上。

  合并到主干的操作,对于某一位程序员来说,并非每天都发生。程序员完成开发任务,一般需要一至两天时间,这是正常的。

  系统集成与测试-状态

  当天代码全部合并后,进行系统集成测试、冒烟测试、单元测试等。

  通常整个团队可以设置中午、下午和晚上两至三个合并窗口。

  晚上

  你司加班是否家常便饭?

  敏捷开发反对无节制的、长期高强度加班,但“每周 40 小时工作”只能是理想口号,不解决任何现实问题。

  推荐一种做法,在晚饭前启动系统测试,以便利用晚餐时间执行测试。若测试未通过,则加班纠错。

  晚上适合做 Debug、重构、回归测试、学习新技术等工作。

  更新开发日志

  在下班离开公司前,更新 Project Web 上的开发日志(DevLog),记录做了些什么,存在哪些问题需要解决,以备忘。