Steve Ferrell on RDi Development
Charlie Guarino: Hi everybody. This is Charlie Guarino. Welcome to another edition of TechTalk SMB. I'm very happy today to be joined by the principal software engineer and the team lead of Rational Developer for IBM i (RDi) at HelpSystems, Steve Ferrell. Steve, welcome to the podcast today.
Steve Ferrell: Thanks, Charlie. Glad to be here.
Charlie: Yeah, I'm so glad we have a chance to chat and talk about RDi. So as I read your title here, the principal software engineer of RDi. Can you give a little better idea what that actually means? You know, what does that—what does that title comprise?
Steve: Well I am the technical lead for RDi. So, I'm basically in a liaison with the IBM Toronto team to make sure that we get all the development and L3 support for RDi. So once a defect comes in, we're going to handle those, but we don't do the actual support itself.
Charlie: Right, so it's pure development of the product.
Steve: Right so we, you know—we come up with the new features, new functions, and any and all of the APAR fixes.
Charlie: You know Steve I have a list of questions that I'd like to go over with you but one of the very first questions is a question that I get a lot when I'm out-when I'm out in the field a question that's-that's almost always brought to me is how do I get the product?
Steve: Well Charlie one of the—one of my favorite websites is the RDi hub, but I also have a YouTube channel where I do 90-second videos and I have the link for actually getting the trial version downloaded, but I'd go to the RDi hub. You can also just Google, you know, Rational Developer for i and you can find a seller that will, you know, sell you RDi. We don't—at HelpSystems we don't sell the product. We just do the development of it.
Charlie: So any discussions that people might have about license and things like that, that would not be directed to you at all.
Steve: No but again we'll take those questions and we'll pass them on. You know we do work closely with the teams in IBM, not only the development teams or the former development teams but we also meet with the offering managers like Tim Rowe and Alison [Butterill] on a regular basis you know, so we bring up a lot of these and we meet, you know, every month or so with L1 to support. We'll have a discussion with them and that's probably their no. 1 issue is licensing, right? People are saying "where can I find my license?" and it is tricky. RDi hub does have a great step through of, you know, how to find your reseller, how to find your license, how to do the installs.
Charlie: I will tell you that once you get that going, it is seamless. It seems—it might seem complicated, but really just follow the instructions and it really does install quite readily.
Steve: Yeah. No the install, like I said, really it's a matter of finding the license jar, right? Once you have the license jar, it's very easy to install the license. It's that interaction with those resellers, right, or through passport service but again there—there are—on the RDi hub, there is a web page that talks about how to obtain your license, which tells you that it is fairly complicated, right, and again it's outside of our scope. So I can't really do anything about that other than help direct those questions to Alison and that team.
Charlie: You know one of the greatest things I think that was—the greatest decisions that were made in the last year or two I guess perhaps is the introductory trial. That is when you download it, you are entitled to a—it was 60 days. Now it doubled 120 days, which to me is phenomenal.
Steve: Yeah and really the driver behind that was—you know people were asking you know "what about students?" right? I have a class. I don't want to go buy RDi necessarily, right? I want to be able to use it for my RPG class. So we decided that the 120 days makes it available for those folks to go ahead and do it, plus you know it can take some time to get used to, work around, kick the tires. 120 days makes it pretty easy to, you know, figure out how to use RDi and my thought is by the time you're done with that 120 days, you're going to want to buy a license because you're going to find it's too difficult to go back to PDM or SU.
Charlie: I absolutely agree with that. Once you've gone that way and in fact—in fact for sure the—once you get past that initial learning curve, the value is easily and this has been documented, but I support this 20, 30, even 40% you know, more productivity. It's very obvious how you can gain that in such a short amount of time.
Steve: Yeah it's one of the no. 1 reasons why—you know, I had used RDi in the past but when we used it in the past, it was for records that were longer than—you know, 90 or 80 characters long but you know in previous versions I found it difficult to use. When RDi 9.6 came out, they did a wonderful job, IBM lab did on 9.6 and you know, I wouldn't go back. I wouldn't go back to PDM SU.
Charlie: It's—you think about people who are still using that and all the functionality that they're missing with the new product, not to mention, and we know this—you know, SCU has been stabilized at 6.1.
Steve: Yeah, it's—you know back in 2017 when we took over the development of RDi, it was actually before I even met the team at IBM, Susan Gantner was here in Eden Prairie and she was a QUSER on RPD enhancements. I was sitting in the back of the room and she had a question. She said how many people in the room have been doing RPG for more than 10 years, 20 years, and everyone had their hands up. Then she asked how many of you use RDi and 60% of the hands went down. So here we have a lot of people who are using RPG and only at that point 40% were using RDi, so that was the epiphany of, you know, we need to come up with a better way to make it easier for those folks to transition to RDi.
Charlie: And the product continues to get updates; it gets improved. I know there are fix packs that come out on some kind of regular cadence. What is that regular cadence for fix packs or new releases?
Steve: Well what we've been doing is since we've actually been developing, we've only done ifixes or fix packs. The difference is in a—in a fix pack we try to do our cadence of spring and fall TR, right? So IBM does enhancements on a spring quarter and a fall quarter so we try to mirror ours with IBM, so we typically do like an April/November timeframe. Now the difference again between you know, an ifix or a patch and a release—you know I had a made a decision awhile back when we first took over RDi that I wouldn't want go do a new release without going to a new version of Eclipse, right, because to me that's a major boundary, right? So that's why, you know—9.6.12 will be the next release coming out and so that's really the driving factor of—you know, what's the difference between, you know, an enhancement pack vs. a new release.
Charlie: And with that talking about the new fix packs and things like that. So there are always new features being added so how—so let's talk about that because that's something that comes up a lot, and that is how do you decide or how does the team decide exactly which features are identified to be put into any particular fix pack or release?
Steve: Well that's a great question. You know IBM has this wonderful thing called the RFE, request for enhancements, and again if you're not sure how to get to that, RDi hub has a great link that will take you right in there. It allows users to go ahead and enter new enhancements. It lets them vote on current enhancements and so that's probably our no. 1 driver. We also have a WDSCI-L mailing list. People will mail things out. Again we talked about meeting with IBM support and development teams. They'll drive some, including, you know, different groups within IBM—large customers, things like that—and then we do this process here at HelpSystems called customer interviews, where we'll talk to customers specifically, and you know it's a 30-minute little conversation that I have with customers. It's not necessarily just on RDi. It's kind of what's driving, you know, their development, what's driving, you know—what difficult things they have in life that we may be able to help with, right? We may not be able to help them with it, but sometimes just have them talk it through really helps. And then we meet with trainers—you know we talk with all the trainers. We have discussions occasionally. I know we need to have one here in 2022 here soon, tweets. We have a lot of internal users. HelpSystems has been around for gosh, I don't—over 30 years. I've worked here for 25 and in that time, that first 21 years I worked a lot of RPG, CL programs and so we've got a lot of internal users that will come up with different things. So they'll say gosh, it sure would be nice to have you know—or just you know in general we're—we'll run into the same thing—and then of course you know the QUSER story that I had talked about earlier was a perfect example of driving the PDM perspective, you know, to help new users. And when we'd talked about that at IBM, you know in having that little option field, you know the team was a little reluctant at first to have that. And so we just said okay, then we make it, you know, able for folks to turn it off. But it was funny because as we were sitting there learning the product, you know the team would be showing us different things and they were constantly creating new filters, right, to go look at different source members and each time they did that, they would be like gosh, you know this is a perfect example of a quick filter, right? Wouldn't it be nice if we had the object table view quick filter now? You know so that really solidified why we needed to do it was seeing that training session.
Charlie: But doesn't it go beyond that, Steve? I mean adding enhancements is one thing and that's always a good thing, but before it's rolled out to the general public it has to be tested in the field by developers and I know we—there's some discussion out there about—how is it beta tested? I know we—there is an offering for beta testers or how does that work?
Steve: Sure. Well first off you know we at HelpSystems do a lot of testing, right, and what we inherited was a lot of what we'd call delta testing, J unit testing where we have automated tests but what we really need is beta testers, right? I've put the call out in different areas and it's good that we're having the discussion now, but what we typically do is about six weeks before we're going to generally announce, we'll send out a fix pack to beta testers and have them test it, right, because yes, we have people here internally testing. We have, you know, the delta test that I talked about. We have internal users who will help us with the beta testing as well but when we get more involved beta testers, they have a much more diverse base of source, right, and that really is helpful. So again if you're interested, I'll give Charlie my email address. Contact me or contact support, IBM support and say you'd like to be on the list. We're always looking for it. The only thing we ask is that people sign a nondisclosure agreement so they don't, you know, put screen shots until we're actually GA, but that was a great question.
Charlie: Sure. So I know Steve as far as enhancements themselves are concerned, it seems but it's not true that the majority of enhancements aren't to RPG but that's not entirely true. I know more recently other languages have benefited from enhancements as well. Can you talk about some of those?
Steve: Sure you know we do a survey here at HelpSystems where we try to figure, you know, this system of IBM i and how things are. RPG is probably 80% used out there; that's why most of our focus is there but recently we—you know we updated the outline for CL because we know that more and more people are using CL, right? You know we are being asked to do more with COBOL so whenever we can, we will be updating the COBOL output as well. You know there are other languages as well that I've been putting out on my video series so I've got—if you just google "RDi Steve Ferrell" or just "Ferrell RDi videos," I've got 90-second videos out there and, you know, out there I'm showing people how to do Python right? You can write and run Python all within RDi directly and it will do syntax highlighting and even limited content assist, so it's not just for RPG.
Charlie: Of course one of the things I like is the SQL that there has been new—newer enhanced formatting which I think is analogous to the ACS SQL formatter.
Steve: Right and actually it's even integrated, right? That team supplies a plug-in for us so I know you had talked—you know kind of our role here at HelpSystems from the development standpoint and one of things we do is we get plug-ins from IBM, right? They supply us things like LPAX debug and one of the things we get is that new SQL formatter.
Charlie: Steve, you mentioned the RFE community, request for enhancement community, and that to me is one of the most powerful tools that the community has at their disposal, the ability to communicate directly with the developers of various products that IBM offers. And it really I know gives them a lot of guidance—gives IBM that is, a lot of guidance in what's being asked for—but I went recently into the RDi/RFE community and I see so many requests out there that have the status uncommitted candidate and I know the very nature of the RFE community is the people—other people can vote on your requests. And that's—the premise is that more votes, the more votes any one request gets that will hopefully get looked at more closely, but I've seen some requests out there with seemingly far fewer votes that get implemented. Can you speak to that?
Steve: Sure. The RFE system is a wonderful tool, right, and you'd mentioned uncommitted candidate, and basically what that means is every two weeks we meet with IBM. Last year was the first time that any team at IBM had gone through every single RFE, so last year as we were going through these RFEs, there may have been some that had, you know, minor votes, but we thought, you know, more people may not have voted for that because they didn't know that it existed, right? You know we may at that point had 300 RFEs, so it makes it kind of difficult for most users to go through and view them. So a lot of times you know, our no. 1 focus here at HelpSystems is reliability, right? We want to make sure that you're not restarting RDi. We've done a wonderful job since 9.6.02. There were some issues early on with 9.6.02. We addressed those with 9.6.03. Ever since, it's been our no. 1 focus. Our no. 2 focus is productivity, right, because during our customer interviews almost everyone tells me "hey we're being asked to do more with less time or less people," right? So that tells me that we really have to focus on productivity. So there are times where we're reviewing these RFEs and we're like, "gosh, you know that would be much more productive. Let's go ahead and implement that." So we typically try to keep, you know, the uncommitted candidates, and once they hit a threshold of 40 or 50, that's when we start looking, you know, more seriously at them. But that doesn't mean that we're not going to implement something that has five votes or two votes, right, because it really is the impact on productivity for users. So, great question.
Charlie: I wonder maybe if there is one that has lesser amount of votes but maybe it's associated with another fix that's also being implemented, so it's easier to put in at that same time.
Steve: Yeah. A lot of times you know it's while we're touching the code if there is something else that we can do to help. You know a lot of times we'll catch things while we're in playing with it. You know we'll be testing something and say "gosh, I have to do this every time." You know a great example is—you know when we're doing different tests this last cycle every time I would go in, I'd have to remember to go ahead and type the insert key in there, right? And we had an RFE out there and I really can't say, you know, what's coming out in future versions, but I can tell you that that's one that drove me crazy, you know, having to remember to hit that insert key. So I'll tease a little bit to say that you know with this next release, you won't have to worry about that. You'll be able to set a setting and it will set the insert for you. So but again the uncommitted—you know when you talked about uncommitted candidates, right? Those are ones that mean we've reviewed them. We think that they're worthy of sitting around and getting more votes. It doesn't necessarily mean we're going to do them, right? You may have one that sits out there for many years with two votes and we must may at some point say "you know what? We're going to go ahead and decline that."
Charlie: So what do you think right now is the most powerful function within the product?
Steve: I would have to say refactoring, Charlie. I know people have—that was, you know, the no. 1 and no. 2 voted RFEs over time and you know it was great that we were able to implement them, and we did it in kind of phases. You know we try to build on success, so at the time we came out with extract constants, we did just string constants and again, you know, it's helpful because you're able to reduce your code by reusing that information, right? And then now we've added the ability to refactor all constants, which is really helpful, and then refactoring procedures, right? Dry vs. wet. It doesn't matter whether you do the rule of two or three. You know I hear people all the time—I'm asked what's the easiest way to copy code from one member to another, and my thought is don't. Extract that. Put it into a copy module. Have that code one time. You know I always tell my developers while you're coding—you know, the first time you code something, code it. Code it the way you need to code it. As soon as you copy that code, think about the fact can you abstract that so you can reuse it because it's easier to go back and test right? You're testing one module or one procedure instead of having to make a change in 15 different things. So I would say refactoring. If you're not using it, please give it a try. I know it's difficult sometimes with, you know, an existing code base. You may be told you can't do that but it's—you know if you're writing new code, I highly recommend you do that, right? You want to change a string? It's a lot easier to go up and change it in the constant than have to go change it in 15 different spots.
Charlie: I have to agree with you there, Steve. I totally agree with you. I think the extract procedure particularly is one that's one of my favorites, and I think that's a real high value function. If you look at the roadmap to code modernization and things like that, anything—any time you can extract, that puts you on a path. Now you can take that particular procedure and maybe go one step further. Put it into its own module and service program right there and make—talk about reusability, that's a perfect argument for that, or argument or a perfect benefit I should really say, to doing that, and that includes—you know, it will create the necessary parameters. It doesn't always do a perfect job, but you know refactoring procedure is not a trivial thing to do, but it does a fairly good job.
Steve: And I will say that you know again, building blocks will continue to improve it. We do need to get better at looking at the parameters and doing them for you. We need to get better at exporting them for you, you know I—and I will say that, you know, the long-term roadmap, that's an area that we'll continue to improve on, right? You know we may be done with the original RFE, but you know we will continue to make it—make you more productive by doing that so.
Charlie: You know as long as we are talking about modernization, Steve, I know a very big push in many shops right now is using more formal change management, including things like Git. And in the world of Git, that's going to require source members being stored in the IFS, for example. I know some IFS support has been added, but what can you talk about as far as IFS support and maybe even a quick thought on how Git might come out.
Steve: Well we have, you know—we have a lot of third party vendors [make what] we call plug-ins, right, that do different things as far as, you know, extending Git or their own form of version control, right, so we do at some point, you know, improve it. You're able to use Git. I know I've seen videos by you Charlie on how to go ahead and set it up. It's not the easiest but you know I have a video showing people how to move things into IFS, you know from QSYS, and you can use the IFS you know pretty easily within RDi. And you know you'd asked earlier about how we come up with different features, right, and I know we had a tweet once that said, you know, "I'm not able to open a copy member in IFS." And that was a trigger to me to say "you know what? Why don't we make it easy for folks to open regular?" They should be able to open IFS ones just as easy, so that was, you know, a driving factor of, you know, allowing people to have IFS copy module. So you know we're working toward that. I know it's come up within the last two years of, you know, can we do more and should we do more? We are seeing more and more people going to version control—which is great because when you look at the survey to see how many people are actually some sort of version control, it's kind of scary how many people don't, right—so anything we can do to make it easier for those folks without stepping on the toes of our third party vendors, we have to—that's kind of a dance we have to do. You know we don't want to necessarily step on our folks that do those vendor—do those change management systems, but we do have to give, you know, the ability for teams to do that. We do have one team here that internally uses IFS to build their products you know, and when I say products I mean actual HelpSystems products that are driven from the IFS. So one of the directions I've given to my team is, let's take one of our existing plug-in products called Abstract and put that into IFS, and then that gives us a real working example of how we can improve it. That's the way we, you know, do a lot of our improvements, right? We'll find source from within our company that breaks something, and then we'll fix it.
Charlie: You know, Steve, you mention plug-ins and you're absolutely right as far as the third party tools are concerned. I've used probably all of them at one point at different sites and they do an excellent job. The third party tooling that's available is really good so just, you know, kudos to them, but you know the one plug-in that comes to my mind that anybody can get for free is iSphere. We have to at least give them a mention because that's been around for quite some time. It is free and it really does extend the use of RDi. You want to just give some thoughts on iSphere?
Steve: Yeah. No, like I said I—you know I personally don't use iSphere. When I try to run, I try to run without third party plug-ins so that it doesn't cloud my judgment of base RDi, but there's not a single person at HelpSystems who doesn't use RDi and iSphere, and most people that I know will go ahead and load it. Thomas does a wonderful job of updating iSphere, and I can put a shout-out to him as probably our no. 1 beta tester as well. So we work really closely with him to make sure that you know we—the purpose of our beta program that we had talked about before, right, is so that third party plug-ins can make sure that they don't break when we do a release, right? That’s our—that was our no. 1 reason for going to six weeks was to give them time to go ahead and make any changes in case something happens within a release. So iSphere does a great job. There's actually out on the RDi hub, Charlie, there's a list of all third party plug-ins or what we call how to extend RDi, because again you know we can't do everything. We just don't have the time to do it all, right, so we have a community out there in the RDi hub where people can go ahead and take a peek at different third party plug-ins. If any are missing on there—so if anyone is listening to the podcast and has a plug-in that isn't listed there, please send me an email. I will get the RDi team in Toronto to add you to that list or I'll add it myself because again, it's a great resource for going and figuring out, you know, what do I want to do? Do you want to do RPG J units? Do you want to do unit testing? Do you want to extend, in the case of iSphere? You know a question came up today on WDSCI-L mailing list: how do I copy from one member to another, and the answer was iSphere. Again you know there are things that iSphere can do that we haven't opted to implement right now, [but] again, they do such a great job. I would say that there are times where we may have to do some overlap and do some of the functionality because larger companies, some banks won't allow open source. It's a wonderful open source product, though.
Charlie: And to be fair to the RDi development team in general, it's not really—it would be nearly impossible for you to come up with every possible plug-in to satisfy every request that every developer wants.
Steve: Right and like I said, you know I think of it as a community, right? Eclipse really is made for that, right, and part of that RDi hub that I talked about tells people how to create their own. You know there—you may have a large company that has something very specific they want to do. We give them pretty detailed instructions on how to create their own plug-ins so they could create their own to do their own process.
Charlie: So if I want—if I'm a newbie to either the platform or a newbie a new developer starting to use RDi, things like that, how do I get started? I mean, where do I go? Where are some resources that I can learn how to—once I have this thing out of the box, how do I, or where do companies go? How do I start using this or where do companies go to train their teams? You have any thoughts on that?
Steve: Yeah. There's again, you know, I keep bringing up the RDi hub, but the RDi development hub has an education section, you know, and we have a lot of great trainers that are out there. There's training on LinkedIn. I know you have some videos, Charlie. Again, Steve Ferrell RDi videos. I typically will show you know a feature 90 seconds long how to get started. There's one out there, really kind of like you're talking about, is the PDM perspective: how do I get started, right? So we take you into the new user experience, right? We added that in 9.6.11 and that new user experience really is a way to take—you know it used to take 16 steps, 15 or 16 steps to go in and get a connection set up, right? Now it's one panel. You supply the information, you hit enter and boom, you have everything at your fingertips ready to start. So I would say if people are looking for education, there's some wonderful resources under the education section of RDi hub.
Charlie: You know you keep mention—and you mentioned the RDi development hub and for good reason, because that really is the one-stop shop in my view. It has everything from fix packs to education to communicating back to IBM, reporting issues, things like that. So that really is a one-stop shop for everything that encompasses RDi. That really—that's the first place that I will look to find about new fix packs, things like that. That's definitely a place you want to take a look at.
Steve: Right and you know again, there's education links. There's links on how to find your license. There's how—you know there's a wonderful detailed page on how to contact IBM support, right? That's one of the things I hear a lot of is "boy, gosh it's hard to get a hold of IBM support." If you go to RDi hub and you scroll down, there's a nice section—you know 1, 2, 3 how to do it. Probably the most difficult thing might be for finding your customer number. A lot of times people will buy it from a third party. They may not know the customer number but IBM—you know the question has come up: what if I'm a new user and I don't have a customer [number]? What do I do? They have an 800 number. You can call and get customer support that way. So if you're a trial customer and you're having difficulties, that's a great place to start.
Charlie: So as we kind of wrap this up, Steve, I'm just curious to hear your own thoughts. What's your message to anybody who has not yet taken the leap, be it that they're new to the platform or a developer who is using some of the older green-screen tools? What's your message as the team lead of RDi? What is your message to those people out there?
Steve: Again, you know I think we had talked about it early on in the interview, Charlie, and that is that once you give it a try and once you've made the commitment to learn how to use RDi, which we're trying to make it even easier, you won't go back, right? Even if you're using older code—you know we've had a lot of people who have some really old code out there, right—and we do RFEs to help those folks look at the new information as well, right? So the number one thing I would say is invest in yourself, right? We're going to do everything we can to help you be more productive, and the first step you can take is go to RDi, learn how to use it, use the resources that are out there. There's great free resources. There’s great paid training if you—you know we have companies buy 250-300 licenses at a time. They want to bring trainers in. You know there's information as to where those trainers can come from, right, from RDi hub, but the bottom line is you know I make a commitment to folks. I'm passionate in making sure that we're going to make sure that you're more productive right? To me, that's the no. 1 thing is making you more productive. All those great wonderful RPG enhancements that the RPG team makes every year, you know we typically have those in RDi before they ship or right after. You had mentioned before that SU hasn't been changed in years. You're missing out on a lot if you haven't gone to a new platform.
Charlie: I will echo your sentiment, Steve. I totally agree with you there. Steve I want to thank you for your time today. This was a very rich conversation. I think you've really—I appreciate your candor on this and I think it was important to get the message out, so I really just want to thank you for your time again and thank you for the great work that you and your team do in supporting RDi.
Steve: Well thank you for giving me the opportunity to talk about it, and again I know we talked about—a little bit about the need for beta testers. You know again if you can give my email address out in there, I would love more beta testers. Or we had talked about customer interviews. If I can real quickly—you know if you're one of those new users either to the platform or to RDi, you know I really need to talk to some customers that are new to it, right? If you're an old seasoned veteran and you want to talk, please contact me as well. You know the more people that I can talk to, the broader base I can get for helping make the decisions on what, you know, RDi needs to go, how it needs to continue to improve.
Charlie: I'm just so happy that the team at HelpSystems and IBM, they're so receptive to listening to what the community wants. That's a vital part to keeping everybody, you know, very productive. So I thank you again for that.
Steve: Well you know and it's funny that you mentioned that, in that you know it's wonderful that, you know, we've had this great relationship with the IBM team, right? I mean we purchased the product four years ago but we still meet with them, you know, every two weeks to discuss the product and that's just fantastic that they continue to support us as much as they do. So big shout-out to that team, you know. We're glad you're there.
Charlie: That's great. That's awesome. Thank you, Steve. All right, everybody. This wraps up this month's podcast of TechTalk SMB. I look forward to speaking with everybody again next month and make sure you check out that TechChannel website. There are lots of other good podcasts on there as well as other great resources for you to take a look at and until next month take care everybody. Bye now.