Friday, March 30, 2012

Adopting the Non-Coding Lifestyle

Moving from the FOCUS 4GL to the WebFOCUS BI product is more than just adopting new technology; it is a complete lifestyle change. 

In the old FOCUS 4GL world, developers used text editors to manually create applications. The idea behind WebFOCUS, however, is that developers will use GUI tools to automatically generate the underlying code. 

Many hardcore 4GL developers from the 1980s pooh-pooh this GUI idea and continue coding by hand, waiting for that retirement date to come around. Most new WebFOCUS customers do not understand this and demand that developers use the GUI tools. 

Of course, the Developer Studio is "THE GUI" for building WebFOCUS. Developers who refuse to use Information Builders's Developer Studio and instead muddle through WebFOCUS development using a third-party text editor such as UltraEdit have a serious need to find Doc Brown's DeLorean and go back to 1985.

To be more specific, when customers talk about the WebFOCUS "GUI," they are probably referring to the Developer Studio's HTML Composer and the Report Painter. 

Some WebFOCUS developers complain about the Report Painter. While it has come a long way in supporting Dialogue Manager (the procedural scripting and symbolic variable substitution magic that makes WebFOCUS so powerful), there are still issues with painting highly dynamic reports. 

Which is not exactly the Report Painter's fault; how can we expect it to display a report that will dynamically change layouts based on the user's run-time input? Not that it couldn't be done, but it would be tricky. 

The HTML Composer lets you design launch pages in a GUI WYSIWYG environment. As of release 7.7, no good WebFOCUS developer should even suggest manually writing his or her own HTML documents. It just isn't necessary and it is definitely not smart. 

And Information Builders is beginning to step forward with comments to that effort. A Partner Intelligence consultant was involved in a conversation between the New York help desk and a WebFOCUS customer. 

Here is what he told me:

"During the call, New York said that developers really should not change the HTML.  If developers do manually modify the HTML code, he said that IBI could refuse to help with any web page issues."

I suspect that the New York help desk person probably means that a developer should not monkey around with the HTML/XML document which the HTML Composer generates. I agree wholeheartedly (I might covertly not follow that mandate, but I support the philosophy). 

IBI's position probably comes from the fact that they are not happy helping people debug problems caused when these people manually changed auto-generated code. This is HTML/XML code that IBI does not think anybody should even bother to look at, much less change. 

This stance is similar to the notice on the back of most of your electronic devices: "Don't bother opening this. There is nothing inside that YOU can fix." 

Along with the HTML/XML, any modern web application is going to have JavaScript. Adding your own procedural scripting logic is perfectly fine; almost every interactive dashboard practically demands it. The New York technician would not have implied you can't add your own JavaScript. 

Along that point, however, there is also the standard IBI JavaScript engine that comes with the product. You will see it referenced in the generated HTML code as something like "ibirls3.js" where it means this is IBI Release 3 of their core JavaScript engine. 

You should not try to modify IBI's underlying JavaScript logic (you would lose your changes the next time you upgraded WebFOCUS anyway). You would have to be trying to implement a temporary stopgap to overcome a major problem if you decided to go down that route. 

IBI has never in the past documented the HTML/XML nor their underlying JavaScript engine. They are changing some of that now because they are running into pesky developers who peaked under the covers and strarted using undocumented JavaScript functions. 

As a result, IBI has come out with "public" functions which developers can use safely and will tell people to stay away from the "private" functions. Use of the undocumented functions is unsupported and applications written with them could stop working in the next upgrade (and the New York help desk person may tell you politely to take a hike--at least as politely as a New Yorker can say that type of thing). 

So here is how I see things. Use the GUI tools to generate as much as the code as possible (it's the 21st Century and companies decided against coding 4GL applications at the beginning of the 1990s). 

Here are some guidelines: 
  • Generated HTML/XML documents created by HTML Composer: do NOT manually edit
  • Standard IBI JavaScript engine that comes with the product: do NOT manually edit
  • Custom JavaScript that goes with generated HTML/XML document: add whatever logic you need, but don't reference private functions inside the IBI JavaScript engine
  • Generated Report logic from Report Painter: don't dismiss it entirely; try to develop with it so that the person after you can use a GUI tool 

As always, if you have any questions just contact me. 

No comments:

About Me

My photo

I am a project-based software consultant, specializing in automating transitions from legacy reporting applications into modern BI/Analytics to leverage Social, Cloud, Mobile, Big Data, Visualizations, and Predictive Analytics using Information Builders' WebFOCUS. Based on scores of successful engagements, I have assembled proven Best Practice methodologies, software tools, and templates.

I have been blessed to work with innovators from firms such as: Ford, FedEx, Procter & Gamble, Nationwide, The Wendy's Company, The Kroger Co., JPMorgan Chase, MasterCard, Bank of America Merrill Lynch, Siemens, American Express, and others.

I was educated at Valparaiso University and the University of Cincinnati, where I graduated summa cum laude. In 1990, I joined Information Builders and for over a dozen years served in regional pre- and post-sales technical leadership roles. Also, for several years I led the US technical services teams within Cincom Systems' ERP software product group and the Midwest custom software services arm of Xerox.

Since 2007, I have provided enterprise BI services such as: strategic advice; architecture, design, and software application development of intelligence systems (interactive dashboards and mobile); data warehousing; and automated modernization of legacy reporting. My experience with BI products include WebFOCUS (vendor certified expert), R, SAP Business Objects (WebI, Crystal Reports), Tableau, and others.