This one is about plug-ins. Last week we had enormous amount of issues with our production system. It is very popular trading platform which allows to install plug-ins into it. So our biggest customer has this system installed with about 7 plug-ins - and it crashed last week more that 15 times. The issue is hardly reproducible, and you need to put all plug-ins and high load on the system, in order to be able to repeat it. Worst thing is that it's impossible to debug it or identify where lock, crash or contention is happening. The system just freezes - nothing special in logs. That is - failure in one the plug-in is causing an issue in the whole system.
So after some straight forward analyze you may come to the conclusion that plug-ins is evil, and decision whether they should be implemented - is always no. Well - I think there are some exceptions.
First of all - Open source. Plug-ins are ok in freeware and open source, because no one is expecting prefect performance from freeware and all the more so from freeware with 10 additional plug-ins. Also plug-able architecture encourage developers to participate in the project more. And is it a point of open source movement?
For proprietary software it is not that clear. Trading system which I was talking about in the start of the post has no underlying SQL database. It's data is stored in .dat file and it’s impossible to modify or even read them in usual way. So plug-ins were only way provided by vendor to use data of that system (and what the crappy way it is!). Still, the system is one leading Forex platform by now. So that decision to have plug-ins might be the wrong one but overall solution was good enough. Here is my idea .When the market is young, and you physically can't produce all necessary features (in reasonable amount of time) that customers want to get - you might consider to let them to do it (by plug-ins). But of course you need to keep in mind that 10 or 20 plug-ins installed by one of your customer could kill your system, and probably it's you who will be blamed for it!
PS Last week I completely migrate from Mozilla Firefox to Google Chrome. Seems like Mozilla's memory consumption became unpredictable, and I tend to think that their plug-ins are something to do this that.
It's interesting that variety of plug-ins in Firefox was that thing which persuade me to switch from IE to Firefox 4 years or something ago. And now my top priority is stability and performance.
PPS My team is writing a lot of unit and integration tests, but just one erroneous plug-in with out test could ruin our quality-aimed approach.
No comments:
Post a Comment