by Dave Linthicum

SOA Project Staffing Plan…Here are some Rough Guidelines

analysis
Jan 31, 20075 mins

A few of my clients are now looking to staff their first inroads into SOA, their first project where something actually happens beyond the investigation. So...how many people are needed on the project? Who are they? What are their roles? Here are some rough guidelines based on my experience thus far. The Who (not the band) You're going to need an eclectic array of skills to do SOA right, including: Project leade

A few of my clients are now looking to staff their first inroads into SOA, their first project where something actually happens beyond the investigation. So…how many people are needed on the project? Who are they? What are their roles? Here are some rough guidelines based on my experience thus far.

The Who (not the band)

You’re going to need an eclectic array of skills to do SOA right, including:

Project leader/Architect

Data specialist

Security specialist

Native systems specialist

Service development specialist

BPM/Orchestration specialist

Governance specialists

Testing and deployment specialist

Project archivists

External services specialists

Note: The technology analysis and selection role is innate to all of the above.

The What

While many of the above titles are self explanatory, it does help to define them in a bit more detail. Indeed, roles within the creation of a SOA could be a bit confusing, and the dynamics of a SOA team still needs some understanding.

The project leader/architect, is the person responsible for the delivery of SOA, on time, on budget, and meeting the objectives outline when the investment was made. Typically, this is an IT project manager with an understanding of SOA, but in smaller organizations this could be the enterprise architect or even the CIO.

Data specialists are responsible for all data related analysis, design, and deployment. Typically they have an understanding of all native data layers within the problem domain, as well as metadata, data design (logical and physical), including middleware and data abstraction layers. They also have knowledge of how data is bound to services, and work closely with the service developers.

Security specialists make sure that the security that goes into the SOA is thought about at each stage of the process. SOA security, typically identity management, needs to be systemic, and not an afterthought and a plan must be created and implemented during the project.

Native systems specialists are experts in the native systems that exist in the problem domain. In other words understand the operating systems, hardware, as well as application and networking interfaces. They can do performance tuning, and some light development.

Service development specialists build services using service development tools, and have an understanding of how these services link back to the data layer(s) and link forward to the orchestrations or processes. They are high-end developers, really, who understand how to design, build, test, and deploy services.

BPM/Orchestration specialists are those that both understand the processes as well as automate them within an orchestration layer, such as BPEL tool, or process integration engine. These people need to understand both logical process designs, as well as how to deal with processes yet to be automated, workflow, and implementation or the solution to the process problem.

Governance specialists are just that. They figure out the role governance plays within a SOA, the right technology for the job, and how to implement it in the course of the project. In some instances the use of governance is contraindicated, so you have to be careful here.

Testing and deployment specialist are people who responsible for the development of a formal test plan for the SOA, and test each layer/component to make sure that it’s rock solid and ready for production.

Project archivists is a person responsible for keeping track of the various design artifact that pop out of these projects, including: business requirements, application semantic documentation (metadata), services analysis and design documentation, process analysis and design documentation, test planning, etc. This makes it easy for others on SOA projects in the future to learn for the successes and mistakes of others.

External services specialists are people who look outside of the firewall to meet the services needs of the SOA. This means looking at SaaS providers, and other services you don’t own, as potential solutions/components within the SOA (enterprise mashups).

How Many?

Your mileage may vary a lot, and my numbers are for a typical project, but here are some initial findings. By the way, my assumptions are: a dozen systems in the problem domain, each having a separate data layers, and are collocated physically. As well as I’m assuming medium complexity for a SOA, reasonable budget, and availability of training and outside consultants.

Project leader/Architect – Typically 1 for the project.

Data specialists – .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.

Hope this helps. As new data points and experiences become available, I’ll let you know.