I have started writing a series of articles about SOA Project Overview – Building Composites – Part 1 3 months ago , unfortunately, one article only was released since then . The reason for this: I was extremely busy in the last 3 months on very challenging and interesting SOA Project. Hopefully, all recent activities will help to deliver a better content to you and to understand what is going on in the real life implementations.
In this article I am not going to speak about the theory only but will also provide you with real life examples from the projects that I was involved in including my last SOA project where I acted as Development Manager and Lead architect. This article will focus on the roles and skills required for building Composite Applications and also provide you with some overview of how I see the role of Enterprise Architect, Business Process Experts and Developers in Enterprise SOA Driven Projects.
One of the first and most challenging steps in your SOA Project is to build the project team with required resources and skill; you need to identify who is involved in the SOA project. SAP can provide you with Platform, applications on top of this platform; various development tools for building Composite Applications but we still need people intervention in order to make the process working. Less and less people intervention required in order to make it working but let’s leave it to the separate discussion.
More and more organizations are interesting in building their SOA roadmap and moving forward into the implementation phase. At the end of the day, this is what makes their business more competitive and agile. Unfortunately, most companies do not have enough skills yet in order to move forward with their SOA vision and most of them think that a lot time required to up-skill and train the people. To appropriately structure an SOA Project, you need to consider that these roles might need to evolve to match the SOA concept or even create some new roles that did not exist before. I personally believe that this process can be done quite easily if you select the right approach and strategy. For example: more and more tools have been developed to be code-free but more business oriented, very easy to learn and use. Java/ABAP/.Net … skills can be reused in SOA projects but they should follow the SOA guidelines and also learn some tools as well….
We can talk about many different roles during project implementation but in this article I will classify all roles into four categories: Business Process Experts, Architects, Developers and Integrators. I apologize for not listing all the roles involved so please dont take it personal if you will not see your role in the list below, it should probably fit into one of the categories below. I will talk about 5 main categories in order to make it easier to understand:
- Enterprise Architects – Lead on enterprise level , strategize.
- Business Process Experts – Process Flow modeling and development, designing UI Process and developing process oriented UI screen.
- Solution Architects – Translating Business Process into Technical Process , Development Management , UI definition, Design and Architecture (Enterprise Services , Business Objects ), Connectivity , Infrastructure.
- Developers – Services enablement, UI development, Business logic development (at the back ends) and Business Objects development.
- Integrators – Security, Basis, Systems Integration, Platform installation and Configuration, Solutions Installation and Configuration
In some cases it is very difficult to draw the line where the responsibilities of one role ends and another begins (e.g. should Business Process Expert develop CAF GP process or it should be done by the developers…)
Roles Definition in SOA Project
I would define the role of Enterprise Architect as a person who has broad view on the organization and technology, infrastructure, processes in this organization. Their job is to keep the business and its IT systems in alignment. This role does not only include technical and technology topics (development processes, applications, security …) but also the business perspective (business processes). He is the person who knows to identify the current pain points, investigate and choose the best solution for different issues and define future vision of the organization (from IT point of view). The bigger the organization, the more people are needed to support the Enterprise Architect in executing on his broad scope of tasks. Finally, the work of Enterprise Architect can be summarized in 4 simple words: lead, investigate, strategize, and align.
As you can understand from “Business Process Expert” name, he is obviously the person that has to understand how the current business processes work in the organization and he must be able to model a new business process in order to solve business challenges. He is doing it by interviewing various people in the organization across different lines of business in order to get a good understanding the main pain points that should be solved.
I do not think that the same BPEx can cover all industries (there is no “one size fits all”). If we take automotive and oil & gas industries as example, there are a lot of business processes in these two industries that totally differs from each other.
The main role of business process expert is not only to review and model business processes during “Process Modeling” phase but also to make sure that services orchestration is done accordingly to the model that was designed at the first step. Since the orchestration task is more technical (can be done by using ccBPM or CAF), it can be done either by the technical person or by the BPEx himself (in case that organization is not big enough for distributing the tasks among different people). Finally, the work of BPEx can be summarized in 4 simple words: Investigate, model and build processes.
Solution Architectis a technical lead (development manager in some cases) of the project; he is responsible for translating the business process and its requirement into the technical architecture and design. I highly recommend for this person to have experience with different platforms, different technical problems, skill domains and very good knowledge in new technologies and solutions – this is very important for SOA architect. This person ensures that exposed services match the requirements for evolution and reusability as defined in the general guidelines for the enterprise IT development. He delivers a solution design outline, high- and low-level design abstractions and service-oriented analysis and design.
Services typically are technologically lightweight and simple; this is part of their power. Since Solution Architect has a broad view on an overall picture, he is the key person in defining an Enterprise Services Meta data; this is one of the keys for the success of your project. Once the Meta data (enterprise services interfaces) have been defined, both UI developers, web services developers and process developers can start their development in parallel.
I think that Developers role is most clear and well defined during the project implementation they should simply develop – implement Web Services / Enterprise Services, UI development and Business Objects development. UI development can be done by both developers and BPExes. Developers should develop UI that requires code writing and development skills while BPExes (= Business Analysts in some cases) should use existing tools which does not require code writing but process knowledge only.
The Integrator is responsible for performing regular maintenance, and providing overall system management during the project.
Example: Skills Required for Building Composite Application
Here is the real life project example describing the skills required for building Composite Application with medium level of complexity:
|Business Process Expert||Full understanding of the organizational business process and its pain points. Defining the Business, Process and Technology requirements.|
|Solution Architect / Development Manager||Ability to translate High Level Business Process into technical Design and define the architecture. Full understanding of all the components in the system landscape. Extensive understanding of enterprise SOA and process for Composites. Monitor the development and find workarounds and innovative solutions.|
|Process: Knowledge of CAF GP, UI creation (optional), VC, portal content creation (with templates), ARIS.|
|Services & Business Logic: CAF Core, WebDynpro for Java, connectivity to the backends, Java, ABAP, know the list of Enterprise Service being delivered by SAP.|
|Application Expert||Application Knowledge (e.g. BW,CRM,SRM …).|
|Basis||System Configuration, Installation and Fine-tuning -Web Application Server, Portal and Applications (e.g. BW, CRM, SRM…).|
In this article I tried to speak as less as possible about the tools required for all this people in order to build the composite application, this is the topic for the next article so stay tuned!!!!…..