我刚刚读完了Peopleware (DeMarco,Lister),之前我还研究过极限编程(XP)。在我看来,这两种方法几乎是相互排斥的。
Peopleware建议将程序员从任何干扰中隔离出来,并设置不间断工作的优先级,以帮助程序员实现流程。另一方面,XP建议确保尽可能多的交流,甚至建议程序员“坐在一起”,成双成对地编码,通常在同一个房间工作(产生大量噪音)。
这两个互相竞争的思想流派,是其中一个被证明是对的还是错的,还是有一个有效的妥协?我能看到双方的观点,但看不到任何合理的妥协。
我对学习软件开发管理非常陌生,所以我可能只是误解了一些东西。欢迎所有评论。
作为一个附加的小问题,作为一个程序员,你认为哪一个更有效率?
发布于 2011-05-22 19:51:41
你错过了Peopleware的重点。书中没有任何地方建议将个别办公室的程序员隔离开来,而是将他们分成2到4个人。
主要的原因是让程序员远离与编程无关的噪音,比如对着电话大喊大叫的销售人员,经理和秘书之间的聊天,人们移动时产生的噪音,电话铃声,扇门等等。
极限编程与2到4的办公室完全兼容。要做对编程,你是最大的2或3。
发布于 2011-05-22 18:50:11
我认为这两种方法都描述了一般的工作策略,但不一定是一天中的每一分钟。平衡必须存在。
足够近,以便能够快速沟通,但在讨论完成后,撤退到一些隐蔽的领域,并且必须遵循实际工作。
我个人认为,“坐在一起”和“产生大量噪音”的所有时间都不起作用。有时间讨论问题,决定下一步,然后有时间编码,人们必须有安静的区域这样做。
发布于 2011-05-22 19:31:39
关键是“将程序员从任何干扰中隔离出来,并确定不间断工作的优先级”。在XP中,当每个迭代都被选择为最有价值的故事时,优先级是显而易见的。客户必须努力拥有一套“稳定”的故事集,而不需要在迭代过程中改变主意(这可能会发生,但应该是特殊情况,而不是常规)。
“孤立程序员”部分是最棘手的部分。这意味着程序员应该做他们最擅长的事情:编程。要让XP发挥作用,程序员必须在这样一个环境中工作:他们只专注于完成故事,没有任何外部开销,比如会议、电话、小恩惠等等。这可以通过把每一对程序员放在自己的办公室,或者让所有的程序员都在一个除非绝对需要否则没有人可以进入的病房里来实现。
https://softwareengineering.stackexchange.com/questions/78333
复制相似问题