lazy people hate crazy people
May. 3rd, 2005 10:39 amThis is the second part of my software bureaucracy investigation.
In software bureaucracy, there is no place for MVC. Every other class is "manager something" - PermissionManager, PropertyManager, ConfigurationManager, WebManager, AccessManager, ReportManager. Other, humble second sort classes, provide text output based on input - you pass them a map, they'll give you a table with two columns (they use to know what the titles of the columns are: the titles are hard-coded). These simple, stupid worker classes are mercylessly thrown out once they are not needed. But Managers survive all the changes - they just grow, get more functions.
Boz Elloy, a dumb VP of something at Borland, once told the crowd of bewildered developers: "you are numbers to me".
Instead of data model, data are represented in the software by their serial numbers, aka guids ("your identification please"), aka primary keys. The rest is decided by managers. The manager knows where to get an object description for a given primary key; the manager implements all the object's functionality.
So, in a bureaucratic software product data handles are juggled between local Dogberts and Catberts. I'll give you one more example.
A report servlet prints a PDF file, and at the bottom it contains a copyright notice. There is a bug filed that copyright is from year 2003 (in addition to it containing a mysterious character adjacent to © character). It turned out that the whole copyright notice is sent to the servlet from an applet, as a part of xml-formatted request. While the xml claims to be in ISO8859-1, it is actually in UTF-8, and hence the mysterious character. But where does the applet get the copyright notice from? It is hard-coded in the applet.
To fix this situation, it was suggested to pass the copyright notice to the applet as a parameter. That is, to generate, from a servlet, an html file which would contain that copyright notice to be passed to the applet, to be passed back to the server to be printed in PDF. What was that unique Russian word... "vizirovanie"!
In software bureaucracy, there is no place for MVC. Every other class is "manager something" - PermissionManager, PropertyManager, ConfigurationManager, WebManager, AccessManager, ReportManager. Other, humble second sort classes, provide text output based on input - you pass them a map, they'll give you a table with two columns (they use to know what the titles of the columns are: the titles are hard-coded). These simple, stupid worker classes are mercylessly thrown out once they are not needed. But Managers survive all the changes - they just grow, get more functions.
Boz Elloy, a dumb VP of something at Borland, once told the crowd of bewildered developers: "you are numbers to me".
Instead of data model, data are represented in the software by their serial numbers, aka guids ("your identification please"), aka primary keys. The rest is decided by managers. The manager knows where to get an object description for a given primary key; the manager implements all the object's functionality.
So, in a bureaucratic software product data handles are juggled between local Dogberts and Catberts. I'll give you one more example.
A report servlet prints a PDF file, and at the bottom it contains a copyright notice. There is a bug filed that copyright is from year 2003 (in addition to it containing a mysterious character adjacent to © character). It turned out that the whole copyright notice is sent to the servlet from an applet, as a part of xml-formatted request. While the xml claims to be in ISO8859-1, it is actually in UTF-8, and hence the mysterious character. But where does the applet get the copyright notice from? It is hard-coded in the applet.
To fix this situation, it was suggested to pass the copyright notice to the applet as a parameter. That is, to generate, from a servlet, an html file which would contain that copyright notice to be passed to the applet, to be passed back to the server to be printed in PDF. What was that unique Russian word... "vizirovanie"!