Changing the programming culture can eliminate many problems, without the need to develop skills and expertise for a new tool.
Here's a step by step guide to how to go about it, and some ideas about what the advantages of this approach could be.
So, follow the call to revolutionize your development department's culture and usher in a new era of productivity and quality...
Lately, I had worked at a Progress shop, where a top-down approach was demanded. That is, everything is in one program. You start reading at the top, and finish at the bottom of the file. Whatever needs to be done, is being done right there. They have thousands of programs, most of them copies of other programs, containing further copied and pasted code-snippets from even more programs. There are no naming conventions in the DB. I haven't seen such a situation since the early 90s!
In an attempt to solve their problems, they are now switching to Oracle.
And that makes me very sad. You see, the real reason for their problems is not PROGRESS, but their approach, the culture.
Maybe, switching to Oracle will solve some of their issues, as the Oracle culture is being formed as we speak. The PL/SQL guys are using a different approach – and are allowed to do so.
The folks of the old culture, however, are forced to deal with this ancient methodology, and are being frowned upon when things go wrong. I dare to suggest, that if they would move to the 21st century, and train their programmers in structured programming (not OO, just plain and simple structured programming – i.e. separating UI from backend, standardizing and encapsulating certain logic, instead of copying and pasting) they would solve most of their problems, too; without collecting a whole boatload of new problems, inherent in Oracle, and by using two systems in parallel.
Here's a step-by-step guide to modernize your application development culture. It is much less risky, costly, and disruptive than switching to a different tool:
We are all afraid of change. Especially, if it involves acquiring new skills. It is so much easier to accept and embrace change, if we understand what is happening and why. In order for this endeavor to work, the buy-in of the developers is needed.
People have to learn the new approach. Learning means training – there's no way around that. But you do have a choice about what kind of training you want to pay for:
While the first option saves you the expense of a consultant, the second saves you the expense of failed trials. Also, the second option provides an immediate, clear direction.
Obviously, any program that is written using the new approach doesn't add to the problem, but is part of the solution. It allows the developer to practice the new approach, without having to worry about regression risk (which is an important concern when touching existing programs).
Anything, that used to be copied and pasted in the olden days, now goes into a standard procedure, which can now be used by any program that needs it.
Note: So far we haven't touched any existing code! However, the culture has been changed, and the bleeding has been stopped!
“If it ain't broke, don't fix it!” However, if a program needs to be fixed, enhanced, or adjusted anyhow, depending on the magnitude of the necessary changes, it might be worth restructuring the program to follow the new style.
Important: Before doing so, I would suggest to find a few test-cases and write a test-program that can be used on the new version, to ensure that the overall function of the program wasn't unknowingly modified.
You might wait for a 6th step, asking to rewrite existing programs. But, I don't think this is necessary. If a program doesn't need to be modified due to changes in the business needs, or due to bugs, there is no need to touch it. Just leave it as is. That, to me, is one of the biggest advantages of a culture-change, versus a tool change!
I think the advantages of such a culture-change are easy to see:
So, in short, before considering switching to a new tool it might make sense to examine your departments culture. Maybe a change in culture can eliminate most of your problems. It is far easier, and far cheaper.
Thank you for your attention and your comments. And much success in making the worlds best application using OpenEdge!
Comments
Corporate Seminar on Implementing Change
A seminar to help a group, department, organisation implement change - any change - is offered here: http://www.tooloftheuniverse.org/seminarCorpChange.shtml.
The real irony would be if
The real irony would be if they moved to OO in Oracle and decided that was much better ... since that would be fixing their development process in a way that they could have done in ABL, OO or not.