Things We're Thinking About

Annoucing Crowell’s S1000D Schema View

Helping customers develop S1000D Business Rules through the years has often led us to dig around in the S1000D Schemas. Somewhere along the way we decided there had to be a better way to quickly see the content and properties of S1000D data module types, elements, and attribtues.

Well, there is a better way. And now we’re making it available to the public. Check out our site:

S1000D Schema View

It provides a hyperlinked, browseable interface to the S1000D document types, data module types, and every individual element and attribute.

S1000D Schema View makes it easy to get all kinds of information from the S1000D Schemas without having to dig into the gritty detail.

Please take a look and let us know what you think.

Donald T. Smith

Empowering Users with UI Design

Good user interfaces (UI) are a vital component of great software applications. It is not enough to have great functionality on the backend. After all, UIs are the human-computer interface. If you don’t get the UI right then the entire system will be wrong…regardless of how clever the code is.

Some developers struggle with this concept. Have you heard the joke about the introverted vs. extroverted programmer?

“How can you tell an introverted programmer from an extraverted programmer? The extroverted programmer stares at YOUR shoes when he is talking to you.”

While the joke is humorous, it illustrates how disconnected some developers are with the people that use the software they build.

Developers that are also skilled at UI design are rare. As such, it is almost always beneficial to get a designer involved in the UI development. The designer can focus on appearance and usability and not worry about anything else.

So how do you design a good UI? Answering that question is a challenge since much of design is subjective. My daughter’s favorite color is pink and my son’s favorite is black. Which one is correct? They both are since it is a matter of personal preference. The definition of good UI design is also somewhat subjective. Some people like dark backgrounds when using computers so they don’t feel like they are staring at a light bulb all day. Other people find that dark backgrounds are depressing and they prefer light colors. Once again, both groups of people are correct since it is a matter of personal preference.

This begs the question, how do you choose the correct UI design for an application when people have different tastes? One option is to let the people choose. Here is a process that accomplishes that:

  1. Build light, dark and medium themes for your UI.
    UI themes
  2. Make it easy for your users to choose the version they prefer. This allows each person to use the UI that is right for them.
    UI themes

For my fellow geeks out there, the ability to switch between themes at runtime was achieved by setting stylesheet references at runtime. The technology used was XHTML, CSS, JQuery and MVC.

There are many other factors when it comes to UI design besides color themes. This article only scratches the surface. If you want to dive deeper then visit

Here are some helpful links:

Power to the people baby! Enjoy.

–Dan Crowell

How about a little BREX 101 this week?

One of the most common points of confusion I hear about in the S1000D industry is concerning what the BREX data module does and how S1000D business rules are used to generate a BREX data module. It is believed by some that a BREX DM contains all of the business rules for a program, and by handing a BREX to a partner company, you can effectively instruct them on how to develop S1000D to conform to your business rules. 

This is not completely accurate. A BREX document is really only capable of storing rules that are enforceable on the actual S1000D XML content. This is due to the fact that a BREX rule must be enforced via an XPath statement. Decisions pertaining to the use of optional elements are perfect examples of S1000D business rules that exist in, and are enforced by, the BREX.

Rules governing the overall usage of S1000D cannot be enforced or expressed in the BREX data module. Examples of such rules include:

  • the decision to use process data modules instead of the fault isolation data module, or
  • to use an Arial font instead of Times for chapter titles.

Although these are important rules, they cannot be expressed using an XPath statement and, thus, are not included in the BREX document. 

When conducting training classes or when explaining S1000D constructs to our customers, we have found it useful to think of S1000D business rules as consisting of two distinct categories:

  1. Program Rules
  2. Authoring Rules 

A program rule is an S1000D business rule that dictates specific usages of the standard that does not specifically address XML content. Program rules include rules such as graphic formats, CSDB configuration, type of data modules to be used, etc. As program rules are meant solely for human use, these are generally provided as documentation (a Word file, HTML, etc).  

Authoring rules are data oriented and can be expressed as an XPath statement and, as such, can be enforced by a program or software application. The decision to disallow an optional element can be enforced via an XPath statement, and thus should be included in your BREX document. It is then the duty of a BREX-aware processor to read the BREX document and enforce these authoring rules.

So, when exchanging business rules, it is important to not only exchange your BREX data module, but supporting documentation containing program rules as well.

Any questions? Give us a call!

–Eric Lawson

A Few Observations on Project vs. Product Management

For pretty much my entire career, I’ve been a project manager.  When Crowell made the jump into product development, I had an unexpected crash course in product management.  I had a strong background in managing service-based projects, so it was a short leap into product management, but a leap nonetheless.

Most of the usual project management issues also apply in the product management world, for instance: scope, resources and timelines.  These are all relevant in the product management world, but the “client”, in this case, is internal; there have been no external, paying clients to answer to.  This presents its own unique set of issues to deal with.  As a services company, we have an ongoing set of projects (with external paying customers) to work on and deliver.  This has had a significant effect on the resources and timeline for developing our products.

Paying customers always take prescedence over an internal product development project.  So, as the product manager, it has been a different (and occasionally frustrating) experience for me to try and manage to a moving deadline.  Having come from the customer-facing project management world, I had a tough time not sticking to a schedule (and working toward specific deadlines).  But, since this was an internal project, it rarely became an issue.

Delivery has also been sightly different for me in the product management world.  With a services-based product, all of the code, documentation and other intellectual property belong to the client.  So there is usually no need to worry about hiding how something was designed and coded.  In fact, it’s usually quite the opposite; clients want and need to know how their software was developed.  After all, they own it.

In developing our own products, we had to have a different approach.  The code and documentation we are delivering to our clients is, and is to remain, our intellectual property.  We have had to add an additional layer of development on top of product coding in order to protect our IP.  This, in turn, has added scope and time onto the development effort that I had to take into account.

I have had lots of mentoring help in making this switch from friends and former co-workers, so it has been a fun experience that I look forward to continuing.  One book that has helped me out is: The Four Steps to the Epiphany, Successful Strategies for Products that Win by Steven Gary Blank.  The book certainly gave me lots to think about and helped guide me through the process from an inside view.

–Kate McDonald

How to Get the S1000D Answers You Need

The majority of the traffic on the Crowell Solutions’ website is visits to our S1000D informational pages.  Our S1000D Glossary and S1000D Introduction pages consistently get the highest number of visits. One thing that means is that a lot of Crowell visitors are looking for information — and answers — about S1000D.

We know that, when you are new to S1000D, getting information from the specification is like drinking water from a fire hose. If your organization is thinking about moving to S1000D, it is hard to figure out *whether* and *how* to implement S1000D.

You are most likely looking for answers to *your* questions. The faster, the better. The easier to understand, the better. So here’s an offer: talk to an S1000D expert right away. Contact us and we’ll set up a phone conference ASAP. During this meeting you set the agenda and you drive the meeting. We will answer any S1000D questions you have. For more information, click here.

–Don Smith