I’d like to discuss a topic which is probably the most “non technological” topic I have ever discussed in this blog. This is what we refer to as ‘best practices’. This exists in PLM, ERP, and many other business and enterprise systems. But I’d like to discuss what is behind this topic, particularly the business and technological drivers that will change the “out-of-the-box” PLM system.
So, what are benefits to have a plain, vanilla, out-of-the-box PLM implementation?
1. No need to have expensive implementation services; you just need to install it
2. You don’t need to define processes; you just need to map your organization roles to those that already exist in the system
3. You future PLM version will be easily implemented on top of the existing one
I’m sure, in the beginning, your first impulse is to opt for “out of the box”. But I suggest that you look at the factors that prevent you from doing so realistically:
1. You need to integrate data with existing systems. As a result, you need to enhance your data model
2. You are running a system inside of an organization with all the related business systems – so you need to adapt to the existing business processes (ERP, CRM etc.)
3. You are working for OEM/Suppliers, so you need to justify your processes with suppliers
Therefore, how can you handle system deployment in order to prevent future hassles? Here’s how:
1. Data Models: reuse what you have with out-of-the-box and add what you need. Try to avoid changes in existing models.
2. Business Processes: use as much as possible in a declarative way to define processes. For any additional implementation separate as much as possible between process definition and addition customization you will make using programming language.
3. Integrations: Set up an integration between systems as part of the business process. Try to avoid batch data transfers. Keep logic separate.
In short, here’s my conclusion: – (1) You cannot implement totally out-of-the box; (2) You need to minimize amount of customization you will do; (3) You need to apply tools and technology that will minimize the cost and time for future migration.
I’d like to figure out what tools and technologies would be helpful to optimize the cost of your implementation:
1. Use declarative tools as much as possible as well as tools provided by your vendor (for customization, development scripting etc.)
2. Use standard-based customization if possible (i.e. BPMN for process management and workflow)
3. Use low cost customization and development tools for easy implementation. Your services will cost less and in the future it will be easy to find suppliers for next customization.
To sum up, these are basic, if not obvious principles. I’d like to hear whether or not you think that they are applicable, and in which instances.