vendredi 15 août 2014

About software packages

In my carreer, lots of projects have been involeved into were about software packages integrations. What companies expect in using software package is to go live sooner and spend less money in development and maintenance.

Indeed, software packages can help to achieve that. At one condition though:

Adapt your process rather than the package

Consider that a software package cannot be customized at all. You have to take it as it is and adapt your business processes. If you decide to invest into an ERP or CRM, consider to acquire a strong knowledge about the end users activities to choose the package which fit their needs the most closely.

Rather often, clients want to adapt the package to their needs and demand lots of specific development to software vendor. Vendor sales staff will push the demand to technical teams as they want to charge professional services. By experience it's a bad idea for these reasons:

  • it denatures the products. It changes the features that has been designed by your vendor and validated by the other clients;
  • teams that performs modifications may not be a part of the core technical team. It can lead to bad quality and regressions, due to a lack of knowledge;
  • even if they commit to do so, merging your specific release of the package and the trunk can be complex for your vendor. You might not be able to benefit from software evolution as easily as without modifications.

I'm experiencing it nowadays with:

  • businness information is injected directly in SOAP raw XML response. When I access the web service, I have to dig into XML requests and responses to add and retrieve specific information. That's really inelegant and time consuming.
  • regression bugs rate is high. Features are not well integrated with the core and not well tested (when teted)
  • too many responsibilities are delegated to the software package, making its API harder and harder to use.

To conclude consider using software package to save time and mony for:

  • fields where you do not make the difference with your competition.
  • activities (ERP, CRM) where processes can be adapted wothout much effort.

And don't demand to much, unless you'd get an complex, unmaintainable and non fully operational ball of mud.