Let’s start by talking about what I mean by that. I don’t think that ‘SDLC’ is the right term to describe the space that I want to talk about, but it is a term that people are familiar with, so I think it makes a reasonable place to start. There are a lot of other terms that cover this space: governance, SDLC, development, version control, continuous integration, binary management, continuous inspection, continuous delivery, automation, virtualization, configuration management, devops, integration testing, and so on.
Also, by ‘SOA’ I really mean the broader set of technologies that we use to build ‘SOA Applications’ – whatever they are, and they are more than just composites. Real applications have many components, e.g. user interface, integration, mediation, rules, code, processes, forms, service definitions, canonical data and service models, and so on.
I don’t know about you, but I can’t think up a nice concise way to say that I mean all of those things across all of those technologies, so I am just going to call it ‘SOA Development and Delivery’ and I hope you will know what I mean.
Recently, I conducted a survey, and I have spoken individually with many folks from all around the world, about how they do SOA Development and Delivery today, and how they hope to do it in the future. I think it would be fair to say that most SOA development today is not yet ‘industrialized’ – by that I mean that it is done by people of varying skill levels, working on a best effort basis, doing what they think is the right thing to do, and doing it the way they think is right.
By ‘industrialization’ I mean the development of standards, methods, processes, tools, and best practices, and the widespread automation of common tasks. Doing the right thing, and doing it the right way.
I think that we stand of the verge of a point of inflection in our industry where we will see SOA development and delivery become industrialized.
My feeling is that today, if I can generalize, that in terms of SOA development, people:
The effect of all of this is that:
Pain all around – architects and project managers planning, developers and build engineers building, operations running, and of course the poor business customer who has to use the thing! Projects are delivered late, over budget, and erode the confidence of the business in the whole SOA promise and approach. So naturally, I asked myself, why is this the case? Well I think there are a number of contributing factors here:
Conversely, it does not take a lot of time on Google to find a whole bunch of people who are interested in these areas and are clearly experimenting, prototyping, and sharing their experiences. And talking with folks who are actively engaged in SOA development, the clear, consistent message I hear is that all of this stuff is ‘really important stuff’ and we, as an industry, need it. It is also not hard to find consulting firms around the world that are developing capabilities and offerings in this space too.
Over a series of posts, I plan to share some thoughts and experiences on a range of topics, taken from those above, and also to share some practical examples of how to apply some of the state of the art tools and techniques from Java development to SOA development. In particular, specifically in the context of SOA/MDS/BPM/OSB/ADF, I want to talk about:
And I am planning to talk about tools like Subversion/git/gitlab, Maven, Hudson, Archiva/Artifactory, Sonar, Chef and many others.
I hope you join me on this journey, and please let me know your thoughts.