Steven was working on a temp contract for a government contractor, developing extensions to an ERP system. That ERP system was developed by whatever warm bodies happened to be handy, which meant the last "tech lead" was a junior developer who had no supervision, and before that it was a temp who was only budgeted to spend 2 hours a week on that project.
This meant that it was a great deal of spaghetti code, mashed together with a lot of special-case logic, and attempts to have some sort of organization even if that organization made no sense. Which is why, for example, all of the global constants for the application were required to be in a class Constants
.
Of course, when you put a big pile of otherwise unrelated things in one place, you get some surprising results. Like this:
foreach (PurchaseOrder po in poList)
{
if (String.IsNullOrEmpty(po.PoNumber))
{
Constants.NEW_COUNT++;
CreatePoInOtherSystem(po);
}
}
Yes, every time this system passes a purchase order off to another system for processing, the "constant" NEW_COUNT
gets incremented. And no, this wasn't the only variable "constant", because before long, the Constants
class became the "pile of static variables" class.