How agile are you? Software development in MES

Creating an appropriate level of flexibility that is still manageable in large-scale software development projects.

08/07/2012


Over the last few years, MES (manufacturing execution system) packages have appeared that provide the database framework and programming interfaces to collect, process, and provide standardized information links between the production floor below and the ERP (enterprise resource planning) business system above. Even so called “configurable” packages usually require extensive custom coding since the built-in functional capabilities are usually insufficient to handle all but the simplest manufacturing processes and integration to current installed information systems. The reality is that MES installation projects are just as much about custom software development as they are about installation and configuration. 

 

Traditional project management methods would require a very detailed project scope with exact details of the current system and proposed solution. It would be followed by functional and design specification documents that would provide additional details of the solution. Once all the proper documents have been developed and agreed upon by the integrator and customer, work would finally start on the actual code development. 

 

As you can imagine, there is a lot of work that needs to be completed before a single line of actual code will be developed. Not only is there lots of work, there are assumptions that are always made at the outset, but invariably prove false and change during the project. The first assumption is that all of the information about the current system and proposed solution is complete. The second assumption is that the current system will remain the same throughout the project. If you begin the project with a rigid mindset that these assumptions are absolute, you will be doomed from the start. Projects that do not allow for some flexibility fail in virtually every case.   

 

In conventional product software projects, there has been a growing movement away from waterfall- or cascade-type methodologies that begin by drawing up very detailed requirement and design documents before any coding is done. The problem with this approach is that much of that planning ends up being put aside, so the time spent compiling it was wasted. That is why many large companies and software development firms have moved more in the direction of “agile manifesto” based methodologies which focus on the immediate generation of finished code, with less documentation and built-in flexibility.  

 

With the understanding and trust of the customer, the more flexible and responsive elements of agile software development methodologies can be used to manage the development of most MES projects. Documentation mandated by the waterfall methodology and in many cases still required by the customer is not eliminated, but becomes more dynamic.

 

The most common of all the agile methods is scrum (borrowing a term from rugby). In the beginning of a scrum-based project, the list of functionality is loosely defined by the project statement and limited discovery phase. Over the course of the project, additional functionality, problems with existing code, enhancements, and so on, are added to the functional backlog. In the scrum method, the coding process is broken into smaller iterations called sprints, usually lasting a week or two. The determination of which work will be completed in each sprint is based on both priority and the ability to write the code completely and test it in that iteration. Once all the work has been selected for that sprint, the sprint will start. During the sprint, the daily activity of the development team is tracked during a daily meeting of the team and product owner. The purpose is to determine what has been done, what will be done, and if there are any impediments to progress. This process will be repeated over and over until the project is completed.

 

The major benefit of this process is flexibility. The combination of these small iterations of development and the dynamic functional backlog is what gives the scrum method of software development its built-in flexibility.  

 

As you can tell by now, the design and implementation of an MES system is not easy. It can almost be doomed to fail before it is started if not managed correctly. It is also important to point out that every project is different and will require more focus on certain aspects of the project management process and less on others. In order to manage projects effectively that will be more software developmental in nature, we must first determine what type of development environment is the most appropriate: the traditional waterfall method, flexible agile method, or most likely, somewhere in the middle. 

 

The process of choosing the appropriate category for each project is just as important as the overall management of the project. For example, if there is a customer requirement to track and document all project changes and steps, then strict waterfall would be a good approach. On the other hand, if a customer is rather vague in functional requirements and requires less documentation, then it may make more sense to develop a good working prototype and work from that point, with maximum flexibility in mind. The majority of projects will likely be somewhere in the middle. 

 

With the middle in mind, we have once again gone a step further and created four separate categories of project types. The four different categories are as follows:

 

1. Waterfall
2. Waterfall/agile
3. Agile/waterfall, and
4. Pure agile

 

Each of these categories has different project management documentation, level of customer interaction, deliverable schedules, etc. Once we determine the category that will best fit the proposed project, we will follow the project outline within that category and start to put together the actual project plan, project support documents, implementation plan, and so on. The right choice is the first step to a successful project.

 

This post was written by Tom Gill. Tom is an MES senior consultant, MESA C of C, and certified scrum master at MAVERICK Technologies, a leading system integrator providing industrial automation, operational support and control systems engineering services in the manufacturing and process industries. MAVERICK delivers expertise and consulting in a wide variety of areas including industrial automation controls, distributed control systems, manufacturing execution systems, operational strategy, and business process optimization. The company provides a full range of automation and controls services – ranging from PID controller tuning and HMI programming to serving as a main automation contractor. Additionally MAVERICK offers industrial and technical staffing services, placing on-site automation, instrumentation and controls engineers.



No comments
The Engineers' Choice Awards highlight some of the best new control, instrumentation and automation products as chosen by...
Each year, a panel of Control Engineering editors and industry expert judges select the System Integrator of the Year Award winners.
The Engineering Leaders Under 40 program identifies and gives recognition to young engineers who...
Learn how to increase device reliability in harsh environments and decrease unplanned system downtime.
This eGuide contains a series of articles and videos that considers theoretical and practical; immediate needs and a look into the future.
Learn how to create value with re-use; gain productivity with lean automation and connectivity, and optimize panel design and construction.
Go deep: Automation tackles offshore oil challenges; Ethernet advice; Wireless robotics; Product exclusives; Digital edition exclusives
Lost in the gray scale? How to get effective HMIs; Best practices: Integrate old and new wireless systems; Smart software, networks; Service provider certifications
Fixing PID: Part 2: Tweaking controller strategy; Machine safety networks; Salary survey and career advice; Smart I/O architecture; Product exclusives
The Ask Control Engineering blog covers all aspects of automation, including motors, drives, sensors, motion control, machine control, and embedded systems.
Look at the basics of industrial wireless technologies, wireless concepts, wireless standards, and wireless best practices with Daniel E. Capano of Diversified Technical Services Inc.
Join this ongoing discussion of machine guarding topics, including solutions assessments, regulatory compliance, gap analysis...
This is a blog from the trenches – written by engineers who are implementing and upgrading control systems every day across every industry.
IMS Research, recently acquired by IHS Inc., is a leading independent supplier of market research and consultancy to the global electronics industry.

Find and connect with the most suitable service provider for your unique application. Start searching the Global System Integrator Database Now!

Case Study Database

Case Study Database

Get more exposure for your case study by uploading it to the Control Engineering case study database, where end-users can identify relevant solutions and explore what the experts are doing to effectively implement a variety of technology and productivity related projects.

These case studies provide examples of how knowledgeable solution providers have used technology, processes and people to create effective and successful implementations in real-world situations. Case studies can be completed by filling out a simple online form where you can outline the project title, abstract, and full story in 1500 words or less; upload photos, videos and a logo.

Click here to visit the Case Study Database and upload your case study.