Monday, March 8, 2010

Hybrid skills in a functional role: "How does this program work"?

As I've posted previously, in most cases it's possible to determine how a standard program works. The program will be documented, there will be standard reports to check before & after states, plenty of information on metalink & other Oracle resource sites.

Re-use of customizations is a different matter though. With the best will in the world, it is impossible to capture everything in a functional design document. So, if you think a customization might be re-usable for your purpose, how can you find out for sure? What fields are required for this customization to work?

All of the answers are there for you, if you can use technical skills to read the code.

Hybrid skills in a functional role: "What If"

Information on use of standard functionality is available in the various resources available. It is (mostly) possible to determine what will happen if you update a standard data field. If you're not sure, its also relatively straight-forward to test this; all you need is a test environment and an appropriate data set.

It gets more difficult to answer "What If" where you are depending on customizations. If I made assumptions that turn out to be invalid, what will happen. Will my customization operate as expected if something changes?

To run an entire test set very time this arises can be very time-consuming, but you can speculate with accuracy, if you can use technical skills to read the code. This allows the functional consultant to make a "best guess" on what will happen if the value in a data field changes. The answer could be "Nothing changes", "this doesn't work anymore", or somewhere in between.

Hybrid skills in a functional role: Data Analysis

How often have you been asked to analyze an issue along the lines of "How often has this happened in the past?". For instance, "How many times has the original sales order number not been recorded on a Return?" or "How often has a customer address been entered without an email address?"

We know that the standard reports are useful only as a starting point when a question like this arises. These reports are written with the user in mind, wont have all the display fields you need and be difficult to import into Excel.

If you can write an SQL query you can analyze detailed scenarios, display all the data you need, analyze in Excel & answer the question at hand. Cross-checking against standard reports validates your analysis.

Hybrid skills in a functional role: Customizations

Customizations represent a significant risk to delivery of the design. A functional consultant has a face-to-face meeting/conference call where he hopes to communicate the reason for the design, and checks the understanding of the technical consultant.

These are the risks from a functional perspective:

How do I know that the technical consultant understands what I want?
How do I make sure the customization will choose the correct data set & update the appropriate data fields?
Have I explained the design so that its fully understood?
Have I recorded enough information in the functional design document?

An appreciation of technical knowledge mitigates these risks to a large degree. The functional consultant can indicate how to select the appropriate data set, what fields to update, and how to report on the outcome.

If necessary, the functional consultant can get involved in unit testing so that later testing phases are smoother, and the overall delivery time for the customization is shortened.

Using hybrid skills in a functional role

Hybrid skills can be very useful in a functional role. Most functional consultants will have some technical skills, here are some areas where I have found technical skills useful.

Delivery of customizations;
Analysis of Data/Historical trends;
The "What If" scenario;
How does this program work?;
Delivery of Conversions.

Thursday, February 25, 2010

The answer: Hybrid Consultants

The best method of reducing the risk of the functional/technical divide is the Hybrid consultant.

A Hybrid Consultant has experience of both functional and technical roles, and appreciates the different points of view and mindsets associated with each role. Their experience in both role types allows them to streamline the delivery of customizations, foresee problems when they exist.

A Hybrid consultant operating in a functional role can get closely involved in unit testing, ensuring the technical consultant understands the design correctly, and preventing issues occurring during later testing phases.

A Hybrid consultant operating in a technical role acts as a safety net for any design issues the functional consultant may have missed. Their ability to understand the functional aspects of the design results in more accurate unit testing, and greater accuracy in later testing phases.

Managing the Functional/Technical Divide

From a project management perspective, this divide creates a risk to the delivery of every customization, that is difficult to quantify until the testing phase. Discovery of major issues at this point in the project can significantly increase the risk of delays.

Once a problem has been identified, how can it be diagnosed? If a problem occurs, is it a problem with the functional design, or the technical interpretation of that design? How do you tell the difference? In most cases, either team will see the issue from their point of view, so how do we resolve the issue?