Precision Quality Software, Inc.

Precision Quality Software, Inc. Empowering the American workforce™... with custom database solutions Precision Quality Software, Inc. Our client relationships tend to last for many years.

is a small custom database software developer business in the Reno area yet with high-profile clients countrywide. We specialize in:

- Requirements Engineering
- Development of complex database application software
- Extending current business software to integrate with document management software. In the process of meeting our clients' requirements, we have over the years developed highly spe

cialized skills in several other niche markets too, such as data warehousing, and MAS 500 customization and integration, and integration with Bekins Van Lines, Mayflower Van Lines and United Van Lines corporate software. As respected industry professionals, our team presents at software conferences, such as SD West (Silicon Valley) and SD Best Practices (Boston), to guide and inspire other IT professionals. We focus on a few niche markets and dominate them by providing responsive, high-quality service and spectacular results with exceptional value for money. Our software tends to remain in successful production for exceptional lengths of time, thus increasing the client's return on investment. Our ultimate goal is to make your business or organization more successful and more efficient - that's how we stay in business. Our team has worked successfully with the U.S. Navy, the U.S. Patent and Trademark Office, Philips, Gloria Vanderbilt, Mitsubishi, Agilent Technologies, and dozens of smaller clients in industry and government.

I've cheerfully decided to write shorter articles ... and this is why:
01/15/2019

I've cheerfully decided to write shorter articles ... and this is why:

I enjoy writing highly detailed blog posts … and I’m confronting the reasons why I haven’t written anything on here, for years. My superficial explanation is: “I’…

Recently, I was researching some Audi parts numbers on a website so as to figure out what to order, and it turns out tha...
09/29/2018

Recently, I was researching some Audi parts numbers on a website so as to figure out what to order, and it turns out that the website had a JavaScript Bitcoin-mining virus embedded. Whoa!

09/23/2016

I love how tech enables productivity. When I'm not messing with classic cars, I'm a software engineer in my own little company.

My software client in Southern California has been with me since 1999, and he needed a bug fixed in what, after 16+ years, has grown to be some very complex custom database software (and yes, I like long relationships).

He was OK with waiting until tonight but while I was at the DMV today I decided "why not" and so I used the secure remote access GotoMyPC software on my HTC Evo Android phone. Everyone assures me it's is old tech but I like it. It's rock solid and does what I need.

So there I was, securely logged into the client's network and working on a programmer's workstation 400 miles away, making custom software changes and testing them, while sitting in the Nevada DMV office. At 3:28 pm I was done with the work, at 3:29 I emailed "Fixed :-) " to the client, and a minute later it was my turn to go to the counter. That felt SO good!

My other article this evening mentioned a 1904 Mercedes-Benz, so here's a picture of a Mercedes model made in 1904.  Tha...
09/19/2016

My other article this evening mentioned a 1904 Mercedes-Benz, so here's a picture of a Mercedes model made in 1904. That was before the merger with Benz ...

Photo credit: By Benutzer:Softeis at de.wikipedia, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=5866659. Dankeschoen!

09/19/2016

The phrase "2000 was a good year" might apply to some red wines, and the same is true for MS Access. The 2000 version was exceptionally stable, and we still cheerfully support it. Only for use behind a good firewall, but still...

I've heard that computer-progress years are like dog years, very roughly times seven though that's really an oversimplification. So, supporting MS Access 2000 today is like a 1904 vintage Mercedes-Benz showing up at the local dealership and wanting service. This means that Mercedes-Benz of Reno had better have the parts, service info and trained mechanics available.

Problem is, on a Windows 7 64-bit machine, MS Access 2007 steps on an MS Access 2000 installation, and it's a hard problem to fix. Tweaking the damaged behind-the-scenes system configuration means doing so one file at a time... much too tedious.

So, part of preparing a new developer workstation for one of our small team of MS Access 2000 gurus meant uninstalling all MS Office components, finding the right MS Office 2000 CD with key, then dealing with an unreadable-CD problem, finding yet another CD with key, and finally getting it all installed, configured and working. It's been an interesting Sunday night.

Good thing we have a home-made "where's what" asset inventory system that helped us narrow down our search for the right CD to one of two candidate banker's boxes, e.g., that room, right side, 2nd column, box number 1049. I love being so organized.

If you like real-world examples, you might like this article. It covers compounding complexity in software.This screen s...
06/30/2016

If you like real-world examples, you might like this article. It covers compounding complexity in software.

This screen shot (or part thereof) shows a subtle bug that took my 2nd-in-command programmer and I several hours to pinpoint tonight, in a piece of custom software that we have grown over 15+ years to fit whatever needs the client's complex multi-state business had. Were all the program code printed out it'd be several reams of paper, in small font.

The client company is very well-managed. It figures its profit margins very exactly so that it makes money while also being competitive. The final price that a customer is charged is a composite consisting of multiple factors including a carefully calculated admin fee to cover paperwork issues, which might be minor, average or significant -- and the company adjusts the fee accordingly.

Compounding complexity comes into play when the real world piles on ever-more complex requirements, and the business software (if it's flexible and custom-made) keeps pace, but the complexities affect each other, so things get more complex very quickly.

Here's an example of the compounding complexities that underlie tonight's bug (and why it was so hard to find):

The simple client's story is: we track every order, and we track what we charge per order ... but then it gets more complex:

- we ship orders in one of four ways: airfreight, interstate, intrastate or locally.
- local orders have four separate sub-types that differ significantly
- we break down what we charge, including an admin (paperwork) fee
- there's a standard amount that we charge for the admin fee
- we sometimes want to override the admin fee to a lower amount
- these must be limited to one of a few finite choices
- only certain employees are allowed to override the admin fee
- to other employees, the override amount must display but be non-editable
- beyond a certain point in time the order is locked (frozen) and the admin fee cannot be edited any more.

This bug showed a symptom only when there was a need to override the admin fee. A qualified employee did so, and then a non-qualified employee opened that same screen before the order was locked. This caused an unintentional recalc-and-save using math that overlooked the override amount.

Finding this bug included logging in an out with various access privileges, poring over vast amounts of code ... but we found it, yay!

The bug has been fixed, and a new version has been delivered and distributed. All in a day's work (or half a day, actually). :-)

Yes, custom software is cool but it's complex to make and complex to maintain, if it models the business well. As one of my clients remarked: "I never realized how complicated my business is ... until I had to explain it to you."

03/30/2016

"If you don't see it in the requirements, don't expect it in the software" -- Karl Wiegers. Wise words!

Tom Gilb tells of a case study where a client signed a large contract for software without bothering to state their requirements clearly. The software as delivered met the requirements as stated, but not their unstated expectations -- yet the client was indignant.

I like to emphasize this to overly complacent clients who think they need merely convey some inadequate notions in whatever format they happen to feel like, and then they can sit back while I somehow can infer vast intricacies of details as to what they want or will want by delivery time. That's neither reasonable nor realistic.

Custom software development is typically a journey of joint client-and-developer discovery, beginning with a high level of uncertainty at every level. An honest client might remark, as Wayne Madole, the manager of a past client, once said to me: "I never understood how complicated our business actually is until I had to explain it to you." I miss Wayne...

From the place where I had lunch today ...  they were good and cheap and not fast, and I was 100% happy with that.This p...
02/27/2016

From the place where I had lunch today ... they were good and cheap and not fast, and I was 100% happy with that.

This principle applies perfectly to many other fields of endeavor ... including making software.

02/25/2016

We have joined the Stack Overflow network of software developers assisting their peers with guidance. It's driven by benevolence though still with long-range self-interest in mind. It's very empowering and exciting!

Imagine you're stuck with a problem and you have free online access to friendly peers who have been in that same situation and solved that problem and then advise you how to approach your specific problem. I sometimes wish had such a formalized network for other aspects of my life.

One problem I'm observing is that the geeky people are quick to rush through premise-checking and on to a proposed solution ... often one that cleverly solves a problem -- but not the the problem at hand.

So, really, it's the same classic mistake that I see technical people make all the time: focus on the geeky stuff prematurely, i.e., without asking the business stakeholders some important, basic questions so as to develop a clear understanding of the requirements.

No wonder there's such mutual misunderstanding, frustration, disrespect and distrust between the technical geeks and the business people.

01/08/2016

Complex Requirements, Part 1

Do you have any stories to tell as to how some new business software made your life harder, not easier?

A classic dilemma is presented where the framers pray for rain and a bride prays for nice weather for her wedding day. A deity has his (or her) hands full, trying to accommodate everyone.

Software requirements engineers have a similar dilemma on a smaller scale. The complex requirements of the various stakeholders all have to be synthesized and harmonized before any software gets made, so that it meets the business's requirements in general as opposed to favoring one group while antagonizing the other.

In other words, if the problem is business inefficiency, then some software developers move the problem, instead of *re*moving it.

12/29/2015

Database-Driven Website Content, Part 2: Less-Tedious Broken-Link Elimination.

Tired of stumbling upon broken links in your company website?

We've probably all done that: we write some website content and we point the users to a link elsewhere, for more information. That's with the "H" in "HTML" is for: HYPER-LINK mark-up language.

A few years or months later, the web page to which you point is no longer there, because it's on the site of another company who removed it or moved it, or changed their architecture so that it has a new address, or changed their website name, or went out of business. Regardless, now your own web page looks stale and unkempt, and possibly now whatever you wrote has lost much of its intellectual clout.

Even when you link to your own website content, it's hard to keep things all perfectly integrated. I have a lot of respect for Microsoft and even they seem to struggle with this issue; they might send the reader to some or other article on their website and ... it's not there.

If you first store all your links in a central list in a database, and then serve these up dynamically, it's a lot easier to run a quick test or even an automated report to check on whether or not any of these links are alive or dead.

That seems to be the better way, doesn't it?

12/19/2015

Database-Driven Website Content, Part 1: Less-Tedious Editing

Tired of Having to Clean Up what Your Well-Meaning Employees Write?

It's a safe bet that whatever you post on FB goes into a database, and then FB serves that up as dynamic Web page functionality. I'm using a similar design for an automotive engineering company that writes its own technical articles and wants them published on its own website.

The company types articles into easy-to-use software that I made, and then the article wording is stored in a database and served up automagically as website content. Problem is, not everyone writes with the same style, punctuation etc. and the random variations in style such as when technical expert A writes about something and technical expert B writes about something else ... and the articles are jarringly opposite in style ... that detracts from a reader's experience. Spell-checking and grammar-checking go only so far.

Having the wording stored in a database makes it easier to do quality checking automatically, without a good editor having to painstakingly wade through dozens of articles. The editor can instead focus on planning as to what makes good style, and our software then implements the chosen principles.

Address

Fallon, NV
89406

Alerts

Be the first to know and let us send you an email when Precision Quality Software, Inc. posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Contact The Business

Send a message to Precision Quality Software, Inc.:

Share