We left the first part of Jon's saga “The Birth of a New RPG” with the realization that perhaps the SAA RPG compiler that had been developed for OS/2 and mainframes could become the foundation for a new ILE compiler for the (then) AS/400. The story continues. …
It is difficult to explain to anyone who has never been part of the process quite how skunkworks projects evolve within IBM. On the one hand managers were held to tight resource budgets and would therefore rarely make staff available for "unofficial" projects. On the other hand, you always got the feeling that there was a secret page in the manager's manual that told them that sometimes they should turn a blind eye and ignore the fact that their staff were "disappearing" for unexplained meetings. There's no other way I can explain the fact that we could get staff together and spend time on the project without there being any code to charge time to etc. In fact, in the early days of the project the only person who knew "officially" what we were working on was my manager. And he didn't tell his manager.
The first thing we did was gather a group of senior developers to discuss just what we were looking to do and to build a list of functions and features that we wanted to see incorporated. It is interesting to note here that the majority of group members were not necessarily RPG fans, but they all recognized its importance to the platform. The core group of five was drawn from the SAA compiler team, one from the RPG/400 team, one from the PL/I compiler, and we were also joined from time to time by others from the planning and architecture group. I won't detail all of the features that we put on that list. I don't have a copy of the original document, and it was too many years ago to remember now. But it did include things like longer field names and free-form expressions--this latter feature will be important in the story later on.
In my mind one of the biggest challenges that we faced was that, with the exception of me, nobody on the team had ever coded RPG for a living. They were all computer science grads. So how could we validate that our design objectives met real-world needs when we couldn't tell anybody what we were working on? We decided that the only way to do it was to gather a group of IBMers from around the world who were familiar with RPG and who could be trusted to keep the project under wraps without the need for NDAs. So recruiting that group became my first order of business. That team eventually included folks from the Rochester Lab, IBM UK Education, the Australian Lab, plus some senior SEs from US, Italy, and elsewhere. It was an eclectic group.
At this point in time a number of things were all going on at the same time including:
• The folks we had co-opted from the SAA RPG group were experimenting with running the compiler through ILE C to see what changes would be needed and were also trying out additions to the parser to allow us to handle free-form expressions and keyword driven options.
• We were attempting to formalize some basic documentation for review by our collection of in-house RPGers.
• My management was working to fund the project officially, assign management and work out the team members.
• And just to add interest to the mix, Paul Conte (then a technical editor for what later became iProDeveloper) announced a free-form RPG dialect that when run through a pre-processor generated RPG/400. This was particularly interesting since at the time free-form was the direction our design was taking.
Looking back at it now I am surprised at how little of the detail I remember as there was just so much going on all at the same time. I do recall countless meetings, financial justifications and more, but the timing is all a bit foggy. Guess I should have kept notes!
Gradually the shape of what we wanted the new RPG to look like began to emerge. We got good feedback from our review team and it was time to take the next step--to start showing the design to "outsiders."
Only those who have worked at IBM or a similar large and secretive organization will fully appreciate what a monumental task getting permission to do customer briefings on an unannounced product can be. Even more so when there was no guarantee that a "product" would ever emerge. While there was initial development funding in place there was no long-term commitment to producing the compiler and the plug could have been pulled at any time. From our perspective, the more users who knew about our plans the more pressure there would be on IBM to bring the compiler to fruition. So frustrating as it was getting all the permissions and NDAs in place, we had a vested interest in spreading the word as quickly as possible.
The group we selected to be briefed on the plans ranged from representatives of major ISVs, to the trade press, to educators, to well-known RPG gurus (from both the S/36 and S/38 sides of the spectrum). In all a group of about 16 or so people came to Toronto to hear about the plans for the new RPG.
The design was, on the whole, well received. Vigorous debates ensued about some of the finer points, but on the whole there was less pushback then we had expected. Not surprisingly, some were more strongly in favor for the free-form aspects of the design than others, but all were in agreement that a new RPG was sorely needed and that we were headed in the right direction.
Over the next few months the design was modified and updated, and revised review documents sent out to both the internal IBM reviewers as well as our external experts. During the same period the noise level from the user community about the lack of RPG/400 enhancements was steadily growing. So because the design was firming up and more and more work was being done on the compiler itself, we decided it was time to go "open kimono" and begin to show the world wide RPG community what we were thinking of doing.
Presentation charts were built to highlight some of the proposed features, and we began to include them as a five or 10 minute addition to any application development presentations we were giving during customer briefings, user group meetings and other gatherings of the faithful around the world. Of course we always had to specify that this was just something we were thinking about doing and that it might never actually come to fruition.
And that was when things started to go wrong--so much so in fact that at one point it threatened the survival of the project. But you'll have to wait for the next episode to hear about that!