Shift Happens – 3: The Real Revolution of Modernization and Where It Really Starts by Mike Moegling
Application modernization is all the rage in the IBMi community and it should be. No other computing platform is both as modern and perfect for the intent of business as the IBMi systems are. Solid, secure, and able to reach the five nines of uptime and reliability in the enterprise. It simply makes sense to explore, conquer, and exploit the far-reaching opportunities of this platform and especially the truly powerful programming language of ILE RPG. The IBMi running on IBM Power Systems servers is a win-win for businesses and information technology pros. Using a pros and cons checklist heavily favors the pros gained from the platform. Scalability, reliability, solid, dependable, low administration costs, and the ability to connect and integrate to all other platforms and technologies providing a seamless and integrated look and feel to the most important resource in any company, the user community.
Regardless of all the checks and bullet entries in the pros column of a pros and cons list is a few very heavy cons that can be ignored but will eventually nullify the pros over time. The acronym of FUD (fear, uncertainty, doubt) is used often in the may discussion groups against those who are unsure of the remaining life in the platform and its technologies. “Is RPG dead” and “the old AS/400 fades away” are often sparks causing discussion threads that go out of control and have done more damage than help the cause. To be clear, this article is not to foster any FUD or cast a negative slant on this platform and the technologies that are built on it and in it. But with that said, I want to take on a few things and set a few things in place from my experience and efforts.
To be honest most of the cons are included by those who have a slanted or opinionated view of the platform. The platform is not old, outdated, or insulated. What is the basis of the cons is mostly found in ignorance, lack of knowledge of where the platform is really at, and lazy approach to what the platform is, which is true technology plain and simple. Old thinking and old ways are the curse and sickness which if this platform is going to elevate to its place where it should be in the enterprise.
Out with the old and in with the new
During the ERP heydays of the late 1990’s and first three quarters of the early 2000’s ERP vendors and businesses where very active in building out huge comprehensive software packages built on giant DB2 databases consisting of many modules and input/output technologies that were AS/400-iSeries based. This extreme push brought in a rush of RPG programmers and IBM AS/400-iSeries based professionals to build, support, and sell these systems, software packages, and third party systems to thousands of businesses worldwide. During this time the job market was ripe for those with reasonable RPG skills and systems progressed from RPG II to RPG 3 and then to RPGIV. With the influx of folks into the fold a culture and way of doing things entered and took up residence and were at the time the bedrock of the platform.
The ERP heydays also had a few other characteristics which are important to understand as we consider why modernization is a topic and not a way things get done. One very important characteristic is the isolated method that many kept the platform. Using twinax and terminals without the need for email, the internet, and other connected resources businesses could do the “work” of the business and not have to have more than one system in house. Everything was green on black and screen by screen. As the technologies of TCP/IP networking, internet, email, and other systems running on Windows and Unix began entering the enterprise the folks holding the keys of the kingdom where pressured to either connect or reject. Now a good bit of the folks responsible for technology and providing support and applications for the IBM systems began to insulate themselves from the growing technologies outside of the walls of green and black. The phases of “we have always done it this way” and “if it’s not broken don’t fix it” began to echo in many IT shops.
This is the beginning of when many fell behind. The people, not the platform.
Now for those who fell behind
RPG programmers may not sit well with the truth. While many have done the due diligence to grow with the advances of software development many have never grown beyond the skills and abilities that were developed during the ERP heyday but have limited themselves or have become imbedded in companies where the technical skills on the platform have been frozen in time. This is a damning problem for the platform and for the root cause of modernization. Short and sweet, the response of “it’s not broke, so don’t fix it” is not at all true. The platform is not broke and it is not being fixed. It is growing and evolving as a consistent improvement plan and roadmap by IBM. Frankly, the RPG programmer of this mindset is what is broken, and it’s time to fix it.
Modernization starts between the ears
Modernization is how you think. I have through several paragraphs set the stage here for several points which I would like to quickly get through. This is part 3 of a series of articles initially written for ILE-RPG.org (RPG Language) which I am working at peeling the layers of the onion back to get to the core of a few things to help drive forward the top to bottom approach to writing modern applications and full systems utilizing the IBMi platform as a major player in the enterprise.
Modernization is how you think. I am repeating myself here but to make a point it all starts between the ears. The developer’s ears, the business analyst’s ears, IT managements ears, and systems administrators ears. Building modern application is not a single source member, it is a whole different way of doing things and going about the work of doing it.
Why modernization? Answer: Who you write the applications for
It’s for them. Those who use your applications, the folks who come in early, work late, clock in at 11 pm, and burn hours against the free time in their lives on weekends, holidays, and overnights. These are the folks who are doing the real work. They make the sales, pack the orders, bill the customers, make sure the invoices are paid, handle returns, give great customer service, and had to deal with systems and software which make or break everything they do. Are the systems and software they work with full of bugs, help tickets, run slow, hard to use, and full of repeated and full of bloody knuckle keying? Then maybe true modernization would be a breath of fresh air for these folks. Great software is great software period. True modernization brings the potential for great software and systems to a point of reality for the hard-working user community that needs world class tools to excel in their efforts.
We can’t rewrite the past, and certainly can’t rewrite the ERP packages and IBMi based systems businesses use, but we can as software professionals begin to invest in the tools that need to reside between our ears when putting together great software and systems. Modernization has a few important soft skills which when employed with skill by software professionals can result in truly mind blowing applications for the business enterprise.
Look for a winner
I am an undercover software spy. I admit it. I look at everything on screens, POS systems, customer service applications, web sites, web applications, and medical systems to see what they use and how easy it appears to be to use for the person interacting with it. Does the person working with the application fight with it, have to tab and bounce around too much, loose their place, see what they need, must twist their hands into Chinese pretzels to perform a command, or do they simply perform the transaction and are ready for the next one? When I see a good interface, I want to know more about it and could it be something that I can learn from. Winning software is our goal.
Lipstick on a pig
Screen scaping has been lumped unfairly into the modernization arena and it really does not belong. Although I have seen some very good applications and utilizations of screen scraping technologies of late, this is strong method for long standing ERP systems to gain a better foothold in the effort to keep promoting their software while not having to re-craft twenty to thirty years worth of code. That is understandable for financial and business reasons. Will it keep the applications relevant to a growing culture expecting superior software? More than likely not, but for the time being it pacifies the masses.
Deep and knowledgeable information technology professionals know what good applications are and how the user interface and robust middleware coupled with database systems that are accessible and integrated are what the enterprise needs. Is this where modernization lives.
Here is the secret sauce
The secret to developing modern IBMi applications starts a good distance before the code, the data, and the tools. It starts with having the right skills and mindsets in place. It is a new way of thinking about applications and software and most certainly a new way of coming to work each day. It is an adventure many in the IBMi world are very ready to take. Most of all it is the hard-working user community who really wants a better way to get their work done, faster, and more thought out. The following list are some great places to put your thinking caps to use and spend some time developing as you change the world for your user community.
User interface design
UX for short. Getting the user interface just right for the tribe your application is meant for is everything. If you get this right you are more than halfway there. This may cause you to get away from how RPG developers have thought about screens but that is a good thing. What is the flow of what folks will be doing with your application? What information is available to them to launch into their work from where they are in their process? Can simple things be automated? How much is too much and how much is too little? Do you really need function keys to do the work? How much are you assuming from your users? Your user community is not stupid, remember that.
Your business rules belong in the database
This is an article all itself. The data is king, not the software. Traditional RPG has all the business logic and rules wrapped up in spaghetti code across many programs and versions of the rules in a spectacular mess. Modern application development is data driven and the data is king. Modernization is all about the stopping of the manhandling of data in the program and letting the much more powerful database and its allowances and constraints drive the applications.
Stop writing programs
RPG was all about “write a program for this and a program for that”. Modernization is all about applications and apps. Applications exist on frameworks and have a structure that separates the various elements of software to its rightful places. User interfaces are on the outside and help the users work better and contain no crucial business rules. Application frameworks are for controlling the parts and the elements of the application. Heavy and proprietary logic can exist in modules with procedures/functions in a singular form per requirement that are stateless and encapsulated and can be called from anywhere in the application producing the expected results each time. The data layer is designed, powerful, and drives the application. This example is a MVC (model, view, control) framework. This is not the end but the start of the modernization revolution.
Know and then be known
This is a habit from the Seven Habits of Highly Successful People by Stephen Covey. Listen to your user community. Engage them to talk to you about the software working like they would have it if they could make it. Keep your mouth shut and let them talk. Try to breakdown limitations and things that constrain them from their work. This may make development difficult and cause the development team to work really hard, but that is not a bad thing. Software projects must have scope, but let’s set the scope right on the target right at the beginning.
Get outside of the box
What do you do to learn and are you learning? In this age of the internet and the many sources of information available for software development professionals it is time to get outside of the box. While traditional RPG developers were pulling their heads into their turtle shells and ignoring the software development explosion the skills and methodologies of software design and development have been tried and tested and have become an incredible resource of knowledge.
Software development is technology and coding is coding. The amount of code in active service under high use is much greater outside the IBMi world than is in it. These folks know a thing or two and can be a tremendous asset to the growth of a modernization mindset for the IBMi platform. While we were arguing about if RPG free was the way to go or if RDi is worth it the rest of the development ecosystem developed frameworks, design patterns, wrote books on it, tested the theories, became open source, and exceeded Moore’s law tenfold.
So, get outside of your box, and start learning. This may take some of your free time away and cause many late nights in front of a glowing laptop. Your job and future depends on it. Your user community will cheer praises of your work as well.
Modernization is between the ears. This is where we must start. New habits, skills, methods of thinking, and growth are your rewards. The mold has been broken and the road ahead is open and awaiting you to start your journey. The IBMi platform and all its technologies and capabilities awaits you to create the powerful and modern applications your user community expects from you.