美国的童子军是由小朋友们组成的军队,他们在行军露营中有一项规定:当你离开一个露宿营地的时候,一定要让它比你来的时候更整洁干净一点。该军规一方面让童子军们从小养成自觉自律的习惯,另一方面也保护了自然环境。

    有时候在外面逛街逛商场,我看到脚底下有一些垃圾纸屑,我基本上会捡起来找个垃圾桶扔进去,有时候垃圾桶不能立马找到,我就会用一张餐巾纸包裹着垃圾拿着好久,直到找到合适的垃圾桶。这是童子军军规在生活中的体现,而我在写代码时有代码洁癖。

    在软件开发行业,程序员的职业生涯行军军旅中,会路过诸多不同的露营地(遗留系统),而每个露营地的整洁程度都不一样。优秀的程序员不管在哪个营地露营,他都会尽自己的努力去保持营地的干净整洁,即便有时候不能让营地变得像一个新开发的营地一样干净,他也会尽力努力去维护它,让营地在自己离开的时候比来的时候更好一点,哪怕一点点。

    尽管有时候这种想法和做法让他看起来像是一个另类,在一个平庸的团队的团队里显得格外扎眼,但他内心的坚持会送给他一次筛选的机会,尽自己的能力遵守好心中的规矩,更换掉不合时宜的团队,只留下来自己该有的态度。这也是一些优秀的程序员在一个平庸的组织内努力无果后离开的真实原因。

    在敏捷开发团队,最重要的是发自内心的持续地改进。不需要一次迈出一大步,企图做一个特别大的改革,而是要小步快跑,快速迭代,能够以稳定的节奏变好。

    面对遗留代码中的“坏味道”,不应破罐子破摔,每次尽己所能顺手修改坏味道的代码,一小步一小步地偿还这些技术债。面对新增的代码,应时刻加强自我学习,提升整洁代码的认知,坚持做任务分解和编写单元测试。

    破窗理论 和童子军军规放在一起,印证了一句古训 — 勿以恶小而为之,勿以善小而不为。