A formula for staffing SOA projects

A moderately complex SOA project should have at least 17 professionals involved.
Written by Joe McKendrick, Contributing Writer

Back in November, Dave Linthicum provided a sorely needed formula for measuring the cost of an SOA project. Now, he has worked up some numbers, based on client experiences, on how much staffing should be dedicated to the SOA effort.

Dave offers the following guidelines for staffing a typical project, based on an SOA with "medium complexity":

Project leader/Architect - Typically 1 for the project.

Data specialists - 0.5 per data layer. Meaning, if you have 12 different databases or applications, you need 6.

Security specialists - 2 per project. One who understand the existing security, and one who understands the special security requirements of SOA.

Native systems specialists - 1 for each type of system. Meaning if you have a mainframe, Unix, and Windows NT, you'll need at least 3.

Service development specialists - 1 for every 100 services to be deployed. Typically you're going to do a 1000 in a project that big, thus figure on 10 services development specialist. Yes, I said 10.

BPM/Orchestration specialists - 4 per project. One who understands and documents existing services, one to document new services, and two to build the services into the orchestration layer.

Governance specialists - 1 per project

Testing and deployment specialists - 4 per project. One to write the plan, and 3 to execute on it.

Project archivists - 1 per project.

External services specialists - 1 per project.

Here's a recap of Dave's guidelines on estimating the cost of a SOA architecture project:

Cost of SOA = (Cost of Data Complexity + Cost of Service Complexity + Cost of Process Complexity + Enabling Technology Solution) 

How do you measure the cost of complexity? Here's how Dave says the calculation is done, for example, to arrive at the first variable, the cost of data complexity:

Cost of Data Complexity = (((Number of Data Elements) x Complexity of the Data Storage Technology) x Labor Units))

  • The "Number of Data Elements" is the number of semantics you're tracking in your domain, new or derived.
  • Express the "Complexity of the Data Storage Technology" as a decimal between 0 and 1. (For instance, Relational is a .3, Object-Oriented is a .6, and ISAM is a .8.)
  • "Labor Unit" is the amount of money it takes to understand and refine one data element. Dave said this could equal $100, for example.

As an example, you could arrive at a solution such as this:

Cost of Data Complexity = (((3,000) x .5) x $100) This equals $150,000 for this portion of your SOA costs.

The next step is to apply the same formulas to determine the costs of other variables, including Cost of Service Complexity, Cost of Process Complexity, and Enabling Technology Solution (which should be straightforward).

Once you arrive at your Cost of SOA, Dave advises figuring in "10 to 20 percent variations in cost for the simple reason that we've not walked down this road before." 

Editorial standards