Prevention: Better than cure?

Most of us buy into the concept of preventive medicine. We show up at the doctor's office for our annual physical, or at the dentist to have our teeth cleaned and inspected. We take our cars in for service. We have our home heating and cooling systems checked, cleaned and serviced each year. We don't typically wait until we get sick, a toothache, our car breaks down at the side of the road, or the heating system fails in the middle of a snowstorm.

What about our business applications though? Here at Teamstudio, we've built our share of analytical tools that go looking for problems before they happen. But we never find the same level of commitment to preventive measures in the software world as we do in our private lives.

Take Teamstudio Validator, for example. It's our second least popular tool. And yet it has the potential to save hundreds of hours and thousands of dollars in wasted time and effort.

IBM Notes is a controversial application platform. Many people love it; just as many hate it. That may in large part be because of its quirkiness. The non-relational, hierarchical structure of the NSF database format is fantastic for representing certain types of information, but can have some weird side effects, such as orphaned documents - documents which will never show up in a view, but just might show up in a search.

Combine that with the fact that many Notes databases are getting a little, ahem, mature, and you can understand why this platform is uniquely positioned to present some challenging data integrity problems.

And so we developed Validator. An incredibly powerful tool that can search through your elderly Notes databases looking for problems before they happen. For example:

  • Broken doclinks
    • Doclinks are a great way to navigate around Notes apps - just like hyperlinks on the web. But just like hyperlinks, they don't work if the target document or database has been moved or deleted. And you'll only find that out when a user clicks on the broken link.
  • Save/replication conflicts
    • This is where two different copies of the same document have been updated either simultaneously or between replication events. Most often solved in our experience by randomly deleting one of the conflicting copies!
  • Failing validation code
    • Validator will check default value, input translation and validation code to make sure there is nothing preventing that code from running. For example, the code could include an @DbLookup call to a database or view that no longer exists.
  • Field inconsistencies
    • Fields that are no longer required may have been deleted from all forms, meaning that they just take up space in the database and are never used. Or the other way around. Worse, field types may have changed, for example a field that was stored as text may correspond to a field on a form of type number.
  • Keyword fields with incorrect values
    • This is where the value of a field in the document does not match one of the keywords as defined in the database design. 
  • Missing design dependencies
    • In this example, an actual design element that is needed to display or execute code on a form is missing. It could be a missing subform or shared field, for instance.
  • Orphaned agent data notes
    • This test scans a database to identify agent data notes that are no longer being referenced by an agent. Agent data notes are design elements created and used by agents when they run. Over time, some databases accumulate hundreds of these elements, increasing the size of the database. Since most orphaned agent data notes are no longer attached to an agent, they will never be deleted. There is no easy way to remove them since they do not show up in Domino Designer.

So why would anyone not want to get out ahead of potential problems and fix them before they show up? Maybe it's because someone else suffers the pain when things go wrong. If I don't get my teeth checked twice a year, it's me that will have to suffer the pain and inconvenience of a root canal down the road. But if I ignore the integrity of my aging Notes apps, then it's only some poor user who will suffer later.

If that sounds like you (or let's say someone you know), then you just might want to take a look at what Validator could do for you and your users.