Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Good questions right up to "where any failure is simply not acceptable?"

This moves us from the difficult to the excruciatingly improbable (or impossible if I can use the word loosely).

No fluff intended at this point.
Assume all good problem definition has been done, the code is written and tested by the coder to validate that it meets the specifications.

list all possible uses.
list all possible failure points,
list all the uses you have not thought of.
list failure points you have not considered.

Test the list above.

Now a few guarantees need to be in place.

All uses of said software will be run on the exact same hardware, OS, and supporting environment it has been tested on. (please note the Hardware, OS and environment will never fail in any way. No guarantee needed since it will not fail)

Let us leave the ridiculous, and splash our face with a bit of reality. What say we make the specification attainable and personal. What procedure would you put in place to test software that, if it fails you (or if you are a parent - your child) will die a slow, horrible death (other than old age).

Neat, tidy question, with definite consequences that are high enough to put most people on their toes. Now, where do we start?

Define the requirements, environment of use, who the users will be, budget, time constraints, who else can be brought in to test, how long can we put the software in the field with real users before the test period is said to end. Will death due to failure be enforced if the flaw is not in the software but due to hardware, or environment?

Now let's hash some of this around.

Hardware - Make it as redundant as possible. Power - back up generators and batteries. software - oh oh, 2 options here.
1) do we make it simple, bare bones, and as easy as possible to spot potential errors.
OR
2) do we build the software to run across multiple hardware platforms running validations across the platforms that all are in sync, allowing the majority to rule in case of a difference in responses? Coding all statements to handle unforeseen values? The list can go on.

Your question is not a programming question but a philosophical question, because life is fraught with failures. In what situation would "any failure simply not be acceptable"? People die all the time for stupid reasons, so that will not do. Any life activity has risks, both objective and subjective. To remove all risk of failure from a life , one must remove life. To write a program with all possibilities of failure removed is to not have a program.

I know, this is a bunch of metaphorical fluff that can not be directly applied, but it is a question that is worth some thought because it stretches the bounds of how we could scope a project, and may help us in our attempts at qwality.

Enjoy
dageek

Excellence is our realm, perfection is God's


In reply to Re: Software Design Resources by johndageek
in thread Software Design Resources by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2024-03-29 07:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found