|Think about Loose Coupling|
Production Environments and "Foreign" Codeby Tanalis (Curate)
|on Mar 12, 2003 at 14:20 UTC||Need Help??|
A couple of things have come up today at work that've gotten me thinking about the pros (and cons) of using other people's code (in this case, modules) in a production environment.
I work for a Very Large Organisation, and, as such, we have some fairly strict (and I presume fairly standard) rules about what can, and can't, enter our production environment. If something hasn't undergone an extensive testing and parallel run, it can't be implemented. This is, in my mind, sensible - if things break, people get upset, and we all get fired unless it can be quickly fixed.
Now, we're in the early stages of implementing a number of new systems that output their data in XML. I'm looking into the options we have of reading this data, and I'd very much like to use a couple of CPAN modules rather than having to roll my own code to handle the XML. This is (for us) a contravertial subject - we have almost a "no external modules" policy here, and are basically restricted to the "core" Perl modules and DBI.
I can't help but think it's a little bizarre, not to say financially probably a bad idea, to have programmers sit and essentially reinvent the wheel, where implementation of a module and extensive testing could, and probably would, be more efficient use of time.
I guess I have two questions that I'm interested to hear thoughts about ... firstly, how standard is this sort of rule across the industry? I'm in my first (real) coding position, and I guess I'm interested to find out how other shops work with respect to this sort of thing.
Secondly, have people had problems using (mature) CPAN modules to carry out essential tasks within production code? The scripts for the area I work in cannot afford to "lose"/throw out data, and while extensive testing can help to prevent this, it's still very difficult to pick up one missing row in a couple of hundred thousand.
I think I can see the argument from both sides - it's a great safety net (for both the company and colleagues) to have someone local to talk to when things go wrong - but I can also see (from my own PoV) that it's very frustrating to have a pre-written solution, or partial solution, available, but being unable to make use of it.
Any thoughts or comments are welcome.