Select Page

Post 1 – Implementing SOA

As Service Oriented Architecture (SOA) is becoming the go to foundation for today’s applications architecture I wanted to dive into how to adopt SOA into your organization.

As organizations are making great efforts to become more agile and faster in their respective markets they’re adopting a SOA approach to their application development.  SOA is an effort to take all the software components of an organization and be able to reuse and ‘mix and match’ them as necessary for any given application.  The idea being, a piece of code should be developed in such a way that it could be reused in other applications.

In today’s society, it is critical for a business’s application to support multiple client devices (smartphones, tablets, etc.) if the business is going to remain relevant and be able to compete in their market.  The SOA approach ensures the software chunks of code are written in such a way that they can be applied to the thousands of different types of devices that will be accessing an organization’s applications.  In order to adopt this practice Gartner recommends the following plan:

To break it down, start with establishing a center of excellence (COE) team.  This is the team that develops the SOA expertise and demonstrates the value of SOA to the organization.  This piece can be dissolved once SOA is fully accepted by the organization.

There is a danger in many SOA projects, many applications are built strictly with reuse in mind rather than focusing on whether the applications fulfill the need.  Instead of solely focusing on reuse, focus on agility.  Break the applications down into small services, commonly known as microservices, that are independently deployable and implement one feature or function.  How quickly can you respond to disruptions?  How easy are your apps to manage?  How well does the app scale?

Even if you don’t predict a need for SOA, as the digital business ecosystem is constantly changing it may become strategic to lay the foundations for SOA for future application development scenarios.  To do so It is important to recognize the requirements for the service infrastructure, hosting, and support.  What will the costs be to move towards SOA?  What API management tools best fit your application development needs?  What is the culture like in your organization and how can you implement these crucial changes towards your apps development?

References:
O’Neill, M. et al. (2016). Where to Start (or Restart) With Service-Oriented Architecture. Gartner.

 

Post 2 – AA for the cloud

In order to utilize the cloud, application architectures (AA) will need to enact new approaches for data management, for example, a service-oriented architecture (SOA) approach.

Architectural characteristics of the cloud need to be scalable (but up and down) at will.  They need to run in shared environments and be wary of their resource utilization when being shared.  They must be developed for absolute reliability, meaning if one resource goes down or changes the applications need to be built in such a way to accommodate for failure.

Today, application models assume they have full control over their data and that that data’s consistency is in control and that getting one class of data is pretty much the same as getting another class of data.  Developers also often make the assumption that the data is being stored in a relational database on a spinning disk.

With cloud applications, however, data may not be under control (meaning it may be controlled by a SaaS application) and it might be distributed across different stores across a variety of networks.  With this in mind applications should utilize in-memory database caches in order to manage data access.  In-memory database caches is a database management system that relies on memory for computer data storage.  With the cloud, it is quite common to have distributed data, which this approach accounts for.

As it is possible for data to come from either on-premises sources or from the cloud databases need to be divided into sets of services that can be organized based on subject or usage.  In the design and architecture of an application data needs to be organized based on its capability and service.  This enables the data to travel together but still be separated from the applications they serve.

Cloud applications need to be developed in order to run in a highly elastic environment.  As the cloud is essentially an infinite set of computers, resources will vary.  Resources are used and paid for only when they are needed.  This makes it important to build applications to optimize resource utilization.  In order to leverage this environment, the separation of components is required.  The applications need to be broken up into chunks and built with more incremental development and deployment in mind.  This ensures changes can be deployed regularly and rapidly without adverse impact to users, which is one of the significant benefits to cloud applications.

Cloud applications divided into separate services and service providers enable the optimized resource utilization.  The SOA practice becomes a requirement for deploying applications to the cloud.  This allows for automated operations.  Applications are called, used, and ignored.  Changes to the applications are made rapidly and the applications can be scaled to meet the needs.

References:
Sholler, D. (2012). The Nexus Effect: How Cloud Computing Alters Established Architecture Models. Gartner.

 

Post 3 – Business Intelligence

For the past three years, business intelligence (BI) has been cited as the number one priority for CIOs.  With business models continuing to digitize, evidence-based decision making is growing.  Tools, architectures, and models are developing that enable organizations predictive analytics and value-adding diagnostics.  Despite all of this, BI projects still aren’t perceived as delivering value to the organization.  BI and analytics teams need to become more mature in their ability to engage, communicate, and influence the organization.  They need to have a more collaborative approach; a coaching or mentoring approach, if you will.

BI teams are typically part of the IT unit.  This enables the BI team to have direct access to the collection, storing, and management of the organization’s data.  However, as data is becoming more decentralized, analytics teams have started to become established in the business unit, giving them close alignment with the business consumers, activities, and processes.  This, in of itself, isn’t that critical of a factor.  What is crucial is how well the team can operate within the culture and behavioral norms of the organization.  This makes it necessary to identify the most suitable organizational model for the cultural norms of the organization.

BI teams need to place a significant emphasis on identifying and realizing the business context and value of data.  The team needs to focus more on the businesses outcomes rather than the tasks and functions.  There needs to be an increased emphasis on diagnostic and predictive capabilities that bring new, innovative insights to the business.  A bimodal approach would allow the team to focus on efficiency, predictability, and agility.  This approach needs to be focused on improving business performance, which will shift the teams from the traditional description reporting capabilities to prescriptive capabilities.  It requires a focus on data discovery.

Stakeholders need engaged.  This goes back to the mentoring and coaching mentioned earlier.  It ensures quality data.  This is essential as the investment in business analytics will come from business and not IT, especially since the data is becoming more decentralized.  An understanding of the psychological and emotional factors that lead to human decision making is crucial.  Confirmation biases, world views, cognitive dissonance, personal motivations all drive emotional decision makers.  Therefore, since BI and analytic teams understand data, they need to enhance their influencing skills.    They also need to develop their facilitation skills to ensure interactions with business are effective and productive.  Rather than being fact or data-based, practice data storytelling.  A good story, with business relevance and support from hard data, is invaluable in a business setting; they are essential to communication and influencing.

References:
Duncan, A. D. (2016). Business Intelligence Teams Need to Change With the Times. Gartner.