我们需要实践来建立过程

来源:互联网 发布:python与股票 编辑:程序博客网 时间:2024/06/05 18:34

开发人员对过程非常厌倦。统一过程已经开始变得非常繁杂,过程改进程序需要太多繁杂工作,敏捷的社会工程方法难于扩展。尽管如此,我们仍然相信,我们需要采用有效实践,来按时按预算地开发优秀软件。

 

实践是一等公民,过程仅仅是实践的合成。正如用例对于软件系统的意义,实践对于软件开发团队的意义是:它们都有始有终,它们都为涉众带来明确价值。实践可以来自于个人,也可以来自于世界上不同的方法阵营,如敏捷方法或者过程改进阵营,最重要的是,实践可以由不同过程的精华部分组合而成。

 

在我尝试给出实践的学术定义之前,我先列举几个例子。迭代化开发是一种实践,它所描述的是,你如何把一个项目分解开,形成一系列的迭代,然后,你如何以一种更加明智的方式把这些迭代再次组织起来。重要的是,该实践能够独立使用,例如,你能够使用它来规范需求或者构建架构。团队核心是另外一种实践,它描述如何与团队合作。比如,如何组建自我管理的团队、安排结对编程、进行责任分配等等。因此,对于不同项目,你应该能够混合、搭配以及优化实践。

 

并非所有项目都相同,获得成功的秘诀就是要确保灵活性,以满足各个项目的特殊需求。当然,你无法也不应该每个项目都从头设计,但是,项目团队必须能够因地制宜的满足不同的项目需求。遵循相同的基本原则,每个项目都应该能够根据需求来定制实践,结果应该是相似的,而达到这样结果的方式却可能不同。举例说明,同一家公司,某个项目可能需要遵循一些政府的法规,因为该项目是基于财务报告的,而另外一个项目却不需要如此严格的约束,仅仅是因为它用于另一部门。最终的目标都是类似的(对于一个成功的项目),但是 获得成功的方式的确相去甚远。

 

再举一个例子,一个团队可能是位于同一地点,也可能是分布在世界不同的国家。在这种情形下,团队的工作模式截然不同。你不可能要求相隔千里的团队以每天例会的形式来开始一天的工作。因为,他们是24x7工作的开发团队,根本不存在某天开始的概念,然而,同处一地的团队就可以在每天开始的时候开这样的例会。总之,项目需要不断的优化来促进它的成功。

 

这是一个范式转换。我们不再使用庞大、固执的过程,而转向实践。过程退位变成实践的产物。过程将退至第二位。它存在,但已经不可见了。

 

为了实现这个转换,我们需要做一些创新——关于实践是如何收集的,如何表现的,以及如何应用的。我们Ivar Jacobson咨询公司,已经开发了两个组件(EssWorkEssUP)来实现这些创新。今天(2006125),我们将这两个组件捐给了Eclipse过程框架——Eclipse旗下的开源委员会。我们针对微软Visual Studio Team System 做类似的事。因此,公司能够在独立于平台及工具提供商的基础上应用相同的实践。而且,好消息就是这些都将是免费的! 


原创粉丝点击