Staying Real
29 Nov 2010
37Signals的一篇Blog,谈到了在现实项目中的种种问题已经应对措施,给我印象最深的,就是由于实际情况,而将固定长度的迭代变成变长的……例如,将完整的14天(两周)的迭代,变成7个工作日的迭代(第一周4天,第二周3天──因为第一周可能需要有大量的讨论,第二周要部署和进行及时的support)。而且每个迭代都会根据实际情况进行调整──比如某些周假期非常多,那就进行更少的计划等。
对于我这种“纪律就是纪律”的守序主义者而言,这确实有些不可思议。我一贯觉得,在长期的项目开发中,工作的节奏需要保持,这种节奏不应该、或者说应该尽可能少的受到现实情况的干扰。比如,在过去的项目中,为了让每个迭代的交付产物看起来差不多,采取了比如延长迭代时间(比如在假期众多的月份)或者主动进行计划预期降低(比如在特定的月份交付更少的功能)。但“减少有效工作日并将其作为计划的基础”,这个则完全没有考虑过。
除了计划层面的考虑之外──其实这方面仔细想想也不难理解,我另外想到的是,对现实的尊重。老外对自己的个人生活都很看重,假期能享受的,绝不工作,8小时之外绝不多工作;工作之外其他的兴趣也照顾的很周全──奇怪的是,对于37Signals这家公司,这些现实的局限丝毫没有阻碍他们成为一家在现代独树一帜、颠覆并成为新一代商业公司典范──无论从技术上、还是商业上超级成功的公司。
然而这就是现实,一个以现实为基础并造成另外一个现实的现实。他们从根本层面尊重员工──将第二周的工作时间变成3天而不是5天是因为部署和support也需要算到工作时间中而不是通宵或者加班;理解浪费的产生不是太少太慢而是太多太快,因此宁愿将事先的讨论放到工作时间之外并放到计划中;理解精致的东西来自手工因此愿意投入两周甚至一个月的时间仅仅为了实现更好的日期选择方式。
也许37Signals是产品公司,对自己的产品有充分的控制能力,因此可以自如的控制进度;然而现实的产生往往来自于当初的意愿。如今的现实让他们公司愿意,也让他们的客户满意。
那么,我们能看到的项目中有哪些影响进度的真实呢?
- 马上就是假期了
- 随着功能的逐渐堆砌,连有经验的人对现在的工作都失去了兴趣
- 新人比例大,成长慢
- 张三家里需要帮助
- 李四每个周二都会早走1小时,因为他要陪老婆去看打折电影
- 王五抱怨每天上班需要1个多小时
- 每隔一个周末都需要部署,目前采用轮换的方式,来值班
- ……