你有多敏捷?MES中的软件开发

创建在大型软件开发项目中仍然可管理的适当级别的灵活性。

通过汤姆·吉尔 2012年8月7日

在过去几年中,MES(制造执行系统)包已经出现,提供了数据库框架和编程接口来收集、处理和提供下面的生产车间和上面的ERP(企业资源规划)业务系统之间的标准化信息链接。即使是所谓的“可配置”包通常也需要大量的自定义编码,因为内置的功能能力通常不足以处理所有的问题,除了最简单的制造过程和与当前安装的信息系统集成之外。实际情况是,MES安装项目与自定义软件开发有关,与安装和配置有关。

传统的项目管理方法需要非常详细的项目范围,包括当前系统和建议解决方案的精确细节。接下来是功能和设计规范文档,提供解决方案的额外细节。一旦所有适当的文档都被开发出来并得到集成商和客户的同意,实际的代码开发工作将最终开始。

正如您可以想象的,在开发一行实际代码之前,需要完成大量的工作。不仅有很多工作要做,而且总是在一开始就做出假设,但总是被证明是错误的,并在项目过程中发生变化。第一个假设是关于当前系统和提议的解决方案的所有信息都是完整的。第二个假设是当前系统将在整个项目中保持不变。如果你一开始就认为这些假设都是绝对的,那么你从一开始就注定要失败。不考虑灵活性的项目几乎在任何情况下都会失败。

在传统的产品软件项目中,越来越多的人开始远离瀑布式或级联式方法,即在任何编码完成之前先起草非常详细的需求和设计文档。这种方法的问题是,大部分计划最终都被搁置一边,所以花在编译上的时间被浪费了。这就是为什么许多大公司和软件开发公司更多地转向基于“敏捷宣言”的方法,这种方法专注于立即生成完成的代码,较少的文档和内置的灵活性。

有了客户的理解和信任,敏捷软件开发方法中更灵活和响应更快的元素可以用于管理大多数MES项目的开发。瀑布式方法要求的文档(在许多情况下客户仍然需要)并没有被消除,而是变得更加动态。

所有敏捷方法中最常见的是scrum(借用橄榄球术语)。在基于scrum的项目的开始阶段,功能列表由项目声明和有限的发现阶段松散地定义。在项目的过程中,附加的功能、现有代码的问题、增强等等都被添加到功能backlog中。在scrum方法中,编码过程被分解成更小的迭代,称为sprint,通常持续一到两周。在每个sprint中完成哪些工作的决定是基于优先级和在该迭代中完整地编写代码并测试它的能力。一旦所有的工作都为sprint选中,sprint就开始了。在sprint期间,开发团队的日常活动在团队和产品负责人的每日会议中被跟踪。目的是确定已经做了什么,将要做什么,以及是否有任何阻碍进展的障碍。这个过程将一遍又一遍地重复,直到项目完成。

这个过程的主要好处是灵活性。这些小的开发迭代和动态功能backlog的结合,使软件开发的scrum方法具有内置的灵活性。

正如您现在所知道的,MES系统的设计和实现并不容易。如果管理不当,它在开始之前几乎就注定要失败。同样重要的是要指出,每个项目都是不同的,需要更多地关注项目管理过程的某些方面,而不是其他方面。为了有效地管理本质上更偏向于软件开发的项目,我们必须首先确定哪种类型的开发环境是最合适的:传统的瀑布方法、灵活的敏捷方法,或者最有可能的是介于两者之间。

为每个项目选择适当类别的过程与项目的整体管理一样重要。例如,如果客户要求跟踪和记录所有的项目变更和步骤,那么严格的瀑布将是一个很好的方法。另一方面,如果客户在功能需求方面相当模糊,并且需要较少的文档,那么开发一个良好的工作原型并从那一点开始工作可能更有意义,并考虑到最大的灵活性。大多数项目可能处于两者之间。

考虑到中间部分,我们再次更进一步,创建了四个独立的项目类型类别。四个不同的类别如下:

1.瀑布
2.瀑布/敏捷
3.敏捷/瀑布,和
4.纯粹的敏捷

这些类别中的每一个都有不同的项目管理文档、客户交互的级别、可交付的时间表等等。一旦我们确定了最适合所提议的项目的类别,我们将遵循该类别中的项目大纲,并开始将实际的项目计划、项目支持文档、实施计划等放在一起。正确的选择是项目成功的第一步。

这篇文章是汤姆·吉尔写的。Tom是MES高级顾问,MESA C of C,以及MAVERICK Technologies的认证scrum管理员,MAVERICK Technologies是一家领先的系统集成商,在制造和过程行业提供工业自动化、运营支持和控制系统工程服务。MAVERICK在工业自动化控制、分布式控制系统、制造执行系统、运营战略和业务流程优化等广泛领域提供专业知识和咨询。该公司提供全方位的自动化和控制服务——从PID控制器整定和HMI编程到作为主要自动化承包商。此外,MAVERICK还提供工业和技术人员配备服务,提供现场自动化、仪器仪表和控制工程师。