个体和交互胜过过程和工具敏捷开发宣言第一条。
为什么个体和交互在软件开发之中被提到如此高度呢?
传统的软件工程中,衡量软件开发工作量一个重要指标就是人月。在这里,如果限定了变量月,那么如何按期完成软件的开发呢?对,就是加人手。
《人月神话》中对此有很深入得分析。“人数和时间的互换仅仅适用于以下情况:某个任务可以分解给参与人员,并且他们之间不需要相互的交流。这在割小麦或收获棉花的工作中是可行的;而在系统编程中近乎不可能。”
为什么这么说呢,就是因为软件系统编程虽然可以分解,但最后却需要集成。因为需要集成,那么各个子系统之间的沟通和交流就无法避免。
沟通,在书中分为培训和相互交流两种方式。而这个工作却不能再被分解,也就是说人手越多,沟通的代价越大。
说到这里,是不是说软件开发只能是少量的人,最好1个?也不是。现在软件的复杂度已经很难再有3个人加个车库就可以开发一个完美系统的事发生了……