Industrial software systems are at the heart of most manufacturing processes. As a result, effective systems demand 4 core attributes:
- Seamless Integration
Designing software to deliver these attributes to a manufacturing customer relies on a proven and realistic development approach:
Proof of Concept/Design
The first step is gathering together the information and facts to compile customer needs and desires in order to identify practical solutions. This can include guiding the client away from impractical aspects and advising of the advantages of sticking to good practice. But it is important to be flexible depending on the real-world starting point.
Make the Design Real
Different clients present different starting points. Requirements can be for a greenfield site while sometimes it is upgrades/additions to existing plant. In either case, it is likely that the new software will need to integrate/communicate with existing systems either locally, or remotely, or both.
A flexible approach, acknowledging and addressing these practicalities is important in finding effective solutions.
Enhancing existing plant
Many software projects include upgrades to existing, older equipment, “Legacy Systems”.
This work often includes:
- Extending existing software – possibly upgrading legacy systems
- Adding new system components – this often involves upgrading and enhancing older software operating in the existing systems, together with writing new software for equipment.
As well as developing existing software to meet the new requirements, an effective design should also address:
The new software should preferably build on a coherent platform using a consistent design approach and common data structures to ensure the end result is a single, unified system rather than two (or more) independent systems that talk to one another.
Most new software development must integrate into existing systems and working practices. It is therefore important that new software fits into existing surrounding equipment on client’s site in terms of look and feel yet is up to date and meeting the defined performance specification.
- Future Proofing
Part of the value of coherence and consistency is future proofing. Although it is not possible to know for certain what continuing innovation in industrial systems may deliver, a coherent and consistent system will be better placed to benefit from new developments in the future.
Having existing systems that are well maintained and documented is always beneficial when starting any software upgrade work. However, even when an existing system is poorly maintained/documented it is important that delivery of a new/upgraded system includes comprehensive, consistent and up to date documentation.
The Real World
Financial constraints regularly bring realism to software design!
An issue with software is that there is often an ‘ideal’ solution but this normally doesn’t fit with the real world. Key to developing real solutions are:
- Pragmatic approach – a flexibility to embrace practicality in developing a workable solution
- Best to present options – there is unlikely to be one ideal solution, although all options must deliver the project objectives
- Don’t forget access – A very practical consideration that can be overlooked is on-site access and systems accessibility to allow for project implementation, future updates and developments.
Recognising the difference between software elements that are nice to have and those that are essential is an important process. In addition, the ability to work with what is available and a flexible approach, working actively with the client, will help to identify and deliver cost-effective solutions that are deliverable in the ‘real world’.
Some key considerations that are often overlooked by less experienced developers include:
- Physical Access – for both installation and maintenance of systems
- Ability to minimise impact of day to day plant operation
- Build in future proofing
- Making the most of existing systems and equipment – balance cost short-term cost-effectiveness with long-term future proofing and sustainability
- Look to incorporate existing code where helpful/practical
- Documentation: comprehensive documentation for the complete system
Sometimes existing systems may have limited or no documentation. Hence, it may be necessary/appropriate to create (or recreate) relevant documentation for existing and legacy systems.
System Testing and Validation
Testing and system validation are essential for any new software system. This is particularly important where an installation is an add-on to an existing system, it is vital to test and validate that add-on before attempting integration.
As with so many areas of supplier:customer relationships, flexibility is key. In working with manufacturers, you must not forget the 4 Ps:
In this way, process software development is similar to many other system projects. A joined-up and intelligent approach delivers the best result.