For those we lost, We will not forget 09/11/2001 “Our God given unalienable rights are given to us all as individuals. They tell us what me may do for ourselves, and they are the embodiment of liberty. The so-called rights that government gives to some of us are parcelled out to select groups as classes. They tell us what one class of people may require another to do for them, and they are the very essence of slavery.”
— Perri Nelson, February 9, 2010

A bheil Gàidhlig agaibh?

 

Where's the spec?


Published Wed, Jan 21 2009 1:15 PM

I write software for a living. Among other things, I “foist [my] opinions on [my] fellow countrymen and countrywomen” as recreation. Writing blog posts is not at all like writing software. For one thing, my blog posts are entirely my own opinion, and the only thing(s) they have to do to “work” for me is to express that opinion well — that and be based upon a sound footing. For software to “work” it has to perform a specific task — correctly.

Since I write software for a living, it's only natural that someone where I work has to test that software. Oh, sure, as a software developer I have to test it myself, but there's a potential difference in the way that developers and “testers” do things. It is said that a developer will check that the software does what it's expected to do, while a tester will check that the software doesn't do what it's not expected to do. In test driven development, as much of the code as possible is tested, to make sure that the results are as expected for every logical operation that takes place.

The key word here is “expected.” When software does what's expected, it works. When it does the unexpected, it doesn't work. So, how do you know what's expected? After all, if you want to write bug free software that works, don't you need to know what the customer wants it to do?

So, how do you find out what the customer wants your software to do? Well, one approach is to interview the customer and gather their requirements, then write them down into a requirements document. Then you analyze the requirements, looking for conflicts or things that aren't technologically feasible and negotiate those requirements with the customer. Once you've come to an agreement on the requirements you are almost ready to begin.

In order to craft software that works, you have to understand the requirements. In order to test software you have to understand the requirements. If the software doesn't satisfy the requirements, then it doesn't “work.” Testers are expected to log bugs whenever the software fails to meet the agreed upon requirements.

Of course, just having the requirements isn't really enough to write quality software. Generally you also need a specification that explains how those requirements should be met. This requires analyzing the requirements, choosing the right technology and selecting the algorithms and objects that should be implemented to satisfy those requirements. The specification should be thoroughly reviewed to ensure that all of the requirements are covered by the proposed solution before a single line of code is written.

Software requirements evolve of course, and some sort of change management is required. New requirements must be negotiated with the customer as well as the team implementing the software. The earlier in the process changing requirements are recognized the better off everyone is, because it's a lot less expensive to change a system before it's implemented than afterward, and it's a lot less expensive to verify that the changes work and to plan for how to test them early rather than late.

Government works in a similar fashion. What do we want from our government? Aren't those the requirements that we the people, as customers of government have? How do we know whether our government works as intended, unless we know what we want from it? Simply put, “Where's the spec?”

I believe that the fundamental requirements document for our government is the Declaration of Independence. This document lays out very specifically what the founding fathers, the archetypical “customers” of American government required. Government is to secure our unalienable rights to life, liberty and the pursuit of happiness. Government is to derive its powers from the consent of the people being governed.  It is the job of government to effect the people's safety and happiness. The government established by the people needs to be stable and only altered for serious reasons, not light and transient causes. The Declaration also laid out a long list of things that government ought not to do, presenting a list of grievances against King George III.

Government should not prohibit the passages of laws that are of immediate and pressing importance. It should not prevent the passage of laws that are wholesome and for the public good. It ought not to intrude upon the workings of legislatures of local districts (i.e. the States), or make it impossible or difficult for them to operate. It ought not to dissolve the local governments that oppose its aims. It should not prevent the people from deciding who their representatives ought to be. It should not block the execution of the laws, or the selection of judges. These are just a few of the things that government is required not to do by our governments primary requirements document, the Declaration of Independence. There are many more.

As for the “spec,” we've had two of them. The first specification for our government, attempting to satisfy the requirements established in the Declaration of Independence was the Articles of Confederation. This was a good start, but it failed to meet a few of the primary requirements including effecting the people's safety. In fact it nearly failed even to meet it's own established goal of establishing a perpetual union between the States. Failing to meet the established requirements resulted in a second try at a specification for government — the Constitution for the United States of America.

Our ultimate specification for government, the Constitution meets all of the requirements established by the founders. It places strict limitations on what the federal government can and can't do. It establishes the relationships between the three branches of government, and establishes their duties and responsibilities, as well as the powers granted to them in order to fulfill those duties and responsibilities. It provides guarantees to the States and stability by providing a carefully thought out mechanism by which it can be changed (a change control process for you geeks). Finally, it also leaves the powers and responsibilities that are not explicitly granted to the federal government to the States and the people at large (that is, those powers and responsibilities that are not also explicitly prohibited to the States and people.

This then, is the standard by which we ought to measure whether government “works.” We don't measure the success of our government by how well wealth is redistributed by the system. We don't measure the success of our government by how well tyrants and dictators like us. We don't measure the success of our government by anything other than how it lives up to its stated purpose.

“We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness.--That to secure these rights, Governments are instituted among Men, deriving their just powers from the consent of the governed, --That whenever any Form of Government becomes destructive of these ends, it is the Right of the People to alter or to abolish it, and to institute new Government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their Safety and Happiness.”

That's the standard. The rules by which our government is to meet those standards are spelled out in the Constitution.

We the People of the United States, in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defence, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity, do ordain and establish this Constitution for the United States of America.

We've strayed a bit from those requirements, but we've never altered them in any fundamental way (well, perhaps the sixteenth and seventeenth amendments made some fundamental shifts, as well as supreme court interpretation of the fourteenth amendment's equal protection clause). If the people believe that for some reason the requirements have changed since 1776, then we need a new Revolution to alter or abolish the existing government. However, interpreting these documents as “living documents” open to the interpretation of the day, so that the words mean what we “want” them to mean rather than taking their plain meaning as they had when they were written is to say that there are no requirements and there is no specification.

In his inaugural speech, President Obama had this to say (via the Heritage Foundation's “Morning Bell”)…

Our economy is badly weakened, a consequence of greed and irresponsibility on the part of some, but also our collective failure to make hard choices and prepare the nation for a new age. ... The state of the economy calls for action, bold and swift, and we will act. ... The question we ask today is not whether our government is too big or too small, but whether it works.

If the question is whether our government works, shouldn't we answer by how well it continues to meet the founder's original requirements? And, if as President Obama seems to imply, the requirements aren't complete, then the path to fixing the bugs is to re-negotiate the requirements. If redistribution of wealth is the answer to our economic woes, then we need to amend our Constitution to allow it.

My thought though isn't that we need to alter our Constitution. I don't believe we need to redistribute the wealth earned by those people that have been exercising their unalienable rights to pursue happiness either. Rather, I think we need to re-examine our government programs and start removing the ones that don't comply with the specification, or that operate counter to the requirements document.


Comments (7) | Trackbacks (0)
View Perri Nelson's profile on LinkedIn I'm a proud friend of Israel! Are you? Republican National Committee