Author: Steven Neiland
Published:

Warning: This blog entry was written two or more years ago. Therefore, it may contain broken links, out-dated or misleading content, or information that is just plain wrong. Please read on with caution.

Today I want to take a moment away from Coldfusion and programming to discuss the sad state of our country. I am phrasing this in terms of a computer program as that is how I best understand how things have grown to where we are today.

I dont expect people to agree with me, but I think each and every one of us have a moral duty to at least acknowledge what is happening in the world outside of our computers and speak our minds about what we see.

Political Systems Are Like Software Projects

I believe that a democratic system is in many ways very similar to a computer programme. Like a computer programme a democracy (or any political system for that matter) starts off as a small well defined system. It has a clear set of inputs and desired outputs. For this reason when something goes wrong it is very easy to detect, diagnose and fix.

Just like a computer programme grows over time both in complexity and capability to handle new inputs and permit new functions, a democracy by necessity also grows both in complexity and capability. And therein lies the danger.

As a comparison I want to compare computer programmes to political system based on 4 keys points.

  1. Speed of development/growth
  2. User Acceptance and Input
  3. Growth vs Rebuilding
  4. Acknowledging The Point Of Reset

System Growth Speed

As anybody who has used commercial software for several years will attest, a program can develop at three basic speeds (sometimes changing speed mid way).

  1. Slow: The programme develops without a clear longterm/realistic goal or with insufficient resources to develop. These types of program tend to stagnate and be overtaken by better alternatives if change comes too slowly.
  2. Moderate: The programme develops with a clear realistic goal, sticks to its core features, tackles bugs first and then adds new features. These programmes tend to develop into a well rounded solid product that last a very long time (even if they have a few warts).
  3. Very Fast The programme starts with a clear goal but grows rapidly trying to add all the bells and whistles without taking into account user desires before becoming tackling stability. I term these programmes shooting stars, as they rise quickly, look great, and then fizzle out to nothing. (As any good programmer will tell you, the number of lines of code is a measure of how bloated a system is, not how powerful it is)

In comparison the current world political systems can be broadly broken down into these three speed groups as follows.

  1. Autocratic/Communist: I say these lack a realistic longterm goal as they actually require the will of the people to remain stagnant. The very nature of the human spirit is to want equality and freedom (as freed0m = change) which is in contradiction to an Autocratic system.
  2. Democracy: True democracy sticks to its core role. Its reflects the will of the people instead of trying to dictate to its people, by not getting too complex or taking on too many functions while still adapting to current events.
  3. Failed Democracy: A shooting star democracy starts out with lofty goals. Unfortunately it tries to grow too quickly, takes on more functions than it should and stops listening to its users ie the people.

Now as any programmer knows, a product can swing between these three speeds over its lifetime. The trick is trying to return to a balanced system before it stagnates or burns out.

User Acceptance and Input

This next component actually breaks down into 2 sub components that make up the whole.

User Acceptance

You can develop the greatest programme in the world, but if the end user does not like it then it will fail. This is not only a measure of how good the system actually is at completing its functions, but also how well the system is explained/presented (ie training & marketing).

In the same way, a political system must be accepted by the people as being fair and just. This again is a measure of reality combined with effective PR. A political system/policy can be great but if it is not presented correctly will flop, or conversly a policy can be terrible but have great PR and be tried out for a little while only to still flop. It is the balance of the two that makes a political system/policy work long term.

User Interaction

Even if you do get users to accept a program, you must also get them actively engaging with it and by extension the developers of it. A system cannot grow effectively if its users dont use it as feedback does not come back to the developers on how it should grow. This can push a program to either not develop at all (stagnate) or develop quickly by adding new and superflous features as the developers work without guidance (bloat).

In the same way that users not engaging with a program (and by extension the developers) can lead to stagnation or bloat, the very same effect happens to a political system. We only have to look at the massively bloated US tax code to see what happens when the people become apathetic when it comes to engaging with politicians. The system is now massively bloated and continues to get worse each day.

Growth vs Rebuilding

There is a tendency for programmers to always want to redevelop existing systems. This comes from our natural tendency to want to improve things and to some extent show off our skills.

We must however temper our enthusiasim with reality. Many mature systems are perfectly adequit for their purpose. These system should be respected for all the work that has gone into them and simply (carefully) tweaked over time.

Just like programmers want to rewrite large sections of code, so do many (alternative & mainstream) political commentators call for a radical change of government policy for the sake of wanting to start from scratch. This is simply a waste of all the work that has gone into building the current system. It would be better to carefully consider each function of a political system and slowly improve it over time to stay relevent while meeting the needs of the people. Politics should be less about personality and more about policy.

Acknowledging The Point Of Reset

Having taken the above warnings about not restarting from scratch for the sake of it, it is important to recognise that there can come a time when a system has grown so bloated, so damaged, so unresponsive that it must be replaced.

Be it a political system, a software program or a physical object such as a car, sometimes something is so damaged that it is not worth the effort fixing it. Instead it would be better to start from scratch.

That is not to say that you throw out the key principles or goals of what you are replacing. You simply get back to the fundamentals. For example you dont try to reinvent the car to replace one you just wrote off, you simply get a new car that does what the old one did before it got damaged. Or to go back to the program metaphore, you dont try to reinvent how a word processor works, you simply get rid of the bloat and concentrate on what made it work the first time.

This is where I believe politics in the US is currently at. The electorate was complacent for too long and a horribly bloated system developed which now ignores our needs while catering to the few inputs politicians did have...the lobbyists.

Americans must face up to the reality that government no longer serves the people and has not for a long time. Yes there are still some good parts, but the whole is now so damaged that it is actively destroying itself and taking the American people down with it. We need to call time on this broken political machine and reload the source code of the constitution of this great country in order to rebuild it according to the original vision of its founding fathers.

Failure to do this can and will have only once outcome.

What Do You Think?

Reader Comments

Post a Comment

Comment Etiquette:

  • Please keep comments on-topic.
  • Please do not post unrelated questions or large chunks of code.
  • Please do not engage in flaming/abusive behaviour.
  • Comments that contain or appear to be advertisments, will not be published.
  • Comments that appear to be created for the purpose of linkbuilding to commercial sites will be removed.

We are all adults here so play nice.

*
*



Archives Blog Listing

Tag Listing

Learn CF In A Week

Treehouse

 
Fork me on GitHub