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?

The Functional/Technical divide (Contd.)

A further complication is the geographical spread between functional and technical teams, and the trend towards offshore technical teams.

It is difficult to communicate complex issues between two people with different backgrounds, where the functional consultant sees things from a users perspective, and the technical consultant sees things with a development mindset.

When you also realize all of the communication has to take place by email and over the telephone, this makes it impossible that the process will be without problems.

Incidentally, this is neither the fault of the functional or the technical consultant, but it is a complicating factor and is responsible for mis-interpretations and corresponding delays.

The problem with the "Functional/Technical Divide"

The problem with this sub-grouping of experience is that typically consultants have experience in only one of the above areas.

A functional consultant may be aware of the technical aspects of Oracle Apps but will he be able to communicate the requirement exactly?

A technical consultant will have some experience of functional issues but will they fully understand based on the functional design documents?

This risk is greatest when designing or modifying existing customizations. Delivery of successful customizations is the one of the biggest challenges facing an Oracle E-Business implementation project.

Close co-operation and accurate design documents are critical in communicating the requirement between functional and technical consultants. Even with the best intentions, it is in my experience impossible to capture complex requirements in a functional design document.

Do do the roles crossover at all?

At a high level, the functional consultant designs the solution, and creates a design document. The technical consultant then uses that design document, discusses & reviews, and creates the technical solution.

Due to the backgrounds of the technical and functional consultants though, there is a fundamental difference in the way they approach problems, record information, make assumptions and deliver solutions.

I call this the "Functional/Technical Divide".

What role does a DBA perform?

A Database Administrator(DBA) maintains the Oracle system for use by the business & project implementation teams. For a project implementation, multiple copies of the "Live" system will be created & maintained.

What does a technical consultant do?

An Oracle E-Business technical consultant will typically perform some of the following tasks

Assess functional design documents to determine feasibility of technical solutions;
Examine candidate technical solutions for feasibility;
Work with functional consultants around these technical solutions;
Design & document the technical solutions;
Testing the technical solution to match the functional design documents;
Delivery of the technical solution through the testing phases;
Post Go-Live support of the technical solution;
Handover of the technical solutions to BAU team

What does a functional consultant do?

An Oracle E-Business functional consultant will typically perform some/all of the following tasks, depending the project

Gathering business requirements
Comparing requirements to the standard features of the Oracle EBS;
Analyzing the differences and recommending customized solutions to fill the gaps;
Writing functional design documents to facilitate customized, technical solutions;
Testing the solution to match business requirements;
Delivery of the solution through project phases;
Change Management;
Post Go-Live project support;

Can you explain a little further?

An Oracle E-Business consultant will often be the subject matter expert on the project team, and their experience can be grouped in one or more of the following areas

Functional Consultants
Technical Consultants
DBA's

Please see following posts which define the above three types of Oracle E-Business consultant

So where do Oracle E-Business consultants work?

When a client decides to implement part of the Oracle E-Business suite, a primary decision is how to resource the project team.

Three choices are;

1 recruit internally,
2 hire a consultancy firm,
3 hire independent Oracle E-Business consultants,
4 a combination of the above three options.

Due to the nature of Oracle projects and the variety of skills required for success, a combination of the above is a common choice.

Internal staff will typically be placed in management roles to represent the business. Consultancy firm staff should provide experience of project implementations.
Independent Oracle E-Business consultants are the subject matter experts, with experience of implementing Oracle in various companies/industry sectors.

What is an Oracle E-Business Consultant?

Oracle E-Business consultant assist clients in designing, implementing, using & maintaining their Oracle E-Business ERP systems.

According to Wikipedia, an ERP system is "a system that is used to manage and coordinate all the resources, information, and functions of a business".

A company will install some of the Oracle E-Business suite of programs to manage its business.