Wednesday, August 20, 2008

Agility

In GEN Casey's (Chief of Staff, U.S. Army) address to the 2008 LandWarNet conference he talked about agility of the Army as an enterprise. Two main points were brought out regarding the meaning of agility in an organization built from autonomous groups of people and heterogeneous information systems. Agility takes two forms, Intellectual and organizational. The contention is that the agility of an organization is built from the responsiveness of it's people.

"Intellectual agility is the ability to recognize opportunity and the courage to take it."

Sent from my iPhone

Thursday, July 31, 2008

Measures of Effectiveness

Considering the application of architecture patterns to infrastructure and services. How do you tell if patterns are useful? Do the patterns increase the interoperability and alignment of different enclaves within the enterprise? Do patterns increase the efficiency of developers building services or the creation of composite applications? A framework for the measurement of the organizational impact of SOA and architecture patterns is needed.
---------------------------
Sent from my iPhone

Saturday, April 12, 2008

Domain Modeling and Agile Development

By having developers focus on application software and user requirements in the form of piecemeal user stories critical understanding is lost. The agile development method encompasses the concept of a “user story”, to define user-centric operational threads. A collection of user stories make up the requirements from which software is built. About every two weeks a version of software is delivered which implements capabilities brought out in the user stories. Threads (i.e. User Stories) that do not get addressed in the current iteration are placed in a backlog for implementation in future iterations. As Evans [1] points out, a critical domain-centric focus is lost in this approach. There is never a consistent thorough model developed, the application software never has full knowledge of its usage domain.

Consider an application used for financial analysis developed through agile methods. User stories call out requirements for importing stock market information, business records, and conducting trend analysis on financial data. Software is developed to implement “stories” written by users that describe how the above required capabilities are exercised. A top level business data model would be very beneficial to implementing the required capability. Using the agile approach, stories will be deconstructed and software built from the ground up. The unified top down design and domain frame of reference is lost. As with all things, it seems a combinations of approaches here makes the most sense.

Ref: Evans, pg14
.

Saturday, March 8, 2008

Awareness Quote

Problems cannot be solved at the same level of awareness that created them.

-Albert Einstein

Sunday, March 2, 2008

Software Reliability

This week the course material for Stevens SSW565 covered some architectural techniques for software reliability and assurance. The subjects are generally labeled diversity and have really peaked my interest:
  • N-Version - Multiple independent versions executed simultaneously with the results correlated for accuracy.
  • Recovery Block - A highly efficient version for general purpose execution and a highly accurate version for execution when error conditions occur.
This architectural solution to reliability issues has great impact to complex systems and extended enterprises. Key to this notion is autonomy or lack of control and accountability. For a complex service oriented architecture where particular service implementations are outside the consumers domain of control the N-version technique has applicability. One can see this in everyday use. When I am going on a motorcycle ride I go to the internet to check the weather. But I never go to just weather.com, I always check my local cable feed and usually a NOAA radar map. This is the N-version technique in action. Three implementations of a weather information source correlated and fused to provide a common picture of the days weather.

Part of a SOA in an operational enterprise is a service control board that provides governance to the service portfolio available on the network. Looking at the governance issue from the reliability perspective it may be desired to have multiple implementations of the same service, for N-version reliability. I think learning is happening here. Thank you Dr. Vesonder!

Wednesday, February 27, 2008

Change

Become the change that you wish to see in the world.

- M Ghandi

Saturday, February 23, 2008

Mobile Post on Emergent Order

In nature order continually emerges from chaos. In management we continually try to impose order out of fear that chaos will take over. The imposed order is most always dydfunctional. Emergent order, as in nature, is functional and arises from autonomous entities working together with a shared vision and a sense of personal mastery.

Reference: The Fifth Discipline, pg269

Thursday, February 21, 2008

SOA Foundation as Connector

I have been working for the last year with Service-Oriented Architecture (SOA) and the infrastructure components which make up an SOA Foundation (SOAF). After reading the Connector paper by Mehta, Medvidovic, and Phadke it would seem that a SOAF should fall within the middleware category. After some thought and analysis I have come to the conclusion that SOA truly is a breakthrough technology which spans some of the categories defined in the Connector paper.

A SOAF infrastructure is largley based on message passing but includes an event bus, a data bus, facilities for content based routing, handlers for security and access control. There are also features within the infrastructure for dynamic discovery of services, service level agreement monitoring and enforcement, data mediation/transformation, and business process modeling through workflow and orchestration.

The important thought here is the sole purpose of a SOA Foundation is to provide a general purpose manged connector environment. Is it just a collection of connectors previously defined or are there new constructs defined by the environment? This concept deserves some further analysis.

Monday, February 11, 2008

Paradox Enables Break Through Thinking

An important concept that just seems to be sinking into my thought patterns is "Paradox" and the enabling forces to break through thinking. This concept has been kicking around as I try to define my thoughts surrounding:
  • Innovation at the edge and its apparent contradiction to Deming
  • Structure induced by enterprise architecture to enable agility, that hinders
  • Non emergent teams being used to solve problems
Once we identify paradoxical behavior in a system it must be studied and analyzed. A behavior that seems to be contradictory can give the opportunity for truly innovative thinking. Paradox should be viewed as extremely important and a catalyst for moving bodies of knowledge forward.

There is an idea here that I am trying to grasp. Articulation is one of the many inhibitors...

Sunday, February 10, 2008

Software Architect

This is an initial posting to my software architecture logbook for SSW565 at Stevens Institute of Technology. The course is titled "Software Architecture and Component Based Design" and begins by examining what software architecture is. This has caused me to think about not what software architecture is but what a software architect is.

To me a software architect is someone who synthesizes the structure of a software system which serves to meet some operational need. The architect is involved up front usually at a high level and is ultimately responsible for the realization of the system. Interfaces with other software, hardware, and people systems need to be negotiated and coordinated by the architect. The architect must have a firm grasp of technology and its application to specific domain problems in addition to excellent communication skills. The point where program management meets technical work will be at the architect. The architect truly has one foot in the world of management and one foot in the world of technology.

The above definition removes some of the grandiose visions of elegant structures being constructed by technically astute software professionals. But draw an analogy to a building architect for a home. The homeowner communicates desires, needs, to the architect who in turn creates a structure. The architect communicates the structure back to the homeowner for approval then communicates, negotiates, and coordinates the structure out to contractors, inspectors, and utility companies. Here you can see that the software architect is very much like the traditional architect just working with a different medium.

Saturday, February 9, 2008

Dysfunction

There seems to be a common thread in the world today, "things are broken". Furthermore there is a sense of hopelessness of finding a solution. Think of your last trip to a hospital. It seems as though bad decisions get made throughout your stay and you are unable to fix them. Are these truly bad decisions or is there some higher order reason behind them.

An extended enterprise operates in this fashion. There is no central control, who is managing the extended enterprise? This is truly systems thinking at heart.

In the context of net-centricity. There are autonomous systems connected together through a higher order global information grid. If a capability is composed on the edge there are relationships formed with these autonomous systems. But the system is autonomous, what if it mutates? This is a Demming concept. Can an entity at the edge compose or modify a process/capability? Demming would say no, the process a worker is in must be improved from a higher order. Innovation at the edge says that who knows more what is required for a task more than the knowledge worker at the edge. But does this break an overarching principle of interoperability or information sharing? Can innovation at the edge be captured through advanced architecture and tooling?

This post was created fast. but there are important concepts buried here. The ideas need to be articulated in a canonical fashion. This is the subject of further study.

Monday, January 21, 2008

Web Service Certification

There are requirements placed on the deployment and provisioning of web service code into live networks. Security and Information Assurance (IA) concerns prevent the hosting of foreign code on servers of closed networks. There is tooling required to support the analytics of web service packages. Architecture, source code, and binary packages all need to be reviewed while creating a certification document for hosting approval.

Concerns by IA Staff for the hosting of web services
  1. Steady state input/output
  2. Network openings and vulnerabilities
  3. Potential for secret back door
  4. Failure modes
The approval to host a web service on a network boils down to two major decisions.
  1. I analyze the web service design and implementation for vulnerabilities
  2. I trust the developer, therefore I trust the service candidates
This approach can be used to push down certification to development enclaves. Service development shops can have in-house IA teams to provide certification statements along with service deployment packages. A network hosting facility will receive the package coming from a trusted development shop and deploy the service to the network with no questions asked.

For non-trusted or smaller development shops the service code would need to be submitted as part of the deployment package. The package would have to be analyzed and certified before live connection to the network would be allowed.

In either case tools to support certification of services are required.

Emergent Organization

A tenet of the Knowledge Management and Social Networking disciplines is that the true structure of an organization is not defined by the formal arrangement of staff into ckassic divisions and branches. There exists an unwritten informal shadow organization beneath the formal organization where most of the truly innovative and productive things happen. We all know the important secretary that everyone goes to when there is a problem or the craftsman that can fix anything even if 's not in his "division". This emergent social network within an organization self forms through information sharing and having good people who feel secure and positive in their roles within the organization.

These "movers and shakers" within a firm make up important nodes of business process and communications networks. The organization can be aligned and congruent with this informal network and result in a highly-functioning firm. However, there exists within todays business and society a pace of change that is unprecedented. The formal organization can never keep pace with the emergent network. Therefore a highly functioning firm should attempt to provide a fertile growth environment of living dynamic networks which track and even lead the tides of change.

7 Attributes of Highly Functioning Organizations:
  1. People Search
  2. Positive Organizational Attitude
  3. Information Sharing
  4. Knowledge Tools
  5. Staff Embracing Strategic Vision
  6. Time Available and Encouraged for Pet Projects
  7. Dynamic Informal Communities of Interest/Practice
What I find interesting in the above material are the parallels with distributed functions and information within a globally connected network. There will be dynamically formed informal networks of high performing services linked with high value consumers. Kids can be found through Myspace and business contacts through LinkedIn. These are important nodes in an emergent network underneath the formally defined network of many organizations. Parallels between social networks and service networks within a Service-Oriented Architecture can be developed.

Saturday, January 19, 2008

Remote Access

I am configuring the blog for remote posting through email. This will be used to send in thoughts using my Windows Mobile 3G cell phone. I would like to use an iPhone but the available old radio technology is preventing me from jumping on the bandwagon.

Blog Birth

This will be a home for random thoughts on my PhD work at Stevens Institute of Technology in Hoboken, NJ. Subject areas will include but not be limited to:
  • Service-Oriented Architecture
  • Network-Centric Operations
  • Extended Enterprises
  • Organizational Agility
  • Knowledge Management
  • Social Networking
  • Information Sharing
This blog will be used to create a historical record of thoughts on course work, research ideas, new technologies, and interesting ideas discovered through my journey in dysfunctional enterprises.