Booker.Showers

Costly Integration

How to Eliminate Costly Integration Efforts

With such a plethora of software choices and platforms that solve specific needs, integrating new platforms and software is extremely important if the goal of your company is to operate in realtime. If your company does not operate from a single platform that acts as a system broker and federates the exchange of information between systems, your company is failing and should be alarmed. If your company has more than one brokering platform, the company is even worse off because more than likely the brokers are disconnected. Resultantly, your company did not solve the original disparate systems problem.

A highly integrated approach runs circles around varying components fused with complex programming and unique applications.  Most vendors sell components that must be modified to meet each customer’s unique needs and individual areas of a business. Expensive consultants and systems integrators glue the pieces together, resulting in a new software configuration for each customer. As new versions of the software are released, the customized configurations must be upgraded and reintegrated—all at the time and expense of the customer.

If you’re serious about operating in real-time, then you should have a team of highly skilled individuals that understand federation and platform brokering, also known as integration. Not just a team, but a well trained and knowledgeable team. Don’t take the expertise factor lightly. An unseasoned and inexperienced team can cause more harm implementing a federation layer than not having one at all.

System integrators are in abundance. Their existence is the result of sometimes rash decisions to solve an immediate problem by buying additional software, which may not be plug-and-play friendly. It’s understandable that difficult decisions paired with emotion and lack of knowledge of one’s own system can lead to an additional software purchase that fixes what ails you now. However, consultants exist to provide advice before a purchase, not after the purchase, to fix what is broken and potentially avoidable. Integration considerations also include the ramifications of additional software purchases. Bring in a consultant for his or her experience in stopping problems before they happen instead of fixing the broken pieces formed by a lack of knowledge regarding optimal integration implementation.

Booker Showers

A Bad Error Handling Strategy Can Ruin the Best Application

This article addresses the importance of establishing an error handling framework, specially exceptions generated by APIs.

API error handling should be part of developer planning and support. During the planning definition phase, the following questions require answers.

  • Why is the error needed?
  • What action is required because of an error?
  • Who is the audience for the error?
  • Where should the error display?
  • How is the error generated?

Review an example of any significant system or application extended outage and you’ll surmise the outage was a direct result of one or more of the following.

  • Not enough documentation
  • No information about the cause
  • Poor error handling
  • Most importantly―a poor error handling framework

Error handling operates at a higher level than architectural application exceptions. An error handling framework acts as a “sanity check” for API developers. A thorough error handling framework defines proper policy and service exceptions that system administrators or developers can act upon to correct.

When I speak of frameworks, I’m speaking about defined sets of basic standards that can be reused. The practice of creating a framework not only applies to code, but to error handling. You may not think of error handling as having a separate framework, but establishing an error handling framework that has laser focus, dedicated attention can reap tremendous rewards in the following ways.

  • Maintaining a stable system
  • Allowing developers to quickly troubleshoot problems
  • Aid extending applications
  • Quickly ramp-up new developers

Applications developed upon code foundations, or other applications, depend on diagnostics to determine and promptly resolve problems.

Developers should create application-specific exceptions. Exceptions defined in systems may be specific, but can occur in different places. However, it is helpful to define detailed user-friendly exceptions.

Nested exceptions include the original exception and detailed messages specific to the context of an application.

In developing an exception framework consider generating exceptions only if an application can recover (or partially recover) from the error. If unable to recover from an error, issue a custom exception that encapsulates the original exception (if applicable) and includes a meaningful message.

Only generate custom exceptions for more meaningful error handling. When issuing an exception, provide a meaningful and descriptive message. If possible, include specific values.

A good error handling framework divides errors for easily recognized and appropriate action:

  • Policy Errors – based on business rules, which are set to baseline business requirements.
  • Service Errors – generated at a network level when a network cannot process the incoming request.
  • System Errors – returned from a core system from the underlying network.
  • Business Errors – an operation failed because business logic cannot produce a successful response because of passed data.
How to Manage Business Processes Using Facts

How to Manage Business Processes Using Facts

Effective decisions and appropriate actions result from high quality, complete information. A system built from the ground up with a single purpose (to integrate) can profoundly affect the way a business operates. Integration dissolves barriers to communication, reveals opportunities for revenue growth, and helps reduce or eliminate expenses.

A significant operational challenge lies in identifying how to help employees perform tasks better, and faster, using fewer resources. How to Manage Business Processes Using FactsHowever, today’s internal systems are growing exponentially while becoming more fragmented. Extreme difficulty is developing within organizations to create a clear view of the business. A real-time view for large organizations is impossible because management only receives small bits of information from disparate systems that require business analysts to interpret. The disparate systems must connect to create a complete business view. A business does not effectively operate without the facts that represent a true understanding of the business and its challenges.

An important determination often overlooked when a company adopts a new system is “will the system play well with others.” Too frequently, a new system does not play well with existing systems, which is why integration should be a vital part of any IT strategy. To enable a company to run like a well-oiled machine, the parts must move in complement. When one part moves, the other parts should produce complementary reactions.

Large organizations usually suffer from departments operating as silos instead of functioning in information-sharing, reciprocal ways that benefit the entire organization. Staff invest considerable time  gathering information within various departments to create reports to present to Executives. The information gathering process is time consuming, prone to errors, and often information is outdated by the time Executives are informed. Consequently, management will make decisions based on guess-estimates, and gut feelings instead of real time facts.

Don’t leave system integration out of your management strategy. Yes, system integration is IT focused. Nevertheless, a clear understanding of an entire organization is only possible when system integration is considered a vital component of business process effectiveness.

Resource Usage and Traceability

Resource Usage and Traceability

Resource Usage and TraceabilityAnother part of REST Governance is consumption. Consumption comes into play when building, deploying, and maintaining resources based on existing REST resources. Consumption resource tracking is essential for multiple reasons:

  • support internally defined and externally imposed business governance mandates
  • simplify the process of ongoing impact analysis and change management as resources mature
  • provide a quantitative ROI based on real usage statistics back to the enterprise

Governance Mandates

Let’s take a quick look at governance mandates. Business level governance affects IT departments. Consequently, governance mandates increase audits and traceability requirements applied to an IT department. However, expanded requirements cannot be met without some form of usage registration.

Remember, resources change over time as new requirements are identified. Development teams need to stay fully abreast about planned and implemented changes to resources they use. Further, teams need to participate in requirements feedback, and prepare for the eventual obsolescence of back-level resources as new versions are deployed.

Ultimately, enterprises are not in business to serve IT. An organization’s management expect a quantifiable ROI from any REST initiative. Without service usage direct traceability a quantifiable ROI based on service use and reuse is almost impossible to produce. Further, if usage registration is built-in resource discovery is quantifiable. Instead of guessing, ROI is as simple as running a periodic report.

You Can Benefit from Software Integration

You Can Benefit from Software Integration

In 1997, Paul Strassman stated in The Squandered Computer, “Aligning information systems to corporate goals has emerged as the number one concern over the last five years in surveys of information systems executives.” Today, his words are still valid. Software integration is an important component of a strategic plan to help your business effectively compete.

Paul A. Strassman, The Butler Group—Former Director of Defense Information, Dept. of Defense, and CIO for Kraft, Xerox, and General Foods.

What is Software Integration?

Data and information travel between different software applications. Passing from one application to the next may cause changes that translate, repackage, or regroup data and information, which can become lost or incorrectly transformed. Frustrating to management and staff, time is wasted reentering data and information, and the possibilities for errors increase each time.

Overall, software integration can either improve company operations or become a detriment without the right expertise to guide the process. Taliferro IT Consulting possesses the right expertise for implementing seamless information alignment to company data that is easy to retrieve and manage. Moreover, a company will benefit from significant savings in worker hours by eliminating the need to enter information into several applications.

Eventually, disparate and unaligned systems are costly to companies. To solve your software integration challenges, we focus on how all your systems exchange data, and if the exchanges consistently occur. A real-time, valuable assessment of your business does not result from poorly integrated systems.

Booker Showers

Strategic Tuning with Project Management

Strategic Tuning with Project Management

Project management is about managing activities that drive business success.

Businesses are most effective when tasks are under control. Management and staff must perform many tasks to remain competitive. Tasks such as creating invoices, tracking projects, opportunities, emailing prospects, filing electronic and printed documents, scheduling appointments, maintaining customer information, and monitoring social media require daily attention. While necessary, time spent on the tasks described tend to dilute focus on strategic aspects of your business.

Your employees work together, shouldn’t your software?

To run a business on several different software applications is challenging. A software package for accounting. Different applications for sales and customer support.

Strategic Tuning with Project Management

A Web site to market products

and services, another application to manage social media, and stand-alone shipping and receiving software can separately create information silos.

Share information between applications? Sometimes, between some applications. In most cases, employees have to re-enter data into each application, increasing the possibility of errors and decreasing productivity. A lack of integrated reporting hinders management from real-time information crucial to important decision-making.

Yes, integrated applications exist. However, for many businesses the costs associated with monthly, Cloud subscription pricing per user, installation, and maintenance can be off-putting unless persuasive evidence of long-term benefits are clearly articulated.

Consider a single, integrated strategy to run your entire business enhanced by the use of technology. An integrated strategy should connect project management with daily tasks, and your organization’s overall goals and objectives.

An ideal strategy:

  • Reduces IT costs.
  • Increases productivity because entering data is only required once.
  • Provides individual access to information in the Cloud. Role-based permissions define what functions each person can see and use, which dramatically improves productivity and efficiency.
  • Provides integrated reporting capabilities to give managers and employees a complete view of all facets of the business in real-time.
  • Allows industry terminology customization and on-the-fly reporting.

To develop an integrated strategy enhanced by technology requires a complete understanding (that only comes from experience installing and creating integrated systems) of Web-based, legacy, and enterprise solutions. Understanding all the front and back office functionalities needed to run a business, with tools to manage products, services, leads, customers, partners, vendors, and employees is difficult but not impossible to achieve.

Project Management and Productivity Tips

Project Management and Productivity Tips

Project Management and Productivity TipsCommitment to effective project management must begin at the top. Head management must demonstrate a serious commitment to project management and productivity by requiring staff to input their time into project and time management systems. A mandate for all management levels to work within the same environment creates a real time view of a business.

Establish and Set Goals

A mission statement backed by clear direction is important to foster collective responsibility toward achieving organizational goals. Working within an open environment promotes accountability. Using real time functionality makes monitoring progress easier while striving to achieve goals.

Time management is important for accomplishing tasks and satisfying customers. Effective time management increases productivity. A happy customer leads to more sales.

Encourage Input and Activity Assignment

Give staff approval for offering ideas and assigning activities or reminders to others. Team members who do the work are in the best position to identify and suggest alternate courses of action. An online activity manager program provides real time snapshots of a company’s internal workings.

Acknowledge Accomplishments

Inspire confidence and nurture staff loyalty by rewarding hard work and clearly communicate slacking is not tolerated. Periodically, acknowledge the accomplishments of all staff who meet company expectations. Management can use the tips described to maintain a motivated staff to continue effective time management behavior.

Create a Meeting Agenda and Stick To It

Management should take time to write an agenda for each meeting to prevent deviation from the meeting’s purpose. If meetings are held on certain days of the week, remain consistent by setting a pre-determined time on the same day each week. Repeatedly changing meeting times creates confusion and reduces effectiveness. By holding meetings at the same time on the same day, everyone can plan ahead and attend prepared.

Reduce Meetings

Hold a meeting when absolutely necessary. Track activity or task status systematically instead of through the inefficient waste of time, money, and resources that typical meetings have become. The use of an effective activity or task management system used by staff, and top management saves companies hundreds of hours in lost productivity.

By following the tips in this article, you can ensure your company’s time will be effectively spent. Both staff and management will avoid the frustration that arises when objectives are not completed and no one is aware until a crisis develops.

Check Point

Recommended Service SDLC Governance Checkpoints

Check PointAfter defining our first set of services we need to build and deliver. Developing services in REST (i.e., for purposes of reuse across multiple applications) usually requires more of the production team than a single-use component, module, or object. For example, a reusable service is maintainable, discoverable, and consumable.

Maintainability introduces such concepts as version control, models, and other design documentation. In addition, maintainability involves requirements traceability (why was the asset implemented in a certain way from a technical and business perspective).

Discoverability forces us to consider how we help potential consumers of the asset find the asset.

Consumability involves looking at the asset from a downstream project planning point of view to determine how to use the asset. For instance, is there a user guide, a well-documented API, sample code, and other artifacts available to help a user rapidly understand how to apply the asset? Further, are dependencies on other assets (and to prior versions of the asset) specified and easily navigated?

We achieve high standards for our services under development by establishing standardized governance/review checkpoints throughout the service SDLC. Taliferro IT Consulting recommends at a minimum, organizations should review services under development upon reaching the following points in the SDLC:

  • Requirements Complete: All business requirements documented and initial service definition specified (ideally as WADL) to allow reviewers to validate the service against its business architectural context
  • Design Complete: Implementation approach defined with sufficient documentation (e.g., design models, relevant legacy APIs identified) to allow reviewers to validate design against technical, application and/or integration architectural contexts
  • Implementation Complete: Service implemented and deployed in a test environment with sufficient supporting documentation (e.g., sample code, test cases and results, usage guide) to enable a potential consumer to understand the service and to trust its quality and stability

Other review points are necessary based on organizational needs and objectives. However, refrain from overwhelming your development teams with process for the sake of process. Otherwise, you will quickly instill a revolt of the masses by forcing seemingly arbitrary hoops for developers to jump through in the process of completing their work.

Management’s objective should be to instill “just enough process” – not an unnecessary workload. Provide enough guidance at key points in the production and consumption life cycles to make sure things stay on track. Using the approach described, you will very likely reach the right level of process for your organization.

Begin with as lightweight a process as you think will work, and then add process steps as needed. Ultimately, a well-designed services registry/repository can assist in automating governance processes. The result is a reduction in “organizational friction” that often hinders all involved from “doing the right thing.”

How To Expose Internal Systems As REST

How To Expose Internal Systems As REST

To expose internal systems as REST, you must first understand the value of resources and controllers. Once resources and controllers are understood, thinking in the abstract is next. Abstract thinking (thinking about the parts instead of the whole) create value for the developers you are trying to attract.

Consider as an example a Bird and a Dinosaur.  Each creature has attributes and behaviors that make them distinct. They also have shared attributes (such as seeing and walking). Let’s say for illustrative purposes that Bird and Dinosaur are finished products (in the same way internal systems are finished products).

In the diagram below, Bird and Dinosaur have been deconstructed (as a simple example). This deconstruction allows us to create new unique animals and apply behaviors, such as walking and flying, to the unique animal.

Animal Deconstruction

 

To monetize internal systems, you must think similarly about abstract deconstruction. Deconstruction produces a framework that allows developers to create unique applications. However, one must not confuse REST and API as the same. REST is an architectural style that uses the HTTP URL to access information. URLs can be consumed by APIs or accessed as RAW URLs. Let’s not lose sight of what REST stands for; Representational State Transfer, which means transferring the state and make-up of data via a URL.  REST’s ideal purpose is for data.

Now let’s look at a more concrete example. If a company wants to gain developer adoption, decision makers would align assets so one asset alone would not accomplish much. However, one asset combined with other assets would create something interesting and viable. Instead of looking at the enterprise as a whole, try to look at each individual platform’s characteristics and behaviors in the abstract as shown in the diagram below.

Deconstruction Example

From the abbreviated diagram above, as a developer, I can now begin to imagine mixing and matching the various attributes and behaviors into some type of software product, or incorporating attributes and behaviors into my own product. To focus on parts instead of predetermined functionality allows a developer’s imagination to flourish.

When each infrastructure asset independently evolves and gains a consistent interface the benefit to a company lies in monetizing exposed assets to external developers. After you have deconstructed  the internal systems, you then want to create unique offers (or products) to show developers how they too can use the framework to create their own products. In the diagram below, a telecommunication company could leverage Voice, Media and the SMSC to create a framework and possibly allow developers to create something totally new. Leveraging and monetizing internal systems can be done with the right mindset.

REST as Template Services

Template ServicesCompany management consistently struggle with exposing internal products as REST services. There is a lack of balance between organizing internal products to be used in combination with other internal products (to create a new type of service) and REST principles.  Understanding the difference between controllers and REST resources will eliminate confusion and misuse of fundamental REST principles.

Previously explained, REST is best used for static objects that Create, Retrieve, Update, and Delete  (i.e., the HTTP equivalent POST, GET, PUT, and DELETE). If the service acts as a function, consider designing the service as a REST controller (see How to identify objects as REST Controllers or Resources). Otherwise, the service is data.

The ultimate REST architecture is a service structure that combines with other REST services to create a totally new service as depicted in the following diagram:

A Powerful REST Architecture that Focuses on Monetization

REST Template Services

The platform is the application, or system exposed to external developers. Platforms are used individually or with other Platforms to create unique services.

The service template defines configurable attributes of a platform. The service template is used to create a service, which has commercial value to an enterprise or an independent developer.

The service variant is a configured version of a service template.  The service variant is an item with the necessary configuration to provide value to a developer and supports necessary provisioning actions.

An offer is a bundle of services exposed via an API, which consist of one or more service variants, offered to developers for consumption to create applications.

In summary, when creating a REST architecture remember one internal service can be used with another to create a completely new API.  Try to stay abstract. Do not release a finished product as a REST service by pointing the URL to the product. When a finished product is used as a REST service, a developer has no options to consume the API.  Separate data as resources and actions as controllers.  Nouns vs verbs.

 

Page 4 of 512345