Tag Archives: Modernization

It seems like most IT professionals today are so busy keeping up with day-to-day tasks, not to mention myriad unexpected issues that arise; that project planning and time management often take a back seat., Besides, “planning” sounds like such an “open-ended” thing that is frequently deemed a waste of time and lost in the shuffle.

In fact, a little proactive planning could save a lot of time and stress in the future. And it does not have to take up a lot of time, e.g. like planning how to better deal with production issues. Continue reading →

You guys start coding, I’ll go find out what they want
You undoubtedly have seen the broadly circulated cartoon with this punch line. It’s funny because for many of us it comes too close to reality of many projects that are done with very poorly defined requirements. You have also probably seen the famous “Tree Swing” cartoon of requirements drift that has floated around for years. In this cartoon, a collection of improbable variations on a simple tree swing diverge further and further from the client’s desire for an old car tire tied by a rope to a sturdy tree branch. Here are two of my favorite panels from “Tree Swing”.

Does it have to be this way? Let’s find out. The usual way that requirements are documented begins in a requirements meeting, often the first of so many. Continue reading →

In Part 1 of this blog series, we discussed the benefits of modernizing SCOBOL requesters, and the challenge of handling programs with extensive business logic..In this Part 2 installment, we will talk about how to approach these business logic embedded programs via re-engineering and the benefits of using a tool like Blu Age.Re-engineering using framework

Re-engineering is a better approach to application modernization. Instead of selectively rewriting certain portions of the business logic to fit into a random mix of components (e.g. HTML, Java and JavaScript, etc.), re-engineering advocates redesigning the application from the ground up. By re-engineering, we mean applying a combination of human insight and automation power to migrating business logic (e.g. calculations, business rules)
to a modern technology framework.

Maintainability
Creation of code based on the new design blueprint using modern development methodology ensures there are readily available resources and tools for it to be maintained easily.

High performance
Test tools are readily available in Open Source or commercial market to measure and tune applications designed with modern framework.

Adaptability
Once an application has been modernized, there is a good chance that its functions will continue to evolve. Adopting a proper design framework will ensure that the new application will continue to adapt to new requirements and can be enhanced easily.

But the challenge remains the same by taking the re engineering approach: You still need to migrate the business logic in the original programs to the new code. This is where a tool like Blu Age can facilitate the process.

Introducing Blu Age – A Powerful MDA Tool

Firstly, as the saying goes:“There is no free lunch.” If you are looking for a magical “EASY” button, Blu Age is not it. Blu Age is not an automatic translator. It does not make the end product magically for you by your clicking a button. But it is a tool that can help you get the job done more easily and more quickly.

Blu Age is a tool that:

Helps you analyze your program source with built-in visual tools and annotation features

Assists you in transforming the business logic to new code in Java or .NET

What is Blu Age?

Blu Age is a commercial software re-engineering and modernization tool suite that follows the Model-Driven Architecture (MDA) approach to generating program code from Unified Modeling Language (UML2) diagrams. MDA is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. It a standard that was launched by the Object Management Group (OMG) in 2001. Blu Age provides all of the re-engineering capabilities discussed earlier, and more. All of Blu Age’s power is based on generating and approving human-readable models that Blu Age then converts into modern code.

In short, you use UML diagrams to design your application in Blu Age, and it generates the application for the targeted framework according to your specifications .

Blu Age Components
Blu Age is a tool suite built on Eclipse and contains modules that address different components of the modernization process.

Blu Age Reverse Modeling (BRM)

It automates the process of reading your original code (e.g. SCOBOL source) and identifying the interesting and necessary business logic that it will then convert into the diagrams of your model.

As you interact with BRM, it identifies and extracts business rules, calculations, and business logic into Unified Modeling Language (UML2) models, ready for you to review and approve.

Blu Age then applies its code-generation capabilities to automatically transform your models into complete, modern, high-quality application code in Java or .Net.

Blue Age Delivery (BDE)

This ensures the quality of the code delivered by BFE. BDE operates in a modern continuous integration and testing environment that is consistent with the today’s best software engineering practices

Blu Age re-engineering approach is different from both rewriting and translating. Rewriting is a laborious set of tasks, the success of which depends of learning ad properly applying new computer languages and new software engineering techniques. Blu Age lets you focus on ensuring the right business logic is transferred from your SCOBOL program to the new target platform.

Blu Age also differs markedly form automated translators. Automated translator converts the SCOBOL program wholesale, leaving you to read through unfamiliar modern code to determine whether the translation appears successful.

Blu Age puts you in the driver’s seat to determine the steps in mapping over the business logic, while relieving you of the burden of coding in a new unfamiliar language, or trying to make sense of automatically translated code.

So, how does Blu Age methodology work? Read about it in our next blog:

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of the home page) to get automatic email notification when a new blog is available.

Phil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Phil worked for Tandem Computer in technical support and software development.

Part 1: The Challenge

Why Modernize?

The pace of application modernization initiatives on NonStop has accelerated in the past several years, as more users and organizations have started to consider the importance of NonStop’s strategic values. The objectives of application modernization are to reduce risk, reduce costs, and to increase agility. These objectives align with the priorities of all organizations’ IT management.

Migrating Existing Legacy Programs

Most discussions on application modernization focus on how to develop new applications on NonStop using new technology, such as Java, SOAP, open source frameworks such as SASH. Yet, one of the most common problems faced by IT management is not about the development of new programs, but rather with the challenge of how to migrate existing legacy programs containing complex business logic to a new programming platform.

This blog series focuses on this last topic and uses SCOBOL as an example. We show how it is possible to extract business logic from a legacy SCOBOL program and incorporate it in a modern version of the program using a software engineering tool called Blu Age.

The Challenge – Embedded Business Logic

SCOBOL was originally designed for handling the UI, and the recommended best practice was to avoid business logic in SCOBOL programs. In reality, developers commonly exploit SCOBOL’s capabilities by putting business logic in their programs. These business logic routines may range from something simple like checking input fields for certain values, to extensive logic that cross-references multiple screen fields. With all this embedded logic, the SCOBOL programs become very function-rich and work beautifully in the native Pathway environment. However, when the time comes to migrate the program to a new environment such as a web browser, embedded logic becomes an obstacle in the migration effort. In the browser and application server environment, you will need to understand where the business logic is in the existing program, and how to replicate this business logic in the new program.

Dealing with programs with business logic

Let’s say that you have SCOBOL programs with business logic that you want to transform into to a web graphical user interface (GUI) application. Here are some of your available options in handling the embedded business logic:

Rewriting

One instinctive approach would be: “Let’s rewrite the business logic into a modern equivalent.” While that sounds straightforward, the skill sets required to faithfully reproduce the business logic embedded in the legacy UI in a modern form are considerable.

Here are some of the challenges:

There is usually no adequate documentation of the existing code. The only thing available is the source code.

That means someone needs to understand how to read SCOBOL code, and someone else with expertise in the new programming environment to assist in the migration.

SCOBOL programming expertise doesn’t necessarily translate to a clear understanding of the business logic in someone else’s code. In most organizations, chances are that the original coder is no longer available. In some cases, this could be further complicated by the fact that the program had been modified by multiple developers over the years.

Finally, you must verify that all the functions are rewritten correctly.

Caution: Rewriting by hand sounds easier than it really is.

Language Translator

Using an automated language translator is another approach to modernizing legacy programs with business logic. A language translator is a program that can read in a SCOBOL program source and output a program in a target computer language like Java or C#, along with all the other technology pieces needed to provide equivalent functionality to the SCOBOL program.

The HP Pathway/iTS product is an example of this kind of translator product. It reads in the SCOBOL source, and generates equivalent Java applet code that will run in the web browser and communicate with the Pathway TCP. There are other commercially available COBOL translator products and services in the market that work similarly on different COBOL variants on different platforms.

While this sounds good in theory, the result usually falls far short from ideal.

This translator would face all the challenges of human “rewriter” without the human’s intelligence. A translator is a black box to its users, and “tuning” by vendor experts is required to produce a successful translation. SCOBOL programming style changes (e.g. two different programmers’ coding styles) may befuddle the translator, requiring expert vendor intervention to keep things moving.

Most translators can deliver only somewhere between 50%-70% success rate at best, and the result varies depending on the complexity of the original program. The rest requires additional manual tweaking by an expert of the tool and could take a fair amount of time.

Experience with program translators shows they can be brittle. Even if the translated program is functional, most likely the generated source code cannot be maintained manually by a developer.

Translated code usually does not perform well, as the vendor of the translator tool focuses more on delivering an output that functions correctly, without regard to performance

Caution: Translators sound great but have severe practical limitations.

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of the home page) to get automatic email notification when a new blog is available.

Phil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Phil worked for Tandem Computer in technical support and software development.

Application Rationalization 101

Application Rationalization is a managed process that reviews and evaluates applications in the IT Application Portfolio on a rational basis, to determine which should be preserved and enhanced, redeveloped and re-platformed, replaced with alternative solutions, or simply retired.

The goal of application rationalization is two fold.

To Identify candidate applications for modernization action that might include enhancing, transforming or migrating to newer technology platforms, replacing with new solutions available as COTS or Cloud offerings, or simply retiring with no replacement.

To initiate action based on the rationalization plan, and begin the modernization effort.

What follows is a brief discussion of application rationalization, beginning with scoping, and following through to taking action on the rationalization plan.

Scoping

To begin the rationalization process, you and TIC Software develop an action plan to decide on the scope of the application rationalization effort, considering such drivers as:

Which business unit generates the highest IT costs?

What class of technology generates highest support costs, (e.g. NonStop)?

Which Line of Business (LOB) was most recently acquired and is now least integrated with the balance of the portfolio?

Then, we capture the following information, used to scope the Application Rationalization effort:

A count of applications to be reviewed,

The quantity and availability of supporting application documentation and support records

The report and presentation process that will follow from the rationalization effort (high-level, high-impact supported by detail roll-up

We will be grading applications on their cost, and the value they deliver, both now and in the future. Therefore we will need your agreement on how forward-looking we should be.

Rationalizing

The key drivers for the rationalization are typically

Enabling a “do more with less” attitude by identifying IT portfolio bloat and reducing it, thereby freeing funds

Bring transparency to IT by portraying IT spend in a meaningful (e.g. business and value-oriented) way, and

Establishing business ownership of IT assets (applications, data) through the Application Rationalization effort

To understand cost and value, we will gather and evaluate information within the scope of the effort. Here are some examples of what we would examine…

Where is your organization or individual business unit, if that is our scope going as a business

What are the desired principles of IT’s operation to support client’s business direction

What is the history and projection of annual support, license, and enhancement costs (people and technology) by application, considering direct costs first, and indirect from client’s rational basis of overhead allocation

What do Business and Technical Stakeholders think about the application suites under review, compiled through interviews and completed surveys

Understanding

The Application Rationalization process gives insight into the value that applications deliver and the costs and risks associated with that delivery. Delivered value can be understood as profits derived from business functions directly supported by application suites under review. However, there is a deeper meaning to delivered value, having to do with key strategic alignments, discussed following.

Alignment between Business Processes and Applications

Proper alignment means that the time and effort you spend running your business is devoted to productive work, not work-around. Misalignment means extra work such:

Is each business process is supported by multiple applications? This gives insight into redundant user interfaces among applications, identifies the use of application integration, and also identifies the number of applications that must be modified when the business process changes.

Are business activities are supported by a single application?

Are critical business processes/activities supported by different applications than the noncritical business processes/activities? This helps to identify less critical applications that might be replaced or retired

Does each application’s functionality support at least one business process activity? Applications that play no role in supporting the business should disappear

Alignment between Business Processes and their Data

Business and Data alignment means that business people have the information they need – accurate information, with the right level of detail, and on time. Misalignments make it difficult to get information that is relevant for the business.

We perform a technology and business process review to answer questions such as…

Is every data attributes used by at least by one business process?

Are all data entities meaningful to their business users?

Is the organization using standard, off the shelf applications for generating ad-hoc reports, inquiries, and graphs, or are custom-written applications doing this work?

How well is data lineage (origin, and update path) of data entities tracked?

Are business people responsible for overseeing the quality and relevance of data content?

Does the organization use an Information Architecture with published principles and rules? If so, which data entities are in compliance, and which are not?

Alignment between Applications and Data

Application and Data alignment means that IT experts expend coding effort coding business functions and logic, rather than on data repair, conflation, and extra transformation. We perform a technology and business process review to answer questions such as…

Is data entity managed by only one application? This means that entities are identified, created and reused by a single application, simplifying information management

Are data entities created with null values present, or with plugged values, when real values are not available?

Are there vocabulary and semantics organization standards so data from one business entity can be easily shared with others?

Do standards exist for data interchange formats across the organization? Are they used, or ignored?

Acting

Our application rationalization offering brings focus on the business value delivered by client application suites vs. the cost and risk associated with that value delivery.

No matter how complete the go-forward plan, or how compelling the analysis for modernization, retirement, or replacement of applications, clients will only derive real benefit by putting the rationalization plan into action. Successful implementation of a rationalization plan will require buy-in from all in-scope business and technology stakeholders. Therefore, selecting the right initial application suite, engaging stakeholders, and selecting the right modernization partner, are all crucial to success.

To learn more about TIC, Application Rationalization, Modernization with BluAge, and what it means for your NonStop environment, schedule a conversation by emailing us to TIC Sales .

Feedback please

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

Stuart Selip owns and operates Principal Consulting, LLC, an IT Strategy consulting firm that is a business partner of TIC Software. Prior, as the Chief Executive Officer of Luxoft’s Consulting Strategies unit, he managed delivery of IT Strategy consulting to Fortune 500/Global 2000 firms in the Financial Services, Insurance, and Media industries.

“Begin at the beginning and go on till you come to the end: then stop”
– “Alice in Wonderland” by Lewis Carroll

So you want to learn more about using modern tools and programming in modern languages. Your problem is not a lack of information and resources, but rather too much information. The challenge is: How do you begin?My recommendation is to start by getting familiar with the development standard tool, which in this case is Eclipse.

Why should you learn Eclipse?

Integrated Development Environment (IDE)
An IDE is a software application that provides comprehensive facilities for software development. Whether you will be programming in Java or other modern languages, Eclipse is a great development tool to use .

It is FREE!
Eclipse is open source, and can be downloaded free of charge from http://www.eclipse.org. Visual Studio from Microsoft is also an excellent IDE, but it does incur a licensing cost.

It is versatile
Eclipse has many, many features. You can use it for something as simple as a full featured editor, or for more complex tasks such as debugging or automated testing. My advice is: stick with the basic features that you need to get started, and not worry about all the other features until you need them.

It is extensible
Eclipse has an extensible plug-in system, which allows developers or 3rd party vendors to add additional functionality. For example, the BluAge Modernizationtool can generate code from models, as well as reverse model legacy COBOL programs into Java code. Also check out some of these plug-ins for NonStop from Nexbridge.

It works with NonStop
Besides being able to use Eclipse for developing applications on your desktop, you can also use Eclipse with NonStop. In addition to supporting Java, the NonStop Development Environment Eclipse (NSDEE) allows you to work with C, C++, COBOL and pTAL.

Learn once. Use anywhere (including NonStop)!

The advent of NSDEE provides a modern industry standard Eclipse based development environment for NonStop. It allows you to edit -> build -> deploy -> debug C, C++, COBOL and pTAL programs from your desktop. So, by learning how to use Eclipse once, you can apply your knowledge across multiple platforms and technologies!

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

Phil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Phil worked for Tandem Computer in technical support and software development.

Some people may believe in: “If it ain’t broke, don’t fix it.” Unfortunately, this saying undermines the importance of investing in strategic options with foresight to avoid pending disasters.

A couple of cases in point:

I started my first job in the 1970’s with an intelligent terminal company called Sycor, which was eventually acquired by Northern Telecomm. In those days, Sycor terminals were used for Source Data Entry (key to disk), and its programming language was called – ironically – TAL for Terminal Application Language. It was an Assembler/Macro like language, which required one to work with registers, memory addresses and screen fields. When Sycor introduced the Sycor 440 machine in 1976, it had a whopping 64K of memory, a 10 MB hard disk, and a COBOL compiler. Surprisingly, I was one of the very few field personnel that knew COBOL at the time. When I asked some of the more senior Sycor analysts about COBOL, their response was: “Why would we need COBOL? Assembler language is faster and uses less memory!” Well, we all know that the world has moved past Sycor TAL and assembler programming languages.

Fast forward to 2001: I was giving a web Enabling workshop to a NonStop customer in Chicago, when one of the senior COBOL programmers raised his hand and asked: “ COBOL works perfectly well for us. Why would we want do any of this web stuff?” That company was later acquired and sadly, they no longer use NonStop. None of the NonStop developers was asked to stay to work in the new IT environment, which was Unix, Java and totally web-based.

Today, the NonStop has a lot of modern technologies available, including support for SQL, web server, Java, Eclipse, SOAP and others. Yet, a lot of users still haven’t taken advantage of some or all of these new technologies. In many cases, they are still developing COBOL applications that use 6530 terminals, Enscribe files and interface with other platforms using FTP. Seriously, it is in your best interest to start considering options to modernize your NonStop environment.

“Why should I be interested in modernizing?”

Prevent self-obsolescence
Working with new technologies will expand your current and future employment opportunities.

It could make your job easier
There are a lot of facilities, tools and utilities available in Java, Apache, SOAP, and other new technologies that are “off-the-shelf” which you can leverage without any coding

Build a stronger and more dynamic team
If you are a manager, adapting new technology will create positive challenges for your current team, and make it easier to hire new staff.

“What should I do?”

Make time
I know that all of us are very busy at work, barely keeping our head above water. I encourage you to check out this blog “Create Time to Change Your Life.”

Pick one topic to start
Any topic: Java, Web Service, Apache, etc. Instead of trying to learn everything about all the modern tools, pick just one thing to start learning. Start slowly but work on it consistently. If you are looking for a recommendation, I would suggest Java. Why? Because it is easy to set up and learn on your desktop, and you can test your programs on the NonStop very easily. In my next blog, I will cover more on Java and NonStop, and the benefits that it offers.

Look for free tutorials
There are many excellent tutorial blogs and YouTube videos available. Here are some examples:

Don’t Wait. Start today.

In the history of IT, complacency and shortsightedness usually lead to obsolescence in applications, platforms and people. It may not be “broke” right now, but you can’t afford to wait for it to be broken before you try to fix it. By then, it will be too late.

Need professional service help? Contact TIC Software

If you need help to get started, you can benefit from our Workshops or Quick Start Service. TIC Software is ready to help you modernize your NonStop applications and develop new software solutions. Check out our Modernization Service suite on our web site.

Feedback please

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

Phil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Phil worked for Tandem Computer in technical support and software development.

May 2013 be a successful year to all of you. New Year always presents new opportunities, inspirations and resolutions. What are some of yours? I’d like to suggest that you consider taking up “AIM” initiatives – Assess. Innovate. Modernize.

Assess.

Too often, we get caught up in our day-to-day grind during the year that we had no time to pause and to inventory where we are. Yet, taking time to review and assess is critical to improvement in the new year.
For examples:

You have lots and lots of COBOL programs, but…Do you know what are in your application assets?

You know it is important to protect your “crown jewel platform”, but…How secure is your NonStop environment?

You have a whole team of operators, tech support, system managers, but…How efficient is your operation environment?

Now is a good time to reflect on where we are and to set some goals for improvement.

Innovate.

Get out of your status quo comfort zone and think outside the box! Commit some time to learn more about some of the newer technology such as

Mobile AppsThink about your users with iPad and Smartphones

Cloud ComputingWhat SaaS can you leverage?

Now, you may think: “But what does a legacy machine like NonStop have to do with these new technologies?” Think again! In fact, integrating new technologies with Nonstop could present some exciting opportunities and ROI for your organization.

Modernize.

While you look for new technologies to jump into, don’t forget all the valuable application assets you already have on your NonStop system. Make 2013 be the year to start your modernization initiative to make these NonStop assets even more valuable. Commit to starting one (or more) of these following projects:

Buid a better GUI with Java or .NET

Improve your database and application connectivity

Adopt modern development methodology and tools

Need help getting started? Look for more discussions on these topics in our upcoming blogs, with tutorials, examples and success stories. We hope that you will follow these discussions, and we would love to hear about your experience as well.

Feedback please

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

Phil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Phil worked for Tandem Computer in technical support and software development.