本节书摘来自异步社区《团队软件过程(修订版)》一书中的第2章2.1节项目为何失败,作者【美】 Watts S. Humphrey(沃茨·S. 汉弗莱),更多章节内容可以访问云栖社区“异步社区”公众号查看。
第2章 团队软件过程的基本原理
团队软件过程(修订版)
本章主要介绍TSPi,解释它如何工作以及为何有效。另外,本章还介绍了团队的概念,解释了团队如何工作,并讨论了常见的团队协作问题。
有关团队协作的资料很多,优秀团队和表现不佳的团队的例子也很多。本章不可能涵盖所有资料,只对主要问题做重点介绍。有关团队协作的进一步讨论,可以参考第16章和第17章。本章只是一个简介,在使用TSPi的过程中,你应该仔细阅读本书的每个章节,以深入了解你面对的工作所涉及的主题。本章内容安排如下。
项目为何失败。学习如何处理压力是软件开发团队的主要任务之一。压力处理不当是项目失败的一个普遍原因。我们就从关于压力的讨论开始,告诉你TSPi是如何帮助团队处理常见的软件工作压力的。
常见的团队问题。大量有关学生团队的研究已经发现了他们最普遍的问题。我们将介绍其中TSPi过程能够解决的问题。
团队是什么呢?在讨论团队之前,我们必须对团队的基本概念达成一致。
高效团队。有些团队要比其他团队更有效率。这一部分将讨论优秀团队区别于其他团队的特点。
团队如何发展。高效团队并不是一下子就形成的,它们总有一个成长过程。这一部分总结了高效团队的发展过程,不论这些团队是靠机遇发展的还是通过一个精心设计的团队建设过程得到的。
TSPi如何建设团队。接下来,我们简要介绍TSPi建设高效团队的步骤。
2.1 项目为何失败
团队软件过程(修订版)
软件项目的失败一般都是由团队协作问题导致的,而不是技术问题。DeMarco [DeMarco 88,第2页]曾说过:
项目的成功或者失败很少是由技术问题导致的。你也许从来没有问过诸如“技术是不是已经足够先进,可以编写这个程序了?”之类的问题,因为那是毋庸置疑的。如果项目环境开始恶化,一般都不是技术问题,人员交流问题才是根源。团队可能无法团结起来,开发人员可能无法取得用户的信任,或者,相关人员会在毫无意义的方法学问题上争论不休。
重要的“人员问题”之一就是软件团队无法妥善处理压力,尤其紧迫的开发进度压力。一般来说,团队对这种压力的反应是靠走捷径,使用不完善的方法,或者把赌注压到新语言、新工具和新技术上。
过大的压力可能有很强的破坏力。它让人们变得焦虑,甚至去幻想并不存在的问题和困难。压力不仅不能帮你以一种有序的、建设性的方式处理问题,反而经常导致对于未知(大多都是幻想的)问题的忧虑。有时,压力会让你表现得好像那些幻想真的存在一样,这会给你的项目、组织甚至自尊心带来无法想象的影响。
当团队知道如何处理紧迫进度的压力时,你就会感觉到差别。刚开始一项工作时,人们通常都无法明确这项工作究竟会涉及什么。但是,当你制定计划并开始实施之后,就会感觉轻松一些。就算工作比你想象的复杂,也还是会这样。你感到轻松的原因是,你是在处理已知的问题,而不是未知的焦虑。
处理压力
压力是一种感觉。例如,你可能必须要完成一项任务,不管你认为自己能不能完成。任务越紧迫,你越怀疑自己完成该任务的能力,压力就会越大。压力源自内心,因此,你有能力处理好它,但你首先要找到压力的根源,然后再决定如何处理它。软件项目的压力通常源于紧迫的进度要求,该进度要求可能来自于管理层、教员、同事或同学。
然而,压力真正源自我们自己本身,它来自于我们满足经理、教员、同事或同学要求的自然愿望。当这种压力与我们对自己能力的正常怀疑交织在一起时,它就变得富有破坏力。对于还没有学会如何处理正常的项目挑战的新的软件团队来说,更是如此。团队必须知道如何有效地工作,如何开发高质量的产品,尤其是在紧迫的进度压力之下。
通过指导团队一步步完成制定策略和计划的过程,TSPi告诉团队如何处理压力。在这个过程中,团队分析工作需求,设计工作策略,估算产品规模,然后制定工作计划。正是因为不现实的进度安排是软件项目问题的主要原因,TSPi才要帮助团队更有效地管理项目计划。只有学会管理日常工作,团队才更有可能完成高质量的工作。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。