Tuesday, June 29, 2010

New book on Patterns-Based Engineering



Two colleagues and friends of mine, Lee Ackerman and Celso Gonzalez have just announced the availability of their new book: “Patterns-Based Engineering: Successfully Delivering Solutions via Patterns”! Published by Addison-Wesley, the book is currently available in digital format with the hard cover edition shipping on July 2nd.

With Patterns-Based Engineering (PBE), we’ve focused on detailing how to succeed in delivering software via a disciplined, systematic and quantifiable approach that uses pattern specifications and pattern implementations. In doing so, we’ve focused on how to identify, create, manage and consume patterns – and to do so in a way that is agile, repeatable and scalable across an organization. To support adoption and integration of this approach into an organization we’ve delivered a PBE Practice and a set of PBE Patterns and Guidelines. The PBE Practice has been authored using Eclipse Process Framework Composer and can also be used with Rational Method Composer. This practice along with artifacts related to an in-depth case study are available for download from the book’s website at http://patternsbasedengineering.net/.

For more information on the book:


In the days and weeks ahead they will be publishing supporting articles, delivering webcasts and blogging on topics related to the book. Details will be posted on http://patternsbasedengineering.net/.

Saturday, March 27, 2010

Henry Ford on Facebook

If Henry Ford were alive today in the internet era of Facebook, Google and Twitter, the last thing he would do is startup another internet company. Instead he look to provide an organizing principle that would leverage and streamline business to catapult them into the next age of business development. Ford would look to streamline and enable collaborative business development to allow businesses to mass produce, in the internet environment, in the same way as he did with the assembly line for the automotive business at the start of the 20th century.

In 1913 Henry Ford caused a paradigm shift in the automotive business by leveraging the assembly line to streamline car manufacture. While Ford did not invent the assembly line, his sponsorship of its development and his use of it as an organizing principle to streamline manufacture, was central to its explosive success in the 20th century. Ford major contribution was not in the invention of anything new in terms of automotive manufacturing it was about providing an organizing principle that effectively and efficiently leveraged existing technologies in a value added manner.

Today we stand at another tipping point in terms of business evolution. After 20 years of breathtaking internet development, the internet has evolved from simple client server to collaborative social interactions. We have Amazon and eBay to buy stuff, PayPal to pay for stuff, Google to search for stuff, Twitter to tell people about stuff and Facebook to show off our stuff. These are some of the internet giants that have become household names, in the internet landscape of today. Yet impressive as these advances have been, without an organizing principle to allow business to leverage them in a collaborative and added value manner, they will remain a hodgepodge of technologies much like the automotive industry prior to the introduction of the assembly line.

A business centric organizing principle that aligns businesses to allow them to leverage and flexibly combine existing technologies and services will jetism business development into the 21th century. A business framework that will enable businesses to easily collaborate together, with their producers and consumers in a value add fashion, to enabling new business opportunities and strengthening existing ones. This business centric organizing principle is what is needed in today business landscape and will provide the kind of acceleration and enablement that Ford introduced with the assembly line.

Ford’s legacy lives with us today in every assemble line, in every business process and has being the very foundation and building blocks for business for the last 100 years. Today in a rapidly evolving business paradigm not only do we need a new business framework to organize and align business, we also need to think beyond the static and linear business processes and think more in terms of business activities that are achieved by mixing and matching business capabilities in a self optimizing network ecosystem.

A self optimizing ecosystem were business capabilities can be mixed and matched to dynamically realize business activities will allow businesses to become much agile in terms their reactions to new market opportunities and allow for the rapid evolution and realization of new business models.


Tuesday, July 14, 2009

Asset Intelligence Part 1

Introduction

A key tool in Engineering SOA solutions is the ability to leverage and enable existing assets. In the SOA world a broad categorization of these assets would be industry model assets, software patterns assets, legacy assets, etc. In a dW Rational Edge article last year, titled Enabling asset consumability, Celso Gonzalez and I discussed the problem of findability of assets, i.e. what are the right assets for the problem at hand?. We proposed that the problem of asset findability can be addressed by better understanding the context in which the assets are needed and then mapping that context to the relevant content or assets. Now that we have an asset that can assist in a certain context (e.g. a map when we are driving) how can we maximize the reuse of that asset (e.g. how do we make sure the map can be read). Better yet how can we automate consumption of an asset. To illustrate the complexity inherent in this goal, of automation of asset consumption, lets examine how Hollywood views this automation.

Over the next couple of blog enteries I will continue to examine the barrier to entry around enabling the consumption of assets. I will also look at a proposed solution to some of these problems by leveraging the ISO standard of topic maps and show how they can be used to represent and unite assets in different domains. I will also look to understand the types of assets used in application development and to understand the context in which these assets are used. Using this context as guide, we will propose a novel approach for suggesting the best asset to be used in a particular context to the end user.

The importance of assets

Ireland is the last country in Western Europe that is still throwing roads at a traffic congestion problem was one statements I remember hearing from my childhood. Back then I could not understand why more roads would not solve a traffic problem however as I traveled the world and had the opportunity of living in cities like LA, NYC, Boston and London, it became painfully obvious that more roads was not the solution. The solution then becomes how do we better utilize the existing transportation infrastructure? Put more simply how do we do more with less?

Recently at a future of application development conference in NYC a lead architect from a world bank echoed these exact same sentiments but this time applied to application development. Now this is a major global bank and their lead architect was telling us that the last thing he wanted, to fix their problems with application development, was to throw more developers at it. Again on first hearing this statement it seems counter intuitive but just like the roads problem above on deeper reflection it makes more sense. The problem, with application development, is the steep learning curve needed to bring these developers up to the point of where they can be productive. Application development, in a radically changing IT landscape, irrespective of the programming model used in not easy. This quickly becomes a problem of managing complexity, a problem that will only get worse tomorrow as this complexity increases. However as with the road problem the solution is similar but first let us pose the proper question. How do we better utilize and empower the existing staff to be more productive?

To better utilize and empower the existing staff we need to move them to an asset based development model[1]. The maintenance of, reuse of, and enablement of these assets (in this case software development assets) is core to managing the complexity inherent in application development today. These assets need to introduced as early as possible in the life cycle to maximize their benefit and their impact and these assets need to constantly be maintained and updated to help maximize their reuse and impact.


The problem with assets


In our article on Enabling asset consumability we have already looked at the problem of findability of assets. Finability is one of the main problems associated with assets. This problem of findability is outlined in that article in the multi bucket problem. However findability of assets is just one of the many barrier to entry to enabling asset consumability andmoving to an asset based devevelopment model. Here are some of those issues:

  • Findability - trying to find the correct asset for the problem at hand
  • Reuablability - Once we have found the assets can it be reused easily to address the problem at hand
  • Tracability - Once we find and reuse and asset to help us solve a particular problem how can repeat this discovery are reuse for similar problems
  • Consistancy of assets Glossary and variants

In particular here we was to examine the problems around asset reuse. The point here is that finding an asset is only part of the problem. If you find the asset and the asset is too complex to use then it is useless. But to understand the problem reusablity let us go back to the movies. Let us turn to the mother of all automators, The Terminator and discuss a scene from James Cameron Sci Fi film classic: Terminator 2: Judgment Day.

The Terminator 2 movie opens with two terminator machines arriving 'back' from the future to LA, California on June 8th, 1995. The T-101 terminator, played by Arnold Schwarzenegger, is sent back to protect a young John Connor (soon to be leader of the resistances in the upcoming war again the machines), where as the more advanced T-1000 is sent to 'terminate' him. The scene, of interest, happens shortly after Conner, the T-101 and the T-1000 clash for the first time, in an LA shopping mall. Connor narrowly escapes, on a dirt bike, and is hotly pursued by the T-1000 driving a big rig. The T-101 joins the chase, exiting the mall on a Harley Davidson (Fat Boy) motorbike, crossing multiple lanes of traffic, accelerates out of low speed turn and takes off at speed after the endangered Connor.

Let us now reexamine this scene from the perspective of a T-101. The table below shows us the current context from the T-101 perspective. This includes the T-101 (who) place in time and space (where/when) and also his overall mission which is to ensure John Conner survival at all cost (what/how). The T-101 also has an immediate requirement to now peruse the endangered Conner (what - immediate). To help him with this context and this immediate requirement the T-101 needs to search for some kind of asset to help him. But before we examine this further there is another 'how' here that we need to consider.


Context

Value
Where
North America, California, LA, mall
When
June 8th, 1995
Who
Terminator (reprogramed as a protector)
What
Ensure the survival of John Connor
What - immediatePersue John Connor
How
At all costs


There is also an additional unseen 'how", imposed by the movie executives, that T-101 looks 'cool' when he is executing on his day to day 'whats'. Given this set of context it clear that the T-101 requires some sort of conveyance. A conveyance is a good example of a reusable asset: It can be reused over and over to convey a person from point A to point B. Thus from all of the assets available to the T-101 in this particular context we have scoped the list of assets down to just a choices of conveyances that are available in a particular mall in LA in 1995. This brings the list of conveyances down to: cars, motorbikes and maybe push bikes. Finally the movie executive mandated 'cool' non-functional requirement kicks in and T-101 exits the mall, in truly spectacular Hollywood fashion, atop the 'Fat Boy' Harley.

Having addressed the issue of findability of a asset we now turn our focus to the problems of reusabilty of the asset. The T-101 needs to know how to use this asset. In essence the T-101 needs to know how to ride a motorbike. To execute the maneuver in the scene above requires intimate knowledge of how to handle a motorbike. Executing a low speed turn on a bike of that size and weight requires the rider to counter balance the bike and the speed is then a delicate trade off between clutch, accelerator and brake (with the caveat that is ill advised to attempt to brake while executing a turn). The point here is that without intimate knowledge of the inner working of the asset the T-101 would be unable to reuse this assets or worse would misuse the asset.

Exploring this a bit further, if the T-101 has only partial knowledge of how to use this particular asset the results would be disastrous and chances are he would have wrapped the Fat Boy around a lamp pole, probably taking a few innocent by-standers out in the process. The effects of this experience on the T-101 would be to make him weary of choosing this type of conveyance in the future under similar context conditions. Following this line of thought, the same argument can be made about the reuse of any 'complex' asset. This limits the T-101 choices in terms of the assets types he can choice from to satisfy the particular context. Sure he could choose a pony and trap or a push bike as possible conveyances. These assets are considerable less complex than the Fat Boy Harley but neither of these assets would have been sufficiently effective to help him achieve his objective.

Bring this full circle. It is not enough that we are able to automatic how we map particular assets to a relevant context, but those assets need to be engineered in much as way as to maximize their reuse potential. This T-101 thought experiment leaves us with a number of options for increasing asset reuse:
  1. Confine ourselves to simple assets e.g. use the pony and trap as against the Fat Boy

  2. Better educated the practioners in the use of complex asset

  3. Engineer or re-engineer complex assets with a view to achieving an acceptable balance between effectivity and complexity



Thursday, July 9, 2009

Time travel, context and The Tube

In 1931 Harry Beck a temporary draughman with the London Underground created a topological map of the London Underground tube system. To this day Beck original design can be seen all over London and the map itself, along with becoming a cultural icon, is considered to be one of the best maps ever drawn. Despite the fact that the map itself is widely inaccurate, Beck genius was to understand that the only information that a London Underground traveler cared about was the topographical information of the network and he sacrificed all other detail for this simplicity.

In previous posts I have taked about the importance of mapping context to content to help enable asset consumability. We can think of context in terms of scope and it can scope can be thought of in terms of mathematical sets and by expressing context relevant information in terms of scope we can subset our content down to reflects our context. So for example I am a visitor to London, in this context I am a traveler and tourist in central London and I want to use the London Underground to get around. This scoped the London Underground map down the the map below.



Now I find myself in Victoria and I want to go shopping on Oxford street. The only London Underground Line that I am interested in is the Victoria Line and the map is scoped down to just show me that. This map (or content) is maps to the context of a traveler in central London, who wants to used the London Underground to get from Victoria station to Oxford Circus station.



Similarly if I found myself again in Victoria and wanted to go to Tottenham Court Road then the the Underground tube map would scope down to just showing me the Victoria Line and the Circle Line and showing me where their intersect so that I could change tubes at the appropriate station (in this case Oxford Circus).

Finally, if we had access to H. G. Wells time machine I could be a traveler in time as well as space. As we can see from Beck original map the London Underground had changed considerably, new stations and lines have been added over time. Now by temporally scoping our London Underground map to take this into account, I could accompany Mr. Wells and travel back to 1930 and my topic map will be undated accordingly.


Wednesday, July 8, 2009

Presentation best practices

Yesterday we kicked off the first meeting of the presentation best practices course (to be held monthly on the last Tuesday of ever month here at the IBM SWG Littleton Campus).

Presentation best practices course: This course would be a hands on where we would try and teach presentation (and in particular technical presentation) best practices. It would be different from the formal presentation course in that this course would be more of a discussion of current best practices and style along with some demonstrations and the chance for participants to present and try out different styles and techniques in a sandbox. In particular this would again hopefully target the more junior technical people starting out on their technical career to try and guide them in terms of presentation content and style.

The two books that will be referenced during the talking are:

Here is the presentation that I gave:




Further reading on some of the topics we covered yesterday can be found here


The following material are also relevant
Also links that came out of the presentations

Wednesday, January 7, 2009

I'll be back - the problem with asset reuse

A key tool in Engineering SOA solutions is the ability to leverage and enable existing assets. In the SOA world a broad categorization of these assets would be industry model assets, software patterns assets, legacy assets, etc. In a dW Rational Edge article last year, titled Enabling asset consumability, Celso Gonzalez and I discussed the problem of findability of assets, i.e. what are the right assets for the problem at hand?. We proposed that the problem of asset findability can be addressed by better understanding the context in which the assets are needed and then mapping that context to the relevant content or assets. Now that we have an asset that can assist in a certain context (e.g. a map when we are driving) how can we maximize the reuse of that asset (e.g. how do we make sure the map can be read). Better yet how can we automate consumption of an asset. To illustrate the complexity inherent in this goal, of automation of asset consumption, lets examine how Hollywood views this automation. Let us turn to the mother of all automators, The Terminator and discuss a scene from James Cameron Sci Fi film classic: Terminator 2: Judgment Day.



The Terminator 2 movie opens with two terminator machines arriving 'back' from the future to LA, California on June 8th, 1995. The T-101 terminator, played by Arnold Schwarzenegger, is sent back to protect a young John Connor (soon to be leader of the resistances in the upcoming war again the machines), where as the more advanced T-1000 is sent to 'terminate' him. The scene, of interest, happens shortly after Conner, the T-101 and the T-1000 clash for the first time, in an LA shopping mall. Connor narrowly escapes, on a dirt bike, and is hotly pursued by the T-1000 driving a big rig. The T-101 joins the chase, exiting the mall on a Harley Davidson (Fat Boy) motorbike, crossing multiple lanes of traffic, accelerates out of low speed turn and takes off at speed after the endangered Connor.

Let us now reexamine this scene from the perspective of a T-101. The table below shows us the current context from the T-101 perspective. This includes the T-101 (who) place in time and space (where/when) and also his overall mission which is to ensure John Conner survival at all cost (what/how). The T-101 also has an immediate requirement to now peruse the endangered Conner (what - immediate). To help him with this context and this immediate requirement the T-101 needs to search for some kind of asset to help him. But before we examine this further there is another 'how' here that we need to consider.


Context

Value
Where
North America, California, LA, mall
When
June 8th, 1995
Who
Terminator (reprogramed as a protector)
What
Ensure the survival of John Connor
What - immediatePersue John Connor
How
At all costs


There is also an additional unseen 'how", imposed by the movie executives, that T-101 looks 'cool' when he is executing on his day to day 'whats'. Given this set of context it clear that the T-101 requires some sort of conveyance. A conveyance is a good example of a reusable asset: It can be reused over and over to convey a person from point A to point B. Thus from all of the assets available to the T-101 in this particular context we have scoped the list of assets down to just a choices of conveyances that are available in a particular mall in LA in 1995. This brings the list of conveyances down to: cars, motorbikes and maybe push bikes. Finally the movie executive mandated 'cool' non-functional requirement kicks in and T-101 exits the mall, in truly spectacular Hollywood fashion, atop the 'Fat Boy' Harley.

Having addressed the issue of findability of a asset we now turn our focus to the problems of reusabilty of the asset. The T-101 needs to know how to use this asset. In essence the T-101 needs to know how to ride a motorbike. To execute the maneuver in the scene above requires intimate knowledge of how to handle a motorbike. Executing a low speed turn on a bike of that size and weight requires the rider to counter balance the bike and the speed is then a delicate trade off between clutch, accelerator and brake (with the caveat that is ill advised to attempt to brake while executing a turn). The point here is that without intimate knowledge of the inner working of the asset the T-101 would be unable to reuse this assets or worse would misuse the asset.

Exploring this a bit further, if the T-101 has only partial knowledge of how to use this particular asset the results would be disastrous and chances are he would have wrapped the Fat Boy around a lamp pole, probably taking a few innocent by-standers out in the process. The effects of this experience on the T-101 would be to make him weary of choosing this type of conveyance in the future under similar context conditions. Following this line of thought, the same argument can be made about the reuse of any 'complex' asset. This limits the T-101 choices in terms of the assets types he can choice from to satisfy the particular context. Sure he could choose a pony and trap or a push bike as possible conveyances. These assets are considerable less complex than the Fat Boy Harley but neither of these assets would have been sufficiently effective to help him achieve his objective.

Bring this full circle. It is not enough that we are able to automatic how we map particular assets to a relevant context, but those assets need to be engineered in much as way as to maximize their reuse potential. This T-101 thought experiment leaves us with a number of options for increasing asset reuse:
  1. Confine ourselves to simple assets e.g. use the pony and trap as against the Fat Boy

  2. Better educated the practioners in the use of complex asset

  3. Engineer or re-engineer complex assets with a view to achieving an acceptable balance between effectivity and complexity
We will explore this last point in more detail in a future blog entry.

Saturday, September 6, 2008

To iPhone or not to iPhone?

Last Sunday my lovely wife and I took our hogs for a spin (see picture). The ride brought us from our home in Littleton MA (home now to the new IBM Mass Campus), along the railway tracks until we climbed west across Oak Hill (the northern tip of a long ridge of hills called Shrewsbury Ridge by geologists) and onto the quaint town of Harvard MA.




From The hogs 8/9/...
What was different about this particular ride was I had my new 3G iPhone with me. Part of what attracted me to the new iPhone was the integrated GPS. So as our hogs wind out way through the pre-fall countryside to the sounds of the new Coldplay album, I was also able to track our route using a iPhone application called GPS Kit (which I purchased and installed on the phone using the App Store). This cool application then allows me to email the GPS data of our route and you can see the result below in Google map. Click on the picture of the map to bring up the actual map and data.




Now by the time we reached Harvard and its quaint general store I wanted to know a lot more about GPS so I plugged it into my nifty iPhone Wiki application called Wikipanion (it reformatted the wikipedia page to be more iPhone friendly). From this I learned two things:

  • Did you also know that the pix above of our hogs was taken outside that quaint Harvard general store and since I took it with my iPhone camera is it also geotagged and you can see it on the map here


Now I know all you Apple Inc haters out there are screaming for blood at this point, and to be honest I am a long time hater myself. But... and this is a big but, this is one beautiful piece of hardware. Apple have long understood the importance of the combining the artistic and the aesthetes of the right brainers with the technical know how of the left brainers and none of their product show this more clearly than the iPhone.

So in answer to the question posed by title of this blog, to quote Auden from his poem The Unknown Citizen ‘The question is absurd’ ... get up off you caboose, forget that you will need to sacrifice your children college fund just to cover the monthly AT&T bill, get inline with the rest of the great unwashed and get one :).