Thursday, April 9, 2009

Laws as Software of our Nation

How I view the government and laws based on my life's experience as a software tester and an analogy of laws as software:

The basic premise:
Computers answer questions by applying a set of logical rules to an input and calculating the appropriate output or result based on the rule set as currently defined in the software. Often the software takes into consideration the 'state' of the object or the 'state' of the system and bases some of its rules upon this state. Software applications run on top of an operating system which runs on top of hardware and talks to the hardware with a basic input and output system or BIOS.

Our nation runs on Laws. There are laws that constitute our government's basic structure (national and state constitution) which I view as our operating system.

The people of our nation are the hardware. The operating system uses the hardware to determine an output (a jury, a judge, a legislature, etc.) and communicates ideas through them by following the basic operations rules defined within the system. Roberts rules is one example of a BIOS level description of operations allowed within the system. When someone is accused of a crime (a violation of some rule within the system) the information is processed by using a judge and jury to temporarily store the facts of the case in memory and determine an output based on the rule set and the state of the person and the system and to take these operations by following the pre-defined procedures of the courtroom which are based on Robert's rules of order.

If you agree with the above analogy then keep reading.

In software development companies there are various stages of maturity.

A new company may have only a developer as a sole proprietor. The developer's invention or prototype may solve a single problem very well and most of the time is focused on solving a small number of related problems. Often the software starts with a goal or a problem statement in mind and the developer writes code to satisfy the goal or solve the problem. Once they verified that the "happy path" is solved, the software has met its goal and the software is presented to its market.

As software and companies mature they are often asked to solve more and more problems often related tangentially to the original set of problems. As the system gains "weight" or "inertia" they may discover that the solution to one set of problems negatively impacts another prior solution and has unintended consequences. It is at this stage that adolescent software organizations seek to employ "testers" or "software QA engineers".

(readers note: I am a software QA guy so this is where my perspective is applied to our nations laws and our system for creating them etc.)

If you are a software tester and understand the SQA lifecycle you can skip this next section where I define it for those not in our profession:


A software tester (or QA engineer, sometimes also called an analyst) is someone who analyzes and measures a system by conducting experiments, similar to how a scientist conducts experiments and collects data to either prove or disprove a theory. The theory(ies) that the tester is trying to validate stem from the requirements of the system which at some point are based on a goal or problem statement of the system's customer. The system under test is a solution that was created with the goal in mind (the code presented by the developer). If the code passes all of the tests designed by the tester (or if it doesn't pass, but the team determines that the items which failed are an acceptable risk) then the team signs off on the software solution and it is released to its customers as a "new version" of the software.

Most times when a new version software is released, it contains additional features or modifications to the previous version's features. If the tester was involved in previous releases of the software, it is likely that their test plan for the next version will include what we refer to as "regression tests". Regression tests are designed to ensure that any changes to the software don't have a negative impact on previous goals or solutions; that the software doesn't appear to "go backwards" in functionality or "regress" to a less-optimal state; that it doesn't re-introduce problems that the team thought were already solved in previous versions. Any tester worth their salt (and given enough time) will conduct extensive regression tests to verify that future versions of the software don't "piss off" a large group of the software's current user base due to previously solved problems creeping back in, every version of software they release.

Testing takes time. Time is a cost. Not testing has a risk.

Developers are incredibly smart (usually). They have good intentions (usually).

The more solutions contained in a single program, the more likely it is that the program's rules are complex. The better a program handles edge cases (outliers), the more "customized" it's rule set, and the more lines of code exist.

Keeping the rules of a program in your head while writing new rules for the program is difficult, and when the program is sufficiently large, keeping all the existing rules in mind while creating new ones becomes impossible for even the most brilliant humans (perhaps an autistic developer could do this but I've never met one).

Developers don't (usually) intend to create bugs (defects) in software. They are human. When young organizations are bitten for the first time (not just nibbled), is when they start to consider evolving and employing the skills of a tester to help them exercise the existing rules with various scenarios to ensure that:
1. The proposed solution actually solves the problem as intended (the goal is met)
2. Any related pre-existing rules still function and handle things in a manner that is still intended.
3. Nothing "bad" happens (or if it does, it's not so horrendous that users would switch to another product)

If a tester finds a defect - an unintended consequence to a series of events - they usually inform the team by way of a defect report as to the actions taken, the result expected, and the result that actually occurred. The team triages and decides the severity and prioritizes the defect against the other tasks remaining to be completed.

Testing and defect discovery can happen early (while the ideas of solving the problem are still being discussed and formulated) or late (after a solution has already been created).

If defects are found early, all that is required is for the team to change the way they think about the problem and create a better solution.

If the defect is found late (after code is written) it is more costly to fix. Developers have spent time creating code, if that code is thrown away and replaced, all of that time is lost. If the defect is deep, then any logical structures that were based on the underlying structure of rules found to be defective may also require changes. Therefore, the later in a product's lifetime that the defect is found, the more likely that other structures have been created which depend upon the defective structure, and the more likely that "fixing" THAT defect means "fixing" many defects (and subsequent regression testing of more features).



Now for the analogy:

The Constitution is our operating system.
Robert's Rules is our BIOS.
The people are our hardware.
The legislatures (state and national) "congress" are our developers.
The laws they create are the software product (or application) which runs within the operating system by using the hardware.
The executive branch (including police) are the error trapping system, the "Catch" part of a "Try Catch block".
The Judicial system is the "exception handler" and the test team.

- More thoughts on this soon, I need to get some work done -

Tuesday, January 13, 2009

Call-sign... Ken "Q-Tip" Mizell... ?

Background:
This year I got probably the coolest Christmas present ever: a chance to be a fighter pilot for 2 days:
http://www.fightercombat.com/products/2_Day_Combination_Adventure_Package-8-1.html
Before I schedule my adventure, I must tell them what my "Call-Sign" will be.
The rules for this are simple:
1. You don't pick your call-sign, your buddies pick one for you
2. You won't like it.
3. It will make fun of you, your name, some prominent physical feature, or something stupid you have done...

example callsigns with their reasons:
www.f-16.net/callsigns.html
SO... with that said here's the story behind the current forerunner in the Call-Sign debate...

Ken “Q-Tip” Mizell

In the search for a call-sign for my fighter pilot experience… my family thinks I'm Ken "Q-Tip" Mizell
… so.. there was this incident... when I was 19...
I was home on a Sunday afternoon at my parents’ house, with my little sister Amy.

I was in the bathroom getting ready and cleaning my ears with a q-tip, when she comes in and says "you shouldn’t do that. You should never stick something smaller than your finger in your ear..."

Since I’m a smartass and ‘obviously smart enough to know how to clean my ears’… of course I'm like, "yeah like I'm really gonna poke my eardrum out, Yeah right... " I placed the Q tip in my right ear and took my flattened hand away from my face... then made a slapping motion to the side of my face (while looking at her in the mirror - and planning on having the Q-Tip go between my thumb and my fingers but making her see in the mirror the near miss) for about 3 or four nanoseconds I thought “This is gonna be hilarious, and will totally freak my sister out…”

oops…

thumb hit the end of the Q-Tip

“OUCH!”

I started shaking my head sideways, the Q-Tip was still stuck in there. I pulled it out and it had this bloody pink and white chunk on it, and I said, "Oh My God - is that my brains?!"

No, it was just earwax, but it freaked me the F___K out.

Now my sister is laughing and astonished at me, as I’m bleeding from my ear and it sounds like a freight train is blowing the loudest whistle ever (my auditory nerve was exposed). I couldn’t hear anything, it hurt.

My little sister wasn’t driving age yet, and no one was home. So we go to the neighbors house, and have them drive me to the ER.

I sat there on a bed in the ER. There was just a bunch of curtains between rows of beds, so I was looking around and I saw a Bellevue High football Jersey on a guy who's arm looks like a W.

I was trying to see if I know the guy since that was my school.

He was about 20 feet away. Then I heard someone whispering "ken"
to my left

"... ken"

So I turned left

…and I turned more left

…and I turned even more left

…and more until I got up off the bed and turned all the way around to see the doctor standing right next to my right ear.

He was trying not to laugh at me. "Yep you definitely punctured your right eardrum." He told me to go see an ENT (Ear Nose and Throat Dr.) the next morning.

So I go, and meet this guy with a thick German accent who says "I Sink I can Fieex sis wiss a butterfly bandage.. but I vant to first put un some Novocain OK?"

“OK”

He then squirted in Novocain... using his super tiny needle-nose pliers to apply a bandaid and pull the two flaps of my eardrum together and put the band-aid on. I said thanks and I started to head home (I drove myself to his office).

About 1/2 way home the road I'm was driving on rotated, like half of a barrel roll in an airplane. It rolls in front of me up and to the left until it appeared vertical. The road was vertical in front of my car, if I go to the left I go up, to the right I go down and I fall off the side of the Earth.

It seemed to me that gravity was broken, pulling the wrong direction, gravity was now sideways.

I then realized that I was holding my head sideways in the car too, to try and lean left so I wouldn’t fall out of the car and off the face of the Earth.

Apparently the Novocain got into the inner ear where equilibrium is managed. I barely made it home... parked... took two steps out of the car... and puked everything I'd eaten for a week… Then I think my asshole sucked back up some poop I’d pooped before that so I could puke some more...

I’d never puked so much. I crawled into bed and slept for 7 hours, only getting up to puke.

Today I have most of my hearing back, but I still can’t hear sounds higher pitch than 17kHz in my right ear, or sounds related to me needing to do yard work or finish projects I started…

Hence - Ken "Q-Tip" Mizell

Wednesday, September 24, 2008

Read this and tell me if you dissagree (you better have a good reason if you think you do)!!


The following was an email I recieved.
*************************************

Wednesday, September 24, 2008

Dear Friends,

Whenever a Great Bipartisan Consensus is announced, and a compliant media assures everyone that the wondrous actions of our wise leaders are being taken for our own good, you can know with absolute certainty that disaster is about to strike.

The events of the past week are no exception.

The bailout package that is about to be rammed down Congress' throat is not just economically foolish. It is downright sinister. It makes a mockery of our Constitution, which our leaders should never again bother pretending is still in effect. It promises the American people a never-ending nightmare of ever-greater debt liabilities they will have to shoulder. Two weeks ago, financial analyst Jim Rogers said the bailout of Fannie Mae and Freddie Mac made America more communist than China! "This is welfare for the rich," he said. "This is socialism for the rich. It's bailing out the financiers, the banks, the Wall Streeters."

That describes the current bailout package to a T. And we're being told it's unavoidable.

The claim that the market caused all this is so staggeringly foolish that only politicians and the media could pretend to believe it. But that has become the conventional wisdom, with the desired result that those responsible for the credit bubble and its predictable consequences - predictable, that is, to those who understand sound, Austrian economics - are being let off the hook. The Federal Reserve System is actually positioning itself as the savior, rather than the culprit, in this mess!

• The Treasury Secretary is authorized to purchase up to $700 billion in mortgage-related assets at any one time. That means $700 billion is only the very beginning of what will hit us.

• Financial institutions are "designated as financial agents of the Government." This is the New Deal to end all New Deals.

• Then there's this: "Decisions by the Secretary pursuant to the authority of this Act are non-reviewable and committed to agency discretion, and may not be reviewed by any court of law or any administrative agency." Translation: the Secretary can buy up whatever junk debt he wants to, burden the American people with it, and be subject to no one in the process.

There goes your country.

Even some so-called free-market economists are calling all this "sadly necessary." Sad, yes. Necessary? Don't make me laugh.

Our one-party system is complicit in yet another crime against the American people. The two major party candidates for president themselves initially indicated their strong support for bailouts of this kind - another example of the big choice we're supposedly presented with this November: yes or yes. Now, with a backlash brewing, they're not quite sure what their views are. A sad display, really.

Although the present bailout package is almost certainly not the end of the political atrocities we'll witness in connection with the crisis, time is short. Congress may vote as soon as tomorrow. With a Rasmussen poll finding support for the bailout at an anemic seven percent, some members of Congress are afraid to vote for it. Call them! Let them hear from you! Tell them you will never vote for anyone who supports this atrocity.

The issue boils down to this: do we care about freedom? Do we care about responsibility and accountability? Do we care that our government and media have been bought and paid for? Do we care that average Americans are about to be looted in order to subsidize the fattest of cats on Wall Street and in government? Do we care?

When the chips are down, will we stand up and fight, even if it means standing up against every stripe of fashionable opinion in politics and the media?

Times like these have a way of telling us what kind of a people we are, and what kind of country we shall be.

In liberty,

Ron Paul




--------------------------------------------------------------------------------

Political Advertisement paid for by Committee to Re-Elect Ron Paul


--------------------------------------------------------------------------------
*************************************

If you still don't believe me, then read this other mail I recieved...

*************************************
Dear American Taxpayer,

Like most Americans, I'm sure you were glued to the news about the "financial crisis" and the government's "fix" for the problem. You probably heard that the government was going to come in and save the mortgage industry by bailing out failing corporations. And, you probably heard both Barack Obama and John McCain say that this bailout was necessary, and good for the economy.

What you probably didn't hear was that it was going to cost up to $1 trillion dollars, and you were responsible for this money.

"American taxpayers will come up with the money," says the New York Times.

Such a number is hard to conceptualize if you're not the government. So, in order to show you just how much $1 trillion dollars really is, we've put together these figures:

One trillion dollars ($1,000,000,000,000) is enough money:

To buy everybody living in Los Angeles at least one Lamborghini Gallardo.
To buy 88,052, 394' custom mega yachts; enough to stretch around ¼ of the world.
To buy everyone living in Belize and Malta a Manhattan apartment.
To get half of the Democratic Party into a fundraiser for Barack Obama at the $28,500 admission price.
To give one out of every two men in the United States a Men's Presidential Rolex watch.
To buy every woman in the United States a Tiffany Diamond Starfish Pendant.
To get two Mitsubishi 73" HDTVs for every household in America.
To buy four copies of The Office: Season Four on DVD, to every person on earth.
To send everybody in America on an all-inclusive vacation to Tahiti (and some people can stay a few extra days).
AND…

$1 trillion is enough money for everyone in Buffalo, NY to buy their own 65-acre island in Panama.

This is how much the government is going to cost you (roughly $3,278 for every man, woman and child in the United States).

Barack Obama is for it. John McCain is for it.

But, Bob Barr and Libertarian Party are against it.

"No one voted to pour taxpayer funds into Wall Street," says Bob Barr, the Libertarian Party's presidential nominee, "and no one voted for the government to take over an insurance company. If the Federal Reserve can spend as much money as it desires to bail out any company that it desires, is there anything that it cannot do with taxpayer funds?”

Who are you supporting this November?

The two parties who are asking you to pick up the tab for the mistakes of Wall Street? Or, the Libertarian Party, who says YOU, the taxpayer, should not be on the hook for America's mortgage crisis.

Please consider supporting the Libertarian Party today, so that we may be able to raise the alarm about this dangerous road the Republicans and Democrats have put us on.

When Barack Obama and John McCain come together to bail out these companies with YOUR money, you need a party and a candidate who says ENOUGH IS ENOUGH!

Send a message to Republicans and Democrats that you will no longer support individuals who think you're responsible for the mistakes of Wall Street.

Send a message to the only political party willing to stand up for you.

Send a message that you're ready for change.

Live free,

Andrew Davis
Director of Communications
Libertarian Party

***************************************

read more here:
My Opinion



Monday, August 18, 2008

SPAM?

Thanks to Lew Rockwell for pointing me to this little gem from Vijay Boyapati
http://www.lewrockwell.com/blog/lewrw/archives/022388.html

this is a test... this is only a test... please remain seated util the ride has come to a complete stop...



This link kills spam

we now return you to your regularly scheduled readings...

Tuesday, August 12, 2008

How to become a software tester

How to become a tester…

Someone asked: “What classes should I take to become a tester?” Personally I think you don't really need a class to get in to testing (maybe a coding class to learn the basic structures of software languages). Testing is really a different mindset (but if you must take a class go to www.testingeducation.org which offers a course in black box testing designed by Kaner and Bach).

I’m not sure that good testers are made, I kind of think that good testers are born. They usually have a few skills or traits that are hard to teach.
The characteristics that make a good tester are:
· an inquisitive mind
· attention to detail
· perseverance
· drive
· creativity
· intelligence
· customer focus
· strong personality (be willing to speak your mind when others disagree)
· integrity
· humbleness
· adaptability
· passion for technology
· the ability to learn new things quickly
Also some experience with the scientific method is helpful (any lab science will do), you need to be able to systematically remove things from an equation to find the root cause of failures (bugs), and a science background is helpful.

If you were the kind of kid that took your mom’s vacuum cleaner apart to find out how it worked, then you might have the kind of inquisitive mind necessary to be a great tester.

If you want reading material to learn from the greats, then I'd hit google and look up "Cem Kaner", then look up "Brian Marick", then look up "James Bach", then look up "Bret Pettichord" (there are others I’m sure I’m forgetting but you will find them as you read the previous authors). Read as much of their blogs and white papers as you can. Remember that they aren't always right, (I disagree with them about the benefits of GUI automation, and think it IS possible to manage a functional automation project), but the principals they put forth are dead on.

Then google "TDD" (test driven development) and look for "CTDD" (customer test driven development), then look up "model based testing" to round out what you may hear in the industry. I'd also look at wikipedia for the definition of white box testing.

www.kaner.com
www.pettichord.com
www.satisfice.com
www.exampler.com/testing-com/

Monday, July 7, 2008

LinkedIN answer: Where do you go from a longtime career in QA?

from here: http://www.linkedin.com/answers/professional-development/career-management/PRO_CMA/266340-10293465?goback=%2Eavq_266340_10293465_0_*2


This greatly depends on your personality and on three principal ideas.
1. your interests
2. your values
3. your abilities

Wherever you choose to go it must be in-line with the three things above or else you will not remain in that career. If you are not interested in the career you will get bored and leave. If it is not in-line with your values (ethically, morally, and financially) you will not be happy even if you find it interesting and you have the ability. If you lack the ability you will not be successful and will eventually be replaced either of your own will or not.

That said; I would say that I found just such a transition by going to a small consulting company to work on a long term test automation framework project. I used to work at Expedia, and there was no path for a test lead to venture into sales and business development within that organization. However, working on the private label test team I often sat in meetings with our biz-dev folks or on conference calls with our partners. I found at those meetings, that I was very interested in what our sales people did, selling technology solutions to companies who understood their business but did not understand which technological choices would help them advance their business. I know that sometimes "sales" has a stigma of being slimy or all talk and no action, but I felt that if I never promised anything that I couldn’t deliver, than I could operate in sales and not violate my values. I can sell something I believe in. I'm very passionate about test automation and talking about it naturally makes people (who have a problem that could be solved by automation) want to buy or hire or obtain the solution and approach I describe. So I have the ability (I think), and the interest, and can use my own integrity to operate within my values (provided I could find a company that would pay me what I think I'm worth).

I joined a small company (Mantis Technology Group) for a test automation project and while managing a team, and building an automation framework, I was able to be involved in meetings directly with the partner or client, along-side our business development manager and our CEO. I could learn from these great mentors while honing my skills in sales and while completing a project that fell within my area of expertise. In three years I grew my team from 3 to 13 and the company grew from 20 to over 100. Many of the sales were a direct result of my influence on the projects or my discussions with the customers.

My title is Director of QA and Support, but my roles are:
test manager
support manager
mentor
automation architect
sales and business development (test and dev related)
visionary
leader
interview question architect (building a team needs a plan just like building software)

I would say a technical sales position is a lot of fun and an easy transition if you already have the domain knowledge and you have an extroverted personality or like pleasing other people.

The above is my story, however, I’ve also seen successful transitions by others to Program manager, or to developer and then development lead and then development manager. I’ve also seen test managers rise to CTO if they are very into new technology and evaluating technologies and methodologies and are natural leaders.

Thanks, Ken Mizell

Director QA/Testing - Mantis

Ken.Mizell@mantis-tgi.com
c. 206.852.0249
w. 425.250.0421
f. 425-250-0401
"Whether you think you can or you think you cannot, you are right!" - Henry Ford