SURVEY: Service Specification Usage

Question: What’s the difference between a Web Service, an API and an SOA Software Service?

Answer: The Web Service and the API are technical interfaces, that may or may not be well-formed services that comply with SOA principles of loose coupling, autonomy, encapsulation (of the service), reusability and composability. A well-formed Software Service will usually have some form of Service Specification that defines and governs the compliance with SOA principles.

From observation, the use of Service Specifications by architects and designers is highly variable. In our work at Everware-CBDI we have encouraged more formality of specification over many years in order to increase the quality of delivered services. We have done this by making templates,UML profiles and methodology guidance freely available. Today we are actively engaged in delivering automation methodology and tools at all stages of the delivery life cycle. We plan to deliver some specification capabilities on the same freely available basis. We are therefore interested to learn what others are doing and we are inviting participation in a survey to establish some independent data around how services are specified.
The survey is intended for architects, designers and project managers.
–  It should be very quick to complete; about 10 minutes.
–  Participation is anonymous. Just click here to commence
If you would like to get more involved, please:
     a.      Join the CBDI Forum LinkedIn Group and or
     b.      Register with the Everware-CBDI site
We will keep these groups up to date and of course publish results of the survey in due course.
————————————————————
Everware-CBDI Rich Service Specification:
Download the CBDI-SAE Rich Service Specification Template and view the Service Specification Reference Framework

Agile SOA in the Digital Economy

Are you and your enterprise a prisoner of the past? I don’t mean legacy applications and technologies, I mean today’s business processes and applications. I work with many different enterprises and what’s common to the great majority is the centrality of business processes and applications, and the difficulty in evolving these existing solutions.

Actually I am frequently amazed at the understanding of many business managers. I marvel at how they use the lingua franca of their applications to describe their business. I will readily admit that when I first meet someone like this it’s a bit scary, because their vocabulary is like a foreign language. But frequently I find that it’s also a foreign language to their colleagues and it represents a rather primitive form of power play! Believe me. And that vocabulary of course often pervades the business process also. But the even scarier thing is that these organizations don’t realize they are locked into yesterday; or looking in the rear view mirror is you prefer. And just like Fred Brooks mythical beasts, struggling against the grip of the tar pits [1], they will eventually be overwhelmed by the complexity and their inability to change. Yes they may be delivering Cloud based Web and mobile applications to their customers, but are they just adding to the inherent business complexity?

I observe smart, successful companies making major mistakes as they enter the digital economy. First they set up an eServices project or division. This is treated as an innovation center and separated from the core business, in order to get to market quickly. But of course when they get to market the new products don’t integrate with the core business. Sure there’s application and service integration, anyone can patch old and new together at that level; but what about the way the business works; the business model and the vocabulary used, the opportunities for channel switching, and the development of distinctive sales and customer support systems and internal and external company culture that transcends the technology channels. And the ability to evolve the old and new in a way that they complement each other?

This problem is visible in the decreasing agility of organizations. Many have adopted Agile development but, and I say this as a certified Scrum Master, how many Agile projects think about the vocabulary and integrated business model issue? Yes Agile projects generally deliver faster, better and cheaper, but are they basically adding to the size and eventual grip of the tar pit? Just getting there faster!

In the digital economy enterprises must turn themselves inside-out! Expose their core business capabilities as services through multiple, interconnected channels for internal and external use. Today’s SOA best practice is primarily inwards looking. What’s required is a new form of business model that details the new world from the customers’ perspective. And this needs to be reflected in the way the business operates internally also.

The new business model needs to be a radical departure from de facto practices in business architecture, enterprise architecture or business requirements. And it needs to be developed to govern Agile development projects. Key characteristics include:
– A service oriented business model that transcends business and IT.
– Understandable by all stakeholders
– Owned by the business.
– All enterprise capabilities are (eventually) published as externalized business services and supported by common software services
– Implementation independent models
– Developed as part of an Agile process – initial scoping sprint, followed by drill down modeling sprints by domain and or capability; delivering just sufficient detail to charter Agile delivery projects.

[1] The Mythical Man-Month, Fred Brooks, 1972

Agile SOA in the Digital Economy

Are you and your enterprise a prisoner of the past? I don’t mean legacy applications and technologies, I mean today’s business processes and applications. I work with many different enterprises and what’s common to the great majority is the centrality of business processes and applications, and the difficulty in evolving these existing solutions.

Actually I am frequently amazed at the understanding of many business managers. I marvel at how they use the lingua franca of their applications to describe their business. I will readily admit that when I first meet someone like this it’s a bit scary, because their vocabulary is like a foreign language. But frequently I find that it’s also a foreign language to their colleagues and it represents a rather primitive form of power play! Believe me. And that vocabulary of course often pervades the business process also. But the even scarier thing is that these organizations don’t realize they are locked into yesterday; or looking in the rear view mirror is you prefer. And just like Fred Brooks mythical beasts, struggling against the grip of the tar pits [1], they will eventually be overwhelmed by the complexity and their inability to change. Yes they may be delivering Cloud based Web and mobile applications to their customers, but are they just adding to the inherent business complexity?

I observe smart, successful companies making major mistakes as they enter the digital economy. First they set up an eServices project or division. This is treated as an innovation center and separated from the core business, in order to get to market quickly. But of course when they get to market the new products don’t integrate with the core business. Sure there’s application and service integration, anyone can patch old and new together at that level; but what about the way the business works; the business model and the vocabulary used, the opportunities for channel switching, and the development of distinctive sales and customer support systems and internal and external company culture that transcends the technology channels. And the ability to evolve the old and new in a way that they complement each other?

This problem is visible in the decreasing agility of organizations. Many have adopted Agile development but, and I say this as a certified Scrum Master, how many Agile projects think about the vocabulary and integrated business model issue? Yes Agile projects generally deliver faster, better and cheaper, but are they basically adding to the size and eventual grip of the tar pit? Just getting there faster!

In the digital economy enterprises must turn themselves inside-out! Expose their core business capabilities as services through multiple, interconnected channels for internal and external use. Today’s SOA best practice is primarily inwards looking. What’s required is a new form of business model that details the new world from the customers’ perspective. And this needs to be reflected in the way the business operates internally also.

The new business model needs to be a radical departure from de facto practices in business architecture, enterprise architecture or business requirements. And it needs to be developed to govern Agile development projects. Key characteristics include:
– A service oriented business model that transcends business and IT.
– Understandable by all stakeholders
– Owned by the business.
– All enterprise capabilities are (eventually) published as externalized business services and supported by common software services
– Implementation independent models
– Developed as part of an Agile process – initial scoping sprint, followed by drill down modeling sprints by domain and or capability; delivering just sufficient detail to charter Agile delivery projects.

[1] The Mythical Man-Month, Fred Brooks, 1972

SOA Knowledge Exchange, 1 day event, Bristol, 27th September 2013

About the event ******** SORRY, THIS EVENT IS NOW FULL  ********** We are holding a workshop in Bristol this month for Enterprise Architects, Technical Architects or those in similar roles at Universities in the UK. The general aim of the event is to gather and discuss the SOA roadmap strategies we are developing within our […]

Looking back on Year 2

As a follow on to my blog post that reflected on year 1 of EA at Bristol (http://enterprisearchitect.blogs.ilrt.org/2012/04/17/looking-back-on-the-first-year-of-my-ea-role-at-bristol/), here’s a summary of the top three key things I covered in year 2: Raising the profile of EA: a two-hour workshop with the Portfolio Executive (http://www.bris.ac.uk/planning/programmesandprojects/portfolioexecutive/). This senior decision-making group within the University were interested to […]

Looking back on Year 2

As a follow on to my blog post that reflected on year 1 of EA at Bristol (http://enterprisearchitect.blogs.bristol.ac.uk/2012/04/17/looking-back-on-the-first-year-of-my-ea-role-at-bristol/), here’s a summary of the top three key things I covered in year 2: Raising the profile of EA: a two-hour workshop with the Portfolio Executive (http://www.bris.ac.uk/planning/programmesandprojects/portfolioexecutive/). This senior decision-making group within the University were interested to […]

Placing Architecture Properly into Scrum Processes

As I’m about to complete my share of a longer engagement on using Lean principles to improve the processes at an online services firm, it occurred to me that the efforts we undertook to properly embed Architecture practices into their Scrum process were novel.  I haven’t seen much written about how to do this in practice, and I imagine others may benefit from understanding the key connection points as well.  Hence this post.

First off, let me be clear: Agile software development practices are not at all averse to software architecture.  But let’s be clear about what I mean by software architecture.  In an agile team, most decisions are left to the team itself.  The team has a fairly short period of time to add a very narrow feature (described as a user story) to a working base of code and demonstrate that the story works.  The notion of taking a couple of months and detailing out a document full of diagrams that explains the architecture of the system: pretty silly. 

The value of software architecture is that key decisions are made about the core infrastructure of the system itself: where will generalizations lie?  Will a layered paradigm be used, and if so, what are the responsibilities of each layer?  What modules will exist in each layer and why will they be created? How will the responsibilities of the system be divided up among the layers and components?  How will the modules be deployed at scale?  How will information flow among the modules and between the system and those around it?

The way these questions are answered will indicate what the architecture of the system is.  There are many choices here, and the “correctness” of any choice is a balance between competing demands: simplicity, security, cost, flexibility, availability, reliability, usability, correctness, and many more.  (These are called “System Quality Attributes”).  Balancing between the system quality attributes takes thought and careful planning.

So when does this happen in an agile process?

Let’s consider the architect’s thinking process a little.  In fact, let’s break the software architecture process into layers, so that we can divide up the architectural responsibility a little.  You have three layers of software architectural accountabilities.  (Repeat: I’m talking about Software Architecture, not Enterprise Architecture.  Please don’t be confused.  Nothing in this post is specific to the practice of Enterprise Architecture).  All this is illustrated in the diagram below.  (Click on the diagram to get something a little more readable. 

image

At the top, you have the Aligning processes of software architecture.  These processes consider the higher levels of enterprise architecture (specifically the business and information architecture) to create To-Be Software Models of the entire (or relevant) software ecosystem.  If you’ve ever seen a wall chart illustrating two dozen or more software systems with connectors illustrating things like flow of data or dependencies, you’ve seen a model of the type I’m referring to.  Creating and updating these kinds of diagrams is a quarterly or semi-annual process and reflects the gradual changes in the strategy of the enterprise. 

In the middle, you have the Balancing processes of software architecture.  These processes consider the needs of a single system but only from the level of deciding why the software will be divided up into modules, layers, and components, how that division of responsibility will occur, and what the resulting system will look like when deployed in specific technologies in a specific environment.  All of this can be conveyed in a fairly short document that is rich in diagrams with a small amount of text explaining the choices.  This occurs once when a system is moving forward, and the software architecture can be developed alongside the first couple of sprints as input to the third and subsequent sprints.

At the bottom, you have the Realization processes of software architecture.  This is where the architecture becomes software, and this is where decisions are made about the choice of specific design patterns, the appropriate level of configurability vs. simplicity, and the ability to demonstrate whether the actual intent of the architecture occurs in practice.  In agile, this layer occurs within the team itself.  The software architect can offer advice about what patterns to use, but it is up to the team to realize that advice and/or decide not to implement it.  The team will very likely implement the software architecture as described, but may choose to improve upon it.

What does the process look like

There are many visualizations of scrum running around.  Some are described in books, others in papers or blog posts.  Most share some common elements.  There is a product backlog that, through the magic of sprint planning, the team extracts a subset for the sprint.  This becomes the sprint backlog.  The illustrations then tend to show the various rhythms of Sprint as cycles (sprint cycles and daily cycles), ending with a demonstration and retrospective.

In order to illustrate and train a team on all elements, including the business analysis elements, we chose to be a bit more explicit about the steps PRIOR to sprint planning, including the processes of creating and improving the stories prior to the start of a sprint.  (as above, click on the image to enlarge it).

image

Astute observers will notice that we added a step that we are calling “pre-sprint story review.”  This is a meeting that occurs one week prior to the start of a sprint.  It is called by the product owner and he or she invites “senior chickens” (architects, user experience leads, development and test leads, and any other “non-team” members that want a say in the sprint. 

In that week prior to sprint planning, those folks, working with the product owner, can improve the stories, add constraints, refine the description and acceptance criteria.  And here’s where the architects get to play.  Architects fulfilling the role of “Balancing” in the model above will have (or can create) an outline document describing the architecture of the software system, and can “link” that document to the SPECIFIC STORIES that are impacted by that design. 

(Note: assuming you are using a tool like Microsoft’s Team Foundation Server, that fully enables Scrum in multiple forms, this is a nearly trivial activity since a document can be easily linked to any story.  Enough advertising.)

So is an architect a chicken or a pig?  Answer: depends on what “layer” the architecture is at.  The top two layers are chickens.  The third layer, realization, is done by the team itself.  The person on the team may or may not have the title of “designer”.  (I’d prefer that they did not, but that’s just because I believe that ALL team members should be trained to fulfill that role.  In reality, the skill may not be wide spread among team members).  Therefore, the third layer is done by the pigs. 

I hope this provides some insight into how a team can embed software architecture into their scrum cycles.  As always, I’m interested in any feedback you may wish to share.

The Interconnectedness of All Things

Cloud, SOA, Enterprise Mobility, Social Media/Enterprise/Business, The Internet of Things, Big Data (you name it) – each in its own way is part of an overall tendency. The general trend is for enterprises to become increasingly involved in increasingly broad ecosystems. … Continue reading

Beyond Big Data

The big bang that started The Open Group Conference in Newport Beach was, appropriately, a presentation related to astronomy. Chris Gerty gave a keynote on Big Data at NASA, where he is Deputy Program Manager of the Open Innovation Program. And that exploration – as is often the case with successful space missions – left us wondering what lies beyond. … Continue reading

Shared Vocabulary for Business Innovation and Modernization

Do you remember when computers were hard to use? In fact it’s just nine years since a GM press release asserted that if they developed technology like Microsoft, we would all be driving cars that for no reason at all, would crash twice a day, shut down and refuse to restart. Since then Apple has showed Microsoft the way, and we all use smart phones, tablets and PCs that are genuinely easy to use and remarkably resilient.

Because of this great leap forward in personal device usability the smart phone user on the proverbial Clapham Omnibus might reasonably expect that enterprise systems should be similarly easy to use and resilient. Unless of course she was a customer of the Royal Bank of Scotland (RBS), in which case she will have painful memories of last year’s high profile failure caused by the core banking system crash which corrupted tens of millions of accounts.

Once upon a time banks in general were regarded as leaders in the use of information technology. Yet last year several high profile systems failures signalled that banking systems, far from being leading edge, are in rapid decline. Banks aren’t the only culprits. Along with the banks, insurance companies, retailers and others are starting to offer their customers smart phone apps, notwithstanding that behind the scenes their enterprise systems are frequently held together with sticky tape and sealing wax.

The reason many enterprise systems are in such a poor state is commonly because there are three parties involved in managing the enterprise systems that have widely divergent goals and objectives. The line-of-business manager typically views the systems as support to the business process and a cost to be managed. The IT Architect views the enterprise systems as a set of capabilities that must be progressively modernized to support business innovation. The IT Project Manager is focused on delivering projects to time and cost.

These views are of course diametrically opposed. And under cost and time pressure the Architect is frequently the lower ranking player. In consequence the immediate needs of the business overrule longer term objectives of modernization, reduced complexity, flexibility and even cost of ownership.

The real issue is that the three parties do not have a shared view of the business problem. The line-of-business manager’s business process view does not correlate at all to the delivery project. The Architect should be the evangelist for business innovation and modernization but he or she is too easily squeezed in the cost and time discussion. And the Project Manager typically does not share the detailed technical project view with the line of business manager, and argues for a solution specific architecture that reduces project risk. The result is the existing enterprise systems get more complex and slower to respond to change. And the IT industry has been doing exactly this for as long as anyone can remember!

It’s extraordinary, but with all our high tech knowledge and skills we don’t have a vocabulary to articulate the business problem in a way that allows effective communications between the participants. Many IT organizations have embraced services as a way to organize systems capabilities more effectively. These might be Web Services or APIs or referred to collectively as Service Oriented Architecture (SOA). But, even if these software services are architected to align with business perspective, they are always managed as a technical matter, defined and managed by the IT organization.

Yet line-of-business managers do understand services as a business concept; virtually every business product today has a service component to it. The global service provider industry has formed around this idea, and in the UK today service industries account for 77 per cent of the economy. So while IT and business share the common underlying concept, at the practical level there is no meeting of minds.

In order to create a better bridge between business and IT we need to work with both the “how” and the “what” the business is, and we can do this by complementing business processes with business services. Business services are a very natural way to talk about “what” the business does today and tomorrow, while business processes focus on the “how”. Because you don’t reinvent an industry by just analyzing business processes, you also need to evolve and innovate with improved and new business services.

A good example of a service oriented business is Amazon.com Inc. They are well known as a service provider because they have constructed the Amazon enterprise as a set ofbusiness services which are offered to various external parties – enabling suppliers to sell second hand books or electronic goods on the Amazon platform; or providing data storage and Cloud computing services to other enterprises. The Amazon business services combine the compute and the business service integrating the commercial contracts, business processes, people, physical assets as well as the service interfaces that enable computer to computer or computer to device communications.
 

Using a common business and IT concept permits sensible analysis of whether a service is just a unit of cost, or what the strategic value is now and in the future, and what it adds to the business value chain. Given so many line-of-business managers are thoroughly familiar with the very high technology in their smart phones and other devices, it really is time for IT to treat the business as a mature partner and for the line-of-business manager to take real responsibility for the business service as a whole product.

Increasingly we see a convergence of IT and business organizations. The business service concept is an essential piece of vocabulary to focus on a business innovation and get everyone singing off the same hymn sheet to potentially huge advantage of the business. Just look at the Amazon example!

———————–
We will be running a workshop that explores these ideas in London in April in conjunction with the IASA UK Summit. If you can’t make the London event, (for geographic of schedule reasons) talk to me about how we can accommodate.

The Open Group Cloud Computing Work Group Web Jam on CIO Priorities

Recently, I shared my experience leading the first Web Jam within The Open Group Cloud Work Group. We are now gearing up to have another one of these sessions – this time around, the topic being CIO priorities as driven by Cloud Computing. Continue reading