The Data-Centric Revolution: Data-Driven Resolution Planning

Perhaps the way to be ready for resolution is to flip from document-centric to data-centric. Build a system that expresses in real time, the on-going agreements between the many legal entities within the firm. Capture who is doing what for whom.

We just completed a project with an Investment Bank, whose name you would recognize in a minute, but I shall refrain from revealing it, as they are very shy.

This project was interesting.  It seems the Federal Reserve, as well as the British equivalent, the PRA, have decided that in the event ofdata-centric another Lehman Brothers they’d like to be far more prepared.  Turns out there wasn’t “a” Lehman Brothers (not even a couple of siblings) there were dozens of material entities and of course thousands of entities in total.  Part of this was due to regulatory pressure, local countries wanted their bankers to be domiciled and incorporated locally.  And much of it was opportunistic, logistical, whatever.  Regardless the reason, when the shinola hit the fan it was not pretty.  No one knew what entity owned the debts, which entity owned the building, or employed the people or had the rights to their software, or was even paying the utilities.  Needless to say it was an exercise that many don’t want to repeat.

So the regulators have put out guidelines for “Resolution Planning” aka: “The living will.” The basic idea is to understand and document the way you do business such that in the event of another melt down, when the Feds burst down the doors with their hazmat suits on, they will at least have a play book for what to do.

But regulators, being regulators, don’t tell the banks what to do.  They suggest.  And hint.  And then poke a bit if the banks aren’t getting the message.   So over the last few years the banks have been doing what banks do: they’ve been complying.  Or at least trying to comply.  And complying usually looks like the legal team and the compliance team getting together and writing.  And writing.  And writing.  Man, these people can write.  Thousands of pages describing how it all works and how to unwind things in the hopefully unlikely event things need unwinding.

Only problem is, the regulators decided (I should say hinted at) that they didn’t want a play book that made War and Peace look like a short story, they wanted something they could use.  Oops.

Not only was novel reading not something they wanted to do in a crisis, they knew that the novel they were reading was of course, hopelessly out of date.

Enter our hero (he too shall go unnamed, the same shyness thing that overtakes so many wall street types) with the idea that maybe this thing could be data driven rather than document driven.

This whole document driven/ data driven thing has been playing out in industry after industry.  What is bizarre is that in the second decade of the 21st century (you remember, flying cars and moon colonies) we still have an incredible number of our systems that are document driven.  It’s not to say that they aren’t computerized, it’s just that the protagonists haven’t made the mental (and therefore system level) shift to put the data first and the document as a by-product.  The airline industry made the shift in the 80’s.  If you’re old enough to recall we used to get these three part things with red carbon paper that allowed the bearer (no kidding) to get on the airplane, no id, nothing.  Lose that red carbon paper document and it was going to take you a while to get your money back, let alone get on an airplane. You could get your money back for a lost ticket,  but it was akin to a Freedom of Information Act request: theoretically possible but you really didn’t want to do it.

Nowadays the airline industry still has documents, you can print them and show them to the nice TSA people and the gate attendants, but lose it, no biggy, print another.  Indeed before you go to the airport you can print a dozen if you’d like.

So the airline industry has made the shift.  Our observation is that most business have one foot on the station and one foot on the train with this one.  That is they have made the shift in some of their systems and not others. We did project recently for the Washington Secretary of State (unlike banks they aren’t weird about having their name in print). As part of that project we looked at the state of the States with regard to corporation and charity registration.  While everyone is computerized, most are still document centric. That is, the submitted document is the real thing, and the system or the operators excerpt a few key details to put into their databases. You can query the database but the reality is in the document. You can tell when you’ve made the shift, when the data is the real thing and you only print it for convenient reading.  When the transition is complete the data will be the registration, and a document will merely be the rendering of the data already captured.

Returning to our hero, he had an insight that perhaps the way to be ready for resolution would be to flip from document centric to data-centric.  Build a system that expresses in real time, the on-going agreements between the many legal entities within the firm.  Capture who is going what for whom.

As obvious as this sounds it runs completely counter culture.  Banks set up departments in India (and other countries).  They send work to India.  India is part of the department.  And yet, in reality, India is another Legal Entity. The firm might go bankrupt.  The entity in India might go bankrupt. The entity in India might get hit by a flood or hurricane.  No one is thinking in these terms. Except the regulators.

So, we built a system. Based, of course, on semantic technology and model driven development.  It’s been a struggle to get managers to think of their daily handoffs as being in the scope of a service level agreement between two legal entities, but they are.  We are working through how to characterize work, and how to describe the controls that have been put in place to ensure the work is getting completed to standard. We’ve piloted the system.  In three months it went through literally hundreds of changes.  We ascribe about half the agility to semantic technology and half to model driven technology.

And the output of the system looks like documents.  Indeed we dump a lot of our data to Excel spread sheets because that is what bankers are comfortable with. But it is data-centric.

So the regulatory review was this week.  We haven’t heard the feedback.  Typically it takes many weeks to find out: did the regulators like the idea of being data-centric?

While we wait, we reflect.  We’re pretty convinced.  This is inevitable.  To become more compliant in resolution planning we believe that banks will have to make the shift from document driven to data driven.

Written by Dave McComb

Ontology and Taxonomy: Strange Bedfellows

Explore the relationship between Taxonomy and Ontology with this presentation by Michael Uschold  from a keynote talk at the International Conference on Semantic Computing. 

Click Here to View The PDF

The Menu (Taxonomy) vs. the Meal (Ontology)

Taxonomy and Thesauri:

  • Focus is on words, not concepts (the menu).
  • Relationships are between terms: synonym, hyponym, broader/narrower term.
  • Each term should refer to just one concept.

Ontology:

  • Focus is on concepts (the meal).
  • Relationships are between concepts.
  • Formal definitions.
  • Automated inference.

How do we bring it all together?

  • Understand the value where each approach adds the most value.
  • Find the touch points and link them all up.
  • Can Everyone and every tool live in harmony?
  • It is not impossible, we are pushing hard and it gets easier!

 

 

 

 

White Paper: The Enterprise Ontology

At the time of this writing almost no enterprises in North America have a formal enterprise ontology. Yet we believe that within a few years this will become one of the foundational pieces to most information system work within major enterprises. In this paper, we will explain just what an enterprise ontology is, and more importantly, what you can expect to use it for and what you should be looking for, to distinguish a good ontology from a merely adequate one.

What is an ontology?

An ontology is a “specification of a conceptualization.” This definition is a mouthful but bear with me, it’s actually pretty useful. InEnterprise Ontology general terms, an ontology is an organization of a body of knowledge or, at least, an organization of a set of terms related to a body of knowledge. However, unlike a glossary or dictionary, which takes terms and provides definitions for them, an ontology works in the other direction. An ontology starts with a concept. We first have to find a concept that is important to the enterprise; and having found the concept, we need to express it in as precise a manner as possible and in a manner that can be interpreted and used by other computer systems. One of the differences between a dictionary or a glossary and ontology is, as we know, dictionary definitions are not really processable by computer systems. But the other difference is that by starting with the concept and specifying it as rigorously as possible, we get definitive meaning that is largely independent of language or terminology. Then the definition states that an ontology is a “specification of a conceptualization.” That is what we just described. In addition, of course, we then attach terms to these concepts, because in order for us humans to use the ontology we need to associate the terms that we commonly use.

Why is this useful to an enterprise?

Enterprises process great amounts of information. Some of this information is structured in databases, some of it is unstructured in documents or semi structured in content management systems. However, almost all of it is “local knowledge” in that its meaning is agreed within a relatively small, local context. Usually, that context is an individual application, which may have been purchased or may have been built in-house. One of the most time- and money-consuming activities that enterprise information professionals perform is to integrate information from disparate applications. The reason this typically costs a lot of money and takes a lot of time is not because the information is on different platforms or in different formats – these are very easy to accommodate. The expense is because of subtle, semantic differences between the applications. In some cases, the differences are simple: the same thing is given different names in different systems. However, in many cases, the differences are much more subtle. The customer in one system may have an 80 or 90% overlap with the definition of a customer in another system, but it’s the 10 or 20% where the definition is not the same that causes most of the confusion; and there are many, many terms that are far harder to reconcile than “customer.” So the intent of the enterprise ontology is to provide a “lingua franca” to allow, initially, all the systems within an enterprise to talk to each other and, eventually, for the enterprise to talk to its trading partners and the rest of the world.

Isn’t this just a corporate data dictionary or consortia of data standards?

The enterprise ontology does have many similarities in scope to both a corporate data dictionary and consortia data standard. The similarity is primarily in the scope of the effort: both of those initiatives, as well as enterprise ontologies, aim to define the shared terms that an enterprise uses. The difference is in the approach and the tools. With both a corporate data dictionary and a consortia data standard the interpretation and use of the definitions is strictly by humans, primarily system designers. Within an enterprise ontology, the expression of the ontology is such that tools are able to interpret and make inferences on the information when the system is running.

Download the White-paper to Read More.

Written by Dave McComb

Supersumption: Solving Common Object Oriented Problems

The idea of supersumption may solve some common Object Oriented problems.

We’ve been doing training in Semantics and Description Logics lately, and have decided it’s worth emphasizing the concept of supersumption. Of course, supersumption is nothing but the inverse of subsumption: that is, if we say A subsumes B, then we have also said B supersumes A. But the reason we’re finding it worth calling out the difference is because of a mindset that many of our students (and myself) bring to the classroom. If you’ve been brought up with Object Oriented modeling, you naturally draw a parallel between subsumption and subclassing (or, even better, subtyping).

The analogy is close enough that you can mostly find your way around in this aspect of semantics. But we Object Oriented folks have a blind spot, and here’s where it shows up. If you are Object Oriented you likely have imported a library, you might subtype some of the classes you found in your library for your use in a particular project (or you might use them as is).

But, it would never occur to you to supertype a class that you got from somewhere else: you would be virtually assured of breaking it. But in semantics this is routine. Let’s say you’re designing an ontology for contracting, and you want to have a concept of “Party” (as in party to a contract). You may be importing another ontology with the concept of Person that you’d like to use. For some people, it’s an unnatural act to say that Person subsumes Party (because it seems like you are redefining the external sources definition of Person by making it a subtype of Party without their concept). You’re not really redefining someone else’s concept (except in your own local use).

To get around this blind spot, we’ve found it useful to say that your new concept “Party” supersumes the imported “Person.” And this seems to make it easier to bring this pattern to mind. I did a quick Google search and found 400,000 references for subsumption, and only 32 for supersumption. Must be a point of view thing.

The Treaty of Tordesillas

What history can teach us about semantics.

Lately we’ve been grappling with the issue of how to get a Semantics Inference Engine and a Business Rules Engine to play nice in an Enterprise Architecture. Some long dormant neuron fired and the Treaty of Tordesillas was invoked as a possible exemplar.

For those of you whose recollection of the Papal role in the age of exploration has faded, allow me to refresh your memory. The Portuguese were the first out of the blocks, in the Age of Discovery, sailing down the coast of Africa, and as a result, being granted by the Pope sovereignty over all the lands south of the Canary Islands (off the coast of Morocco, effectively giving them most of Africa, India, and Indonesia – the “East Indies”). Columbus, sailing under a Spanish flag, discovered islands in the new world (which he believed to part of the East Indies). On his return, the King of Spain petitioned the Pope (also a Spaniard) who granted Spain everything 300 miles west of the Cape Verde Islands (south and west of the Canaries, but still in the Eastern Atlantic).

The Portuguese howled in protest, and in 1494 in the Spanish Town of Tordesillas, they pounded out a compromise. The Treaty moved the line 800 miles farther west. A few years later, figuring that the world was likely far larger than earlier estimates, continued this imaginary line through the poles and to the “anti-meridian” which effectively gave Spain an entire hemisphere, but assured Portugal’s claim over the East Indies.

No one had any idea at the time, but the line bisected the still undiscovered South America, eventually giving Portugal domain over Brazil, and Spain the remainder. For the most part Spain and Portugal honored this Treaty for the rest of their explorations in the new world, and people in Brazil speak Portuguese today due to the placement of a line through a continent that the line drawers had no idea existed.

So what does this have to do with semantics and Business Rules? Glad you asked. If you’ve looked at a Business Rules implementation you probably noticed that a majority of the rules being written either define new terms or create simple inferences between terms. At the same time, if you look at semantic implementations you’ll see a great deal of effort trying to describe behavior but exporting it to scripting or other programming environments to be implemented.

Rather than embark on a series of unnecessary internecine battles over which tool to use for what, we recently postulated our own Treaty of Tordesillas: all term definition and inference of class membership would be done in a Semantics Inference environment, and all assertions about relationships, all calculations and all initiation of side effects would be done in the Rule Engine environment.

As near as we can tell, we’ve just drawn an imaginary line in the middle of the ocean. However, it seems to be a reasonable place to start. I was a speaker at the recent Business Rules Forum, and had a chance to try this out with Business Rule vendors and practitioners. The general response I got, I took to be favorable. Most questioned the need to use a separate tool for inference, as the Business Rules could do that. But on reflection most could see where it solves two of the Business Rules Communities problems: 1) rule implementations are getting large and unwieldy (and removing over half the rules could certainly help here) and 2) the terms and distinctions created in the Rule environment are typically not available as resources to the rest of the enterprise.

We haven’t appealed to a higher authority yet, but this now is our starting point for Enterprise Architectures: terms and inference on the Semantic side of the demarcation, calculation, property assertions and side effects on the Business Rule side. Who knows, maybe future generations will speak other languages as a result.

I’d love to hear any feedback from anyone who has been to this new world.

Written by Dave McComb

Systems Development: Assessing Risk Factors

System project failures are a well-known part of systems development; however, all the potential risks of planning and executing a project effort are not.

This white paper offers heuristic guidelines to help IS managers assess these inherent risk factors before initiating and while executing a project. Case examples illustrate how a particular risk factor can result in a failed systems development effort.

Most IS managers who have been responsible for any type of systems development effort are familiar with project failure. Although publicity is rare, a few project failures have received coverage in the trade press. Some project failures have been labeled runaways, which is “a system that is millions [of dollars] over budget, years behind schedule, and—if ever completed—less effective than promised.1

Several years ago, another runaway project disaster received notoriety because the failure affected five million New Jersey state drivers.2 The fourth-generation language used to develop the system was not equipped to handle the daily volume of car registrations and license renewals.

According to one accounting firm’s study, the problem is widespread: runaway projects accounted for some 35% of the total projects under development in its 600 largest client organizations.3

Federal government officials have become wary of a similar phenomenon known as grand design approaches to systems development.4 A grand design, based on traditional systems development principles, dictates specification of all requirements up front. Problems surface in the federal government bureaucracies because projects are usually large in size and complexity. A large project scope means that costs escalate, time schedules lag, and user, project, and vendor personnel change frequently. Furthermore, Congress balks at the estimated costs, forcing compromise solutions that are prone to implementation failure.

This article attempts to determine the patterns that exist within systems development projects that begin well and, for whatever reasons, finish less successfully. To focus the initial work, each project selected used a traditional systems development methodology. Each project failed to meet user expectations.

The following observations tie in well with the authors’ experiences with systems development projects. More importantly, these observations may be useful in helping project managers assess the impact of changes to their projects relative to their future success or failure. Furthermore, senior managers and systems sponsors may find help with their decisions regarding the continuation or cancellation of troubled systems development projects.

Framework to Identify System Failure Factors

Exhibit 1 provides an analytical framework for linking observed systems failures to behavioral factors. Common planning and execution behaviors are traceable to both the technical and human sides of systems development that have resulted in systems failures. (FIGURE 1) Any given project may be traceable to one or more of these factors.

The factors are organized along two dimensions: planning versus executing and technical versus human. The placement of the factors defies pigeonholing; as the framework suggests, few factorsSystems Development: Assessing Risk Factors are purely classified in one dimension. Broken lines in the exhibit indicate dimension zones.

For the purposes of this article, a clockwise approach explains the framework. Beginning with those factors that are most planning related, continuing clockwise through planning-human, executing-human, executing, executing-technical, and planning-technical.

Planning Factors

Although most project failures surface in late execution, the problems often originate during the planning and can occur irrespective of the planning approach being used. Such problems involve mistakes made in time and budget estimates as well as in compression (i.e., project scheduling and management activities)

Estimating. Independent of specific tools or techniques, project managers or project sponsors generally use one of five estimating approaches—available budget, level of effort, bottom-up, comparable case, and executive mandate. Note that the approach taken appears to correlate with prospects for project success.

Available Budget. IS managers accustomed to operating their department in a stable environment usually believe that projects will continue within the allotted budget, plus or minus a small percentage. The threat to their projects success is they fail to recognize that taking on a project adds many tasks and virtually none of these tasks can be shortchanged without jeopardizing the entire project.

Level of Effort. The level-of-effort estimate relies on a judgment call that a certain number of employees should be able to complete each task in a certain amount of time. For example, task one should take three people two months to complete. This approach at least recognizes that there is a relationship between the effort and the tasks initiated.

However, the approach fails because there is no inherent feedback loop. Because the estimate is judgmental and no two tasks are the same, the next project is always slightly different. Thus, this type of project estimating does not improve with project manager experience.

Bottom-Up Approach. With this approach, planners ascertain individual tasks (e.g., number of pages of procedures to be written, number of employees to be trained, number of screens to be designed). Then, they assign resources and time blocks to accomplish the tasks. Because these estimating parameters are reasonably constant, they provide a common denominator from project to project. Through project time control systems, IS managers know whether or not their estimates are correct. Therefore, the bottom-up method has a self-correcting mechanism as the project proceeds and a learning component to use for each project.

Comparable Case. Very often, especially in long-term planning, estimates must be made for projects prior to the knowledge of detail required for bottom-up estimating. Usually, there are a handful of parameters that determine the size of the project and compare it to similar projects in similar-size organizations in the same industry.

For example, although accounts receivable projects may be very different between a construction company and a hospital, they should generally be comparable between hospitals that are approximately the same size. This method is particularly beneficial for project prioritization and rough-cut decisions regarding the necessary worker hours. However, statistics from similar projects may be difficult to obtain. Once the project begins, planners may convert to the bottom-up method.

Executive Mandate. At times, an organization’s senior executives dictate a project completion date on the basis of political, environmental, and market conditions. For example, one organization’s president pushed up a target completion date from three years to one year for a $25 million project involving major technological change and data conversion. Estimates crunched data conversion to two weeks and allowed only one week for a systems test. The reason: that president wanted to implement the system before his retirement.

Studies have shown that in many cases, assigning more staff to a project will not serve to compress the project completion timetable.

As a general rule and regardless of the estimating method used, the more detail included in estimating project time and budget, the more accurate the estimation. In practice, planners do not include enough detail, and a primary source of systems failures is a predilection toward gross underestimation.

Gross underestimation does not mean 20% to 30% underestimation, but rather 100% to 1,000% (based on field observations). Furthermore, an acceptable estimation with sufficient detail does not guarantee that the estimate will be allocated the appropriate resources. The following example is a case in point.

Example 1. A client of one of the author’s was, for reasons outside his control, required to replace all of the organization’s information systems. He had a staff of eight and a 1 ‘/2-year timetable to complete the task. His own level of effort estimate suggested that this time was sufficient. An outside group performed a comparable case estimate indicating that the implementation time would require approximately 25,000 workdays or almost 20 times what he had available.

Senior management was shocked, agreed in principle to the external estimation, but did nothing other than transfer responsibility for the project to another department. The project, still staffed at eight but gradually growing, was allowed to drift.

Two years later, there were more than 100 employees on the project with a considerable amount of work yet to be done. Had the organization acted on the estimates at the time, the project probably would have essentially been complete at the end of the two-year period and certainly the team members would have felt much better about their involvement.

Compression. This is the act of speeding up tasks. There are two types of compression: planned (i.e., the fast-track approach) and unplanned (i.e., the catch-up approach). Fast-tracked compression management is an art requiring the ability to begin tasks in parallel that are usually conducted sequentially. Managers must rely on their own judgment to predict enough of the outcomes of the tasks usually done first to successfully mesh succeeding tasks and compress the schedule for the final outcome.

Catch-up compression management is probably more common than fast-track management in systems development projects. The problem is that certain tasks do not compress well. Studies have shown that in many cases assigning more staff to a project will not serve to compress the project completion timetable. Instead, more staff usually delays further the completion of the project.

Planning-Human Factors

The planning-human factors include planning aspects that deal predominantly with human communication and scheduling. These factors are bid strategy, staffing, and scheduling.

Bid Strategy. Almost all contemporary systems projects use outside vendors either for hardware, software, or other services. These products and services are often put out to bid. The bidding strategy, whether it be for the entire project or for subcontracting portions of the project, has a major impact on the project’s success. Unfortunately, there is no single best bid-ding methodology.

However, most project managers or organizations have a favorite approach. Examples include a fixed-price strategy (i.e., bidding to a set price) and always subcontracting software development to someone other than its designer to prevent conflict of interest.

Among the most popular bidding strategies is the lowest bidder strategy. The inherent risk in selecting the lowest bidder is the magnitude of differences in productivity between programmers and designers, often a factor of 10:1. The impact of this productivity differential is even greater for the individuals who have a major role in the project (e.g., systems architects and project managers). With that great individual variability on the quality and the productivity, selecting a low bid vendor would seem to be an almost certain prescription for failure, and it usually is.

Government agencies in particular are forced through regulations to accept the lowest bidder. As a result, they go to great lengths to disqualify vendors that private businesses would have eliminated on the basis of subjective evaluation. Instead, they redefine their requirements to be strict enough to attempt to eliminate the unqualified on the basis of submitting nonresponsive bids.

Staffing. There are two facets to the staffing problem: incorrect staffing and staff turnover.

Incorrect Staffing. The most serious aspect of the incorrect staffing problem stems directly from the estimating problem. That is, inadequate total staff is due to a shortsighted estimate.

Other incorrect staffing problems are retaining project members who are not results oriented, or who lack the ability to cooperate as team members, or who do not have the skills called for in the work plan (e.g., failure to include staff with end-user knowledge, or with sufficient technical knowledge of the architecture, or with systems development experience). The following example illustrates project difficulties when there is a lack of end-user knowledge.

Example 2. An agency was processing several million dollars worth of revenue checks per month. The processing procedure was very complex and required some extensive reconciliation. Many of the checks were for large amounts of money.

In the current procedure, the check accompanied the reconciling paperwork until the reconciliation was complete. At that point the check was forwarded for deposit. As long as the reconciliation was done on the same day this was not a major problem. However, the reconciliation process had become very involved, and as a result, checks were being delayed or misplaced. The proposed and designed solution was to create a system that would log the movement of the check so that at any given time anyone could tell the exact location of a check.

One change made to a program module or other design feature often creates a domino effect.

When it was suggested that a more straightforward solution would be to put the checks directly into the bank and do the reconciliation later, the new system was strongly resisted. A significant problem in this example was that there was no one on the system project team familiar with current practices in revenue and collection systems.

Staff Turnover. This is a two-pronged problem. One prong is ensuring sufficient continuity throughout the life of the project; the other prong is recognizing that there will be major changes in the composition of the team as the project progresses. It is difficult to ensure absolute continuity of staff to a project team because employees are always free to quit, or they may get reassigned. However, it is possible to avoid planned changes in the staff team.

The classic waterfall life cycle methodology provides the opportunity, and in some cases the requirement, to reconsider and rebid every project at the end of every systems development phase. Besides the effect of losing the skills and knowledge of the outgoing members of the team, there is a much more important and subtle factor at work. That is, the new team may feel no compulsion to the design or the solution as proposed in the previous phase.

Particularly tenuous are those decisions related to project scope and expense. As a result, there is very often a subtle rescoping of the project every time the members of the project team change.

Scheduling. Still in the realm of planning-human, although now at a more tactical level, are those factors related to scheduling (including the sequencing of activities). The sequence and scheduling of project activities will vary by project type.

For example, transaction processing systems usually follow the traditional systems development life cycle (SDLC) approach whereas decision support systems may use applications prototyping. Whatever methodology is used, the sequence and scheduling of project activities should follow a logical, additive progression toward defined goals.

Executing-Human Factors

Project execution, from the human (or personal) side, may be stalled by the lack of feedback, user involvement, and motivation. Each factor inhibits smooth execution of the project.

Feedback. The lack of unbiased feedback surfaces when project managers and systems personnel believe that they can move forward and meet impossible deadlines. Part of the problem is that progress in software or systems development is mostly invisible. Programmers may deceive both themselves and their managers about the extent of their progress. For example, a programmer believed to be 90% complete on a module may actually have 50% of the work yet to do.

User Involvement. This factor includes both the importance of user participation in the design and adequate user training to use the system. The time allotted to procedure development and user training is often too short. User management usually regards systems training as an addition to the regular job requirements rather than giving users sufficient time away from their job responsibilities to learn the system.

One of the keys to a system’s project success is to establish ownership among systems users. An effective method of accomplishing user ownership is to let users change requirements during the development process or tailor requirements afterwards. However, this is a two- edged sword if change is not controlled. The importance of user ownership is illustrated in the following example.

Example 3. Because of regulatory changes, a company needed to change both its cost accounting system and allocation methods. Users initiated an internal project that defined some unnecessary complex algorithms and required a major mainframe development effort.

A senior vice-president, realizing that the project would not be completed by the established deadline, authorized a second, external team to create a second backup system. Within three weeks, the external team completed the second system using a fully functional prototype at about one-tenth the development costs and one-tenth the operating costs of the internal project.

By this point, the users had such a strong personal involvement with the system they were developing that they rejected this new system despite its advantages. From the external team’s perspective, the project was a failure in spite of the overwhelming cost, schedule, and functional advantages. This failure occurred be- cause the users were not involved in the development of the system.

Motivation. Motivation is a universal personnel problem. With respect to systems personnel, standard time allotments for a given unit of work are not always valid because the motivation of systems personnel varies greatly; that is, the level of motivation of systems staff members will determine how quickly (or slowly) it takes them to complete the work.

Two aspects of motivating systems personnel are project-reward structures and the project manager’s success in motivating the team members. The reward structure can have a significant effect on a project’s outcome.

For example, one project team was staffed by employees who performed this systems implementation in addition to their full-time jobs. They were told that when the system converted, they would have the new positions that this new system implied. As a result, team members worked a lot of overtime to complete the project.

Another project effort involved the same arrangement except for the reward structure. Team members had to develop the system in their spare time without the incentive of building future jobs. As a result, the project failed.

Executing Factors

Change management and subsequent workarounds and catch-ups are execution problems stemming directly from the lack of unbiased feedback. When people set impossible deadlines, they act frantically to get the work done rather than admit that they are behind schedule.

Change Management. Once a design specification is finalized, the order goes out to freeze the spec. Although no specifications are ever absolutely frozen, too many changes after finalization may create havoc. One change made to a program module or other design feature often creates a domino effect. Actual changes are often on a larger scale than originally intended.

The extent and impact of subsequent changes to design specifications are products of design quality, project team-user relations, and the project team’s attitude toward change. Analysts who want to please everyone may bring about a project’s demise. Every suggestion brought forward by a user becomes a change. Changes beget other changes until the project dies of accumulated entropy, as in the following example.

Example 4. One project exploded with accumulated changes (see Exhibit 2). Suggested changes (e.g., an inventory aging report) were documented on functional investigation memos (FIMs). A FIM is a one-page narrative describing the change from a user’s perspective.

The team analyzed each FIM to determine such affected systems components as data base layout changes or program changes. The change to each affected component was documented on what was called a systems investigation memo (SIM). Once, authorized, SIMs became technical change requests (TCRs), which consist of module-level detail from which programmers could code.

The idea was to accumulate all changes and then open each module only once. This philosophy missed an important point. That is, it is a better strategy to focus on the impact of a single change throughout the entire system than to focus on testing individual modules.

In any case, requested changes kept coming in and, as the exhibit suggests, complexity multiplied. After nearly a year of implementing changes, the change backlog was larger than the original change backlog.

After a. change in management, the team eliminated all of the unnecessary changes, backed out of some of the coding changes that had already been made, and established a completed version of the system within five months.

FIGURE 2

Workarounds. Some project managers will continue to find more ingenious ways to live with a problem rather than solve it. For example, one organization implemented an MRP II system (Manufacturing Resource Planning) that was inconsistent with its previous business practices, which were already identified on PC software and procedures.

Rather than reconciling the inconsistencies and opting in favor of one of the two systems, employees looked for ways to work around the inconsistencies. For example, the data element due-date on the informal PC system was the most recent estimate as to when the materials would arrive. In contrast, due-date on the formal MRP II system was based on calculated need dates from the current engineering design.

Instead of recognizing the problem that they were trying to pursue two ways to conduct business, the employees attempted to reconcile the two due dates. Eventually, the workarounds became intolerable, and within nine months, the PC system and old procedures were abandoned.

Executing-Technical Factors

Although there are human aspects to vendor, control, and performance factors, the authors view these factors as predominantly technical issues that can compromise project execution.

Vendor. As outsiders, vendors usually get the blame for many project problems, and often, they deserve it. Depending on the particular role they play, vendors may be part of other failure factors discussed in this article. Here, the concentration is on vendor problems in conjunction with the request for proposal (RFP). Ironically, the RFP process may result in the very problems that the process was designed to avoid. That is, the RFP may lead to the implementation of inappropriate products or solutions.

Through RFPs, vendors are often requested to respond to user requirements through a checklist evaluation. The evaluation will be weighted by the customer to determine the vendor with the highest score. This method, however, has several flaws.

First, vendors are trusted to make the evaluation for themselves and considerable license is usually used with their answers. Customers often try to address this by making the vendor’s response an addendum to the eventual contract. Experience suggests that this approach is not very effective.

If not solved during design or conversion, performance problems may never be resolved.

Second, implicit in the checklist evaluation approach is the assumption that a series of very minute and discrete requirements will actually result in a comprehensive high-quality system. It is often surprising how vendors will continue to add features into their system with very little regard to the impact on the integrated whole, as in the following example.

Example 5. A medium-sized construction company performed a very detailed RFP with checklists. A relatively unknown software vendor came in first on the functional requirements checklist evaluation even though its solution was written in an exotic operating system and programming language. Management ignored a recommendation to weigh the reliability of a more established vendor’s credibility and in stalled base.

Problems occurred immediately. The package promised a multiplicity of features (e.g., the A/R system supported either an open item or balance forward processing variable by customer). However, these features constantly interfered with one another; the total number of options far exceeded any possibility of testing all combinations and permutations.

The implementation team knew that the vendor had performed little integration testing. As a result, they had to do the vendor’s debugging as well as a considerable amount of design. The only way the team could make the system workable was to remove large portions of code to reduce testing requirements to a manageable level.

Control. Controls are a vital part of any information system and in particular those that handle financial transactions. Control code in these systems may be greater than the entire application proper, and adding controls to a system after the fact may cost as much as the original system itself. One organization experienced these costs with a general ledger accounting system, as shown in this example.

Example 6. The literature promoting a system advertised its ability to post transactions into any period: past, present, or future. “What if,” stated the literature, “you find an invoice in the bottom of the drawer that is more than a year old? It does happen.”

However, the controls for this complexity were not built into the, system. Transactions could be posted in previously closed months without a corresponding transaction to change the current month’s balance. Miskeying a date could post it into the distant future, omitted from all financial reports until that date arrived.

The solution was straightforward but not easy. The application needed a new control record to indicate which months and years were open for posting. Unfortunately, nearly 100 transactions in nine applications had to be changed to check for an open accounting period prior to creating a transaction, and all programs had to be reviewed to check for the possibility of creating unbalanced general ledger transactions.

Performance. Almost every meaningful systems development project has performance problems. If not solved during design or conversion, performance problems may never be resolved. Some examples include a minicomputer-based system with an interface file with seven records that took more than 12 hours to process, and an online shop floor control system with a 45-minute response time for some transactions.

Planning-Technical Factors

This last section targets two factors that may lead to systems failure. They are experimenting with new technology and technical architecture (i.e., designing the system independent of technical considerations).

Experimenting with New Technology. Experimenting with new technologies is not a problem unless managers take a mainstream business systems development project and jeopardize it by experimenting with unproven technology. The following example illustrates this problem with a data base system.

Example 7. In the midst of the design of the large online materials management system, a hardware vendor suggested to a client that an advanced data base system it was working on would solve the client’s data base tuning and performance problems. This data base system relied on transferring part of the data base search logic to the disk read heads, which would allow it to search an entire disk for unstructured information very rapidly without draining the CPU resources.

One of the authors pointed out that it would be useful for unstructured queries, but the application being designed was for designated transactions that knew which data base records they required. The vendor persisted and sent senior designers of the product to the client to argue the case.

Fortunately for the client, the vendor’s own statistics provided evidence that this product would not help the performance of the application and indeed could hinder it significantly. It seemed as more users got on this system and began cueing up unstructured queries, the system degraded exponentially.

Although this particular client was spared the expense and distraction of this technical experimentation, another client (in the same city) purchased the system to use it for transaction processing and accessing unstructured queries. These unstructured queries so degraded the transaction processing that a separate machine had to be set up to provide queries on a non- integrated, standalone basis.

Technical Architecture. Not too long ago, it was popular to design systems independent of their technical architecture. The intention was to prevent knowledge of technical details from biasing the best functional solution. However, this does not work well, as shown in the following example.

Example 8. Analysts familiar only with minicomputer architectures were trying to develop an application for a mainframe environment. In this case, a minicomputer architecture would not work because in a mainframe online architecture, information is keyed into the terminal where it is buffered and stored until the user completes a full screen of information.

Then, the user presses a send key, and the entire screen’s worth of information is sent as one block to the mainframe. This initiates the application program long enough to process the incoming message, perform any necessary data base updates, and format and send another screen of information to the user. The application program then effectively terminates.

In a minicomputer online architecture, however, the application program is constantly active when the user is at the workstation. Every time the user interacts with the screen, the application program responds.

In one of its late design reviews of this project, management noted that the user design implied a minicomputer architecture; that is, interaction with the CPU after entry of every field. Not only was this design used to create error messages, but also to actually change the layout of the screen.

At this point, the analysts refused to change their design and convinced users to purchase a standalone minicomputer. This meant a need less expense to the users and gave them a nonintegrated, standalone system.

Conclusion

Structural and civil engineering made some of their great strides when they systematically studied failed structures and then incorporated lessons from those investigations into their methods, standards, and approaches. The information systems industry is still in the early stages of a similar evolution. It is as if it is just beginning to investigate collapsing bridges and broadly categorize the failures (e.g., structural problems, weakness in materials, and unanticipated environmental forces such as flooding).

Systems failures are commonplace. Heuristic advice about how to prevent systems failure once a project is underway is less common. The 15 project-risk factors, identified on the systems failure risk framework, and the case examples illustrating how each of these factors can con tribute to project failure, are designed to help IS managers understand and control their own systems development projects.

Using this framework as a guide, IS managers can broaden their perspective on the sources of potential problems, and in so doing, prevent some of the unnecessary project failures they currently face.

David McComb is president of First Principles Inc, a consulting firm that specializes in the application of object-oriented technology to business systems. Previous to founding the company, McComb was a senior manager for Andersen Consulting, where for 12 years he managed major systems development projects for clients on six continents. He received a BS degree and an MBA from Portland State University.

Jill Y. Smith is an assistant professor of MIS in the College of Business Administration at the University of Denver. She obtained a PhD in business computer information systems from the University of North Texas. She is also a research associate in UNT’s Information Systems Research Center.

Notes

1.  J. Rothfeder, “It’s late, costly, incompetent—but try firing a computer system,” Business Week(November 7, 1988), pp 164—165.

2.  D. Kull, “Anatomy of a 4GL Disaster,” Computer Decisions (January 11, 1986), pp 58—65.

3.  Rothfeder.

4.  An Evaluation of the Grand Design Approach to Developing Computer Based Application Systems, Information Resources Management Service, US General Services Administration (September 1988).

Written by Dave McComb

A Minimalist Upper Ontology

Gist is designed to have the maximum coverage of typical business ontology concepts with the fewest number of primitives and the least amount of ambiguity, known as a minimalistMinimalist Upper Ontology upper ontology.

A title guaranteed to scare off just about everyone; if you’re not familiar with work on upper ontologies, the title is just opaque. If you are familiar, you’ll likely think that the combination of “minimalist” with “upper ontology” is an oxymoron. So, now that I’ve gotten rid of all my audience, I can probably say just about anything. And will. Let’s review our position here. For two systems to communicate they must commit to a common ontology. It doesn’t matter how elegant or clever your ontology is, if no one else shares it, you don’t participate in anything broader than your own ontology. Given that there are three main positions:

  • Wait until you want to integrate, and then build a bridge ontology. This works, but is numerically exhaustive if you have a lot of other ontologies to link to.
  • Integrate on a topic by topic basis. Use a set of special purpose ontologies to link up. This is a reasonable strategy and works for a lot of things (geography for instance).
  • Commit to an upper ontology early. If you commit to a very broad upper ontology, you are conceptually linked to anyone else who does.

For some that third strategy is very appealing. And there are some options to choose from here, most notably Cyc and SUMO. But, there is also a dark side. Any time you commit to an ontology, you agree to be bound by all the assertions made in that ontology. If nothing else, you need to review them, understand them, and determine whether committing to them will cause problems.

As a result, the most popular shared ontologies to date have been narrow scope upper ontologies, such as Dublin Core for documents, FoaF for contact lists and interests, and RSS for news feeds. What they all share is a small set of concepts, and relatively few constraints. I have postulated, built and will present what I call a “minimalist upper ontology” called, Gist. Gist is very broad in scope, comparable to the large upper ontologies (in this case I am trying to cover commercial information systems, so most of the corporate and government systems, but not games, compilers, embedded or scientific systems). But I have tried to mimic the size of the more popular ontologies: there are about 50 concepts in this ontology.

I believe there are immediate benefits for projects adopting it just to remove ambiguity from their definitions. But longer term I think it sets a basis for much broader scale cooperation. I think I’m on to something here. And it will only be of value if it is shared. The Gist ontology is available for free download at https://www.semanticarts.com/gist/

 

Necessary and Sufficient

What’s the real difference between necessary and sufficient?

We just completed another training class, and like they say, “no one learns more than the instructor.” In this case the blindingly obvious and yet elusive pattern that revealed itself was the separation of the sufficient from the necessary. Until last week, while we had an intellectual understanding of the distinction between “necessary” and “necessary and sufficient” (and a very tenuous grip on sufficient but not necessarily necessary), we weren’t using the distinction consistently in our designs.

In the course of discussion, prompted by some questions in the class and elaborated in the bar (thank god for cocktail napkins) we were able to tease out the patterns of “sufficient” (technically a superclass of a restriction) from necessary (a subclass of a restriction), and to line them up with some design patterns. “Sufficient” is essentially the “rule in” pattern. For instance, having a child who is a human is sufficient to make you a human. But of course it is not necessary. Having a biologicalMother who is an animal is necessary as a Person, but not sufficient. I’m going back to gist and factoring out the necessary from the sufficient.

Written by Dave McComb

Time Zones

Reflections on low-level ontology primitives.

We had a workshop last week on gist (our minimalist upper ontology). As part of the aftermath, I decided to get a bit more rigorous about some of the lowest level primitives. One of the basic ideas about gist is that you may not be able to express every distinction you might want to make, but at least what you do exchange through gist will be understood and unambiguous. In the previous version of gist I had some low level concepts, like distance, which was a subtype of magnitude. And there was a class distanceUnit which was a subclass of unitOfMeasure. And unit of measure has a property that points to conversion factor (i.e., how to convert from one unit of measure to the base unit of that “dimension”). But what occurred to me just after the workshop is that two applications or two organizations communicating through gist could still create problems by just picking a different base (i.e., if one said their base for distance was a meter and another a foot, they have a problem).

This was pretty easily solved by going to NIST, and getting the best thinking on what these dimensions should be and what the base unit of each dimension should be. Looking at it, I don’t think there ought to be much problem with people adopting these. Emboldened, I thought I would do the same for time.

For starters, universal time seems to the way to go. However, many applications record time in local time so we need some facility to recognize that and provide an offset. Here’s where the problem came in and maybe you dear readers can help. After about an hour of searching the web the best I could find for a standard in this area is something called the tz database. While you can look up various cities, I didn’t see anything definitive on what the geographical regions are that make up each of the time zones. To make things worse, the abbreviations for time zones are not unique, for instance, there is an EST in North America and one in Australia. If anyone has a thought in this area, I’m all ears.

Semantisize

Semantic technology resources

I was alerted to this site: www.semantisize.com from a comment. It’s pretty cool. You can while away a lot of time on this site which is rounding up lots of podcasts, videos, etc., all related to Semantic Technology. I got a kick out of a video of Eric Schmidt taking a question from the floor on “What is Web 3.0?” Schmidt’s answer: “I think you [the questioner] just made it up.”