It recently came to my attention that confusion exists over the term “Agile” and how it relates to a Manufacturing Execution System or MES. I thought it would be helpful to provide some background on how this term can apply to either the deployment methodology or how the application is designed. I’ll then continue this discussion in a follow-up article on why you really need both. First, let’s talk about agile MES and how that is different than an agile deployment.
At first blush, these two concepts might appear to be quite similar. They really are quite different. Some software vendors appear to be (deliberately?) blurring the lines to overcome their own application’s shortcomings. Most would argue that an Agile deployment methodology is an accepted best practice. An agile Manufacturing Execution System (MES), however, is a big deal – it could be one of the most important breakthroughs of the decade for this category of software applications.
Waterfall versus Agile Product Development
If you go back 20 years, nearly all software was written using a waterfall strategy – a concept first introduced in 1970 by Dr. Winston W. Royce. This traditional, monolithic approach consisted of a sequential, non-iterative methodology. Essentially, it’s a framework in which software development proceeds sequentially through a series of phases. A good analogy is that the development process flows downwards like a waterfall through various stages.
The main benefit of a waterfall framework is that the staged development cycle enforces discipline: every phase has a defined start and endpoint, and progress can be conclusively identified (with milestones) by both vendor and client. The emphasis on requirements and design before writing a single line of code ensures minimal wastage of time and effort and reduces the risk of schedule slippage, or customer expectations not being met. The most prominent criticism revolves around the fact that very often, customers don’t really know what they want up-front. What they want emerges out of repeated two-way interactions over the course of the project.
The Waterfall development model traces its roots to the manufacturing and construction industries – highly structured physical environments where design changes became prohibitively expensive as you moved through the development process. Hence, there is a built-in “lockdown code and design” mentality that is baked into the model.
Agile takes a completely different approach. With this model, it is recognized that the world operates much more dynamically. Instead, it is based on an iterative development approach. Requirements and solutions evolve with greater collaboration under a much looser structure.
With this model, the biggest benefit is that the resulting application will be more closely aligned with what end-users want – an often-changing target. Applications can be developed faster, with an offset of fewer features to start. New capabilities, however, can be quickly added once a confirmed need is identified. As a result, user feedback is more relevant knowing change can occur quickly. This helps projects move through each stage at a faster pace. Done right, an agile product development team can operate with greater efficiency and less waste, translating into lower cost.
The shortcomings of an Agile model are primarily centered around scope creep. Given the iterative nature of an Agile model, it can be difficult to know when an Agile project is complete. Companies looking to take advantage of the Agile framework need to understand that a project with a fixed time and or cost does not mean it has a fixed scope. As a result, you may not get everything that you set out to do in the time you were expecting.
Agile MES Implementation
In the same way an application can be developed with either a waterfall or an agile approach, so too can these concepts be applied to the installation process of an application, once it has been written. The two concepts are virtually the same. An MES implementation project will typically start with gathering a comprehensive list of requirements and objectives, followed by identifying all impacted stakeholders and then assessing the impact of the changes that will occur once the new MES system has been installed.
Regardless of your deployment model, the initial program design, scope of work, and architecture elements will likely change. The farther along you are in the process that these changes are identified, the greater the length of a delay that will result. The common culprit: things change. Requirements are modified. New stakeholders get involved, and complexity continues to grow. Here is where the benefits of an Agile approach become quite pronounced and significant.
Monolithic versus Agile MES Applications
Similarly, Manufacturing Execution Systems can be viewed as having either a Monolithic or Agile software architecture.
Watch a recording of this webinar to learn more about how to start the process of retiring your older, monolithic MES.
Typical “big vendor” MES applications can be difficult to add new features or to expand capabilities. These new features must often have to wait until doing a new service pack or major product version upgrade. In some ways, this sounds a lot like a Waterfall development or implementation model, right?
An Agile MES application has an architecture that allows an implementation team (or those tasked with performing updates or future maintenance) to dynamically perform updates to capabilities quickly to the actual software itself – in addition to how it is deployed.
One example might be to modify a user interface and its connected functions within a live environment. This update could take place between user logins. Here, an agile architecture lets you manage, maintain, and upgrade an MES application to keep it current and relevant. The key benefit is considerably higher flexibility on what features are initially deployed, and what can be easily added over time.
In my next post, I’ll talk about how an Agile MES can exist, and the powerful combination that is possible when combining an Agile MES with an Agile deployment strategy.