<?xml version="1.0" encoding="windows-1252"?>
<node id="986847" title="Re: Perl Elitist Code vs Functional Code" created="2012-08-10 22:01:12" updated="2012-08-10 22:01:12">
<type id="11">
note</type>
<author id="176576">
eyepopslikeamosquito</author>
<data>
<field name="doctext">
&lt;P&gt;
&lt;blockquote&gt;
&lt;I&gt;
You wrote it in 10 minutes its under 50 lines and it performs the function you wanted it to do.
&lt;/I&gt;
&lt;/blockquote&gt;
Your program is successful, so its users ask for enhancements
and new features, so you add another 50 lines, and another, and
another ... your little program grows to be so successful that it becomes
critical to your company ... and then you leave the company.
&lt;/P&gt;

&lt;P&gt;
For small throw-away scripts, written by and for a single person,
your approach is fine. But it doesn't scale, especially for
production software maintained by teams.
&lt;/P&gt;

&lt;P&gt;
Moreover, in my experience, small throw-away scripts, especially
successful ones, have a way of growing into thousands and
thousands of lines of critical functionality.
This sort of code tends to be fragile and difficult to maintain.
Yet since the code "works", getting approval to improve its design
and maintainability can be problematic (where is the ROI in rewriting
a working system? changing the code risks breaking critical functionality,
especially likely without unit tests).
This topic is touched on in [id://668481].
&lt;/P&gt;
</field>
<field name="root_node">
986846</field>
<field name="parent_node">
986846</field>
</data>
</node>
