Posts Tagged ‘development’

OLAP Data Cube User Acceptance Tips – Keep It Simple, Your End Users Will Appreciate It

Monday, December 17th, 2007

Original article publish on EzineArticles.com on 12/07/2007, http://EzineArticles.com/?id=866694

Data storage for OLAP (online analytical processing) takes the form of data cubes. These are specialized databases of hierarchical data. The real art in creating successful cubes is the acceptance of the end user. Crazy complex cubes may be the triumph of genius data gurus. But if no one uses the end product, the OLAP implementation is not successful. The key to remember: keep it simple, Sally!

We won’t go into all the details of creating data cubes, but we’ll step through a few tips to help ease the pain for the end user. These tips assume a basic knowledge of cube design, and are general enough to be applied to any of the commercial OLAP engines, such as MS Analysis Services, Cognos BI, etc.

  1. Create a few basic Measures. Measures are the target numeric fields that get aggregated, for example: revenue, expenses, and margins. Two rules of thumb here. First, keep the number of measures manageable. Around six is ideal. This is not for the developer’s ease, but for the end user. Too many measures create too many choices to ponder. There are cubes out there with dozens of measures. But few people know that because few end users bother to access those behemoths.Second, keep the aggregates to the basic functions of sums, averages, counts, and so on. Unless you truly need more complex statistical functions, most end users will glaze over such details. Again, keep the business client in mind. Often they are new to OLAP and are perplexed by nature of slicing and dicing data in a cube.
  2. Create only a few Dimensions. Just as with measures, the amount of dimensions should be kept to a manageable level. Four to six dimensions are ideal. Dimensions are the description fields organized in hierarchies that describe the numeric measures. A date dimension could start with a year as the highest level; the next level could be months, then days. Another dimension could be by location, starting at the top with the entire country, and drilling down to states, then cities.Dimensions are used to filter the cube data and also to slice and dice the data. Slicing and dicing is the terminology of pivoting columns and rows of data in a grid matrix. Too many dimensions can be very confusing to the end user. Often, many dimensions do not fit entirely on the screens of OLAP software tools. Unsuspected query results occur when the users do not realize some dimensions are still set as filters. It may sound trivial, but if you ever tried to use a cube with twenty dimensions you would experience sure brain overload.
  3. Create single subject, shallow Dimensions. Nothing adds more to a failed OLAP implementation than users who do not grasp the concepts. Dimensional data can be configured to contain any descriptive item at each level in the hierarchy. Don’t do it. Maintain the same subject for each dimension. A user can understand an organizational chart of company divisions, departments, and employees. A product hierarchy should only contain the product categories and groupings.This sounds like common sense, but can often be at odds with the project owners requesting the data cubes. Often is heard, “we always drill down our data from region, to salesperson, to product code.” The temptation is to create a dimension with exactly such levels; region, salesperson, product. But by creating such a dimension, that cube is forever limited to that drill down. When these different subjects are in separate dimensions, the cube is more flexible. And, the same drill down request is still possible.Also, avoid dimensions with excessive levels. Drilling down ten or fifteen levels is cumbersome and another pitfall to user acceptance. Three to four levels deep into a dimension’s hierarchy is ideal.
  4. Create multiple smaller cubes for different audiences. Just because you can create a huge data cube to accommodate every possible scenario, doesn’t mean you should. Best to create separate cubes, each with the short list of dimensions and measures, tailored to the specific audience. As with the other above tips, a simple uncluttered cube is much easier to consume.In a number of OLAP tools, virtual cubes (subsets of original cubes) can be created. This feature takes the advantage of dissecting large complicated cubes into manageable parts. Each virtual cube appears to the user as a regular cube. This feature is often overlooked, but can reduce the development time creating many cubes. Just remember to restrict access to the main data cube to only the most experienced OLAP analyzers.

The theme here is obvious. End users will not easily adopt to complicated and extremely detailed data cubes. OLAP software can be very expensive and success is measured by the significant value gained from that investment. Creating data cubes people will actually use is the first step to that success.

Software Developers Always Say Yes – Why And When You Should Let Them

Tuesday, October 23rd, 2007

Original article publish on EzineArticles.com on 10/23/2007, http://ezinearticles.com/?id=793260

Whether your career lies in the I.T. department, or on the business side; we’ve all seen the scenario play out. Salesman A gets asked a question by a potential customer, “can your software do this?”

“I’ll have to check and get back with you,” replies the dutiful salesman. Later that day, Salesman A goes through the software documentation to realize he already knows the answer to his question. No, the software can’t do this. But if it could, the customer would buy the product. The salesman knows he is supposed to bring new product ideas to the company Product Analyst… at the next monthly product meeting. With some luck, the new idea can get added on “The List” of future enhancements. Getting on The List of shuffling priorities, pencil whipped ROIs, and silly nice-to-haves is a major accomplishment of corporate politics itself. But the smart salesman knows his chances are doomed to make the sale.

Developer B walks by the office of our salesman. The developer has just filled up his water bottle of God-knows-how-many-years. “Don’t look at that nasty water bottle,” thinks the salesman to himself. “Hey,” he yells into the hallway, “I have a quick question.”

“Man, I know better than to walk through Sales,” Developer B thinks to himself. And then out loud, “Hey sure, what is it.”

The sales pitch begins by Salesman A, “we have this customer…” And the developer actually hears, “yada, yada, yada, revenue, revenue, revenue.” Until the end, he hears the meat of the tech question, “can the software do this.”

Everyone knows the software can’t do this, but the developer assumes the question really is, “can you make the software do this?” Now comes the three possible answers as heard by the salesman.

  1. “Yes, no problem, yada, yada, yada, in 5 minutes.”
  2. “Yes, … (long pause) … no problem, yada, yada, yada, it may take a while.”
  3. “Yes, but… (even longer pause) … yada, yada, yada, it may change things.”

“Oh, cool,” replies the salesman, “that will be great news for our customer.” The boiled down answer to the customer, you guessed it, a single plain, “Yes, we can do that.”

The Homer Simpson “Doh” rings in the developer’s head. “What have I done, now I’ll have to create this,” the developer mentally adds these items to his to-do list.

So, what’s wrong with this picture? There is that nasty water bottle! Bypassing company product enhancement procedures is a breakdown of policy. And finally, subverting the software development life cycle (SDLC if you insist on industry acronyms) is another breakdown of policy. So, why did Developer B say yes?

Developers, programmers, software engineers, or just plain propeller-heads are a curious bunch, to say the least. The Yes answer is purely a response to the challenge of creating something new. We all have aspects of our jobs that require creativity, but a developer’s number one job is to creatively write code, to create a set of step-by-step instructions for our computers to follow.

The funny thing about computer code is there are often dozens of ways to accomplish the same results. Sometimes more. Each and every day, a developer’s job to create code is a puzzle of choosing the simplest and fastest set of instructions. Computer code can be a work of art, or a mess of spaghetti. It’s their world, just let them have it.

Asking a developer directly for a product enhancement can truly spark the creative juices. Any change in code comes with the consequences of affecting (read crash-and-burn) another set of code within the application. Sometimes, the challenge is just being able to make a seemingly smallest change without affecting anything else. It’s the Jenga game of pulling out the single wood block without making the whole tower fall.

Responding Yes to this challenge does not regard business policies, return on investments, or even sometimes common sense. It’s just a literal answer to the perceived question, “can you make the software do this.” Any self-respecting computer geek can almost never answer the question, “No.”

Is it ok to let them answer Yes? [Project Managers and Product Analysts cover your ears.] Yes, of course it is! Creativity is never a bad thing. It’s the driving force behind innovation. Great ideas should never be held up in once-a-month committees of the paper-pushers. Remember the laws of relative motion? Even if you are standing still, and everyone else is moving forward; you are moving backwards from everyone else. And that’s not good for business.

When the answer is, “Yes, no problem,” let that five minute, or five hour change occur. If the answer is, “Yes, but…” Stop, read the worried look on the developer’s face, and interpret as “No.” Then proceed with company policy and send the request to the product committee.