As the number of people sheltering in place grows, here are a few tips on surviving working from home.
As the COVID-19 pandemic that started in China is now centered in Europe, the entire world is hunkering down. Many companies are shuttered or severely limited. Those that are still running are requiring those who can to work from home. The good news for most of us in the programming field is that we usually can work from home nearly as well as from the office, and sometimes even better. As we'll see, those of us who work on the IBM midrange may actually be in a better situation than many of our colleagues on other platforms. But that doesn't mean working remotely doesn't come without challenges. Having worked remotely as much as I have, I can help you address a few of these.
This simple prerequisite can be a bit more difficult than it was in the purely green-screen days, when you just opened port 23 (or port 992 if you were a Secure Sockets shop). It's usually not the VPN; most companies have at least some ability for employees to connect to the network via VPN. The problem is that your IT departments may have the ports (rightly) locked down pretty tightly on your VPN, and this includes non-obvious ports that Rational Developer needs. These ports are used not only by Rational Developer for i, but also for many IBM i Access functions as well (both Access for Windows and ACS), so getting them open is going to help you with all your development functions. IBM has a good web page detailing those ports.
The next piece of the puzzle is that you're now at the mercy of your Internet provider. I personally have a love/hate relationship with my provider, Comcast. When the system is working, it's fantastic, but about once a year Comcast does something to make me tear my hair out. The most recent case was when they took away my ability to configure certain features of my modem, something I've been doing for literally decades. Suddenly, I had to do it through the cloud, and let me tell you, that cloud rained on my parade a number of times. But as I said, when it is working, Comcast is wonderful. And when it's not, then I get the joy of using my phone as a hotspot.
One piece of really good news for us IBM midrange folks is that when we're working on the green-screen, even a mobile hotspot provides plenty of bandwidth to do our jobs. The 5250 interface to this day is still the most brilliantly efficient way to communicate interactively with a server. In fact, I'm having a flashback to old model 5251 terminals with 1200 baud modems…but I digress.
And that brings us to the area where we're most likely to have issues: Rational Developer for i (RDi). While quite effective even over networks, RDi is the one tool I use that suffers the most from slower connections. From the very start of your development session, you have to be cognizant that some things will simply take longer. That starts with the Remote System Explorer; just bringing up your library list can take awhile, and getting a list of objects or members can also take considerably longer than you are used to.
But the real pain comes in two specific areas: Outline View and Screen Designer. The Outline View is one of the most powerful features of RDi, but that power requires a complete analysis of the program you are working with. Source is not enough; the tool must dig deeply into the underlying structure of the program, analyzing not only every externally described object (such as files and data structures), but also the basic structure of the program. Whereas on a direct connect a program is analyzed in a few seconds (maybe a few 10s for extremely large programs), over a network connection that time can be extended to a minute or more. Just pay attention to the status in the lower right corner of your workspace; it will keep you informed of the progress of the analysis. As bad as that might be, I find that the Screen Designer is sometimes even more temperamental on slow connections. For whatever reason, the code used to get the attributes of fields (specifically, referenced fields) and then paint those onto the WYSIWYG designer seems to require a lot of interactivity with the server and as such really gets hammered on slow connections. VPN over a fast cable connection is reasonable, but delays are pretty intrusive for slower connections (and don't even talk to me about over a mobile hotspot).
But despite all this, I still prefer RDi over green-screen development, so I've learned to live with the pain that comes with slow connections, but I thought I'd let you know what sort of things I've had to deal with and where you might find yourself a bit frustrated.
This is a non-programming issue that can still be something of a problem. In some environments, the email delivery system isn't always as timely as one might like to start with and suffers even more delays on the VPN. Combine that with more extensive security scans thanks to phishing scams and the Ryuks of the world, and email often just isn't fast enough for urgent communications. As an alternative, many companies have instant messaging of one type or another, but not everyone monitors those tools consistently and you may need to make sure everyone recognizes how important it is to keep that little popup window available (and the notification sound turned on!). The final issue in this category that I haven't yet solved is whiteboarding. There are a lot of products out there so I'm doing my research, and I'll let you know when I find something I like.
You probably noticed that I didn't talk about video conferencing. That's on purpose; I personally don't find video conferencing particularly useful for technical discussions. Since very few technical meetings are actually canned presentations (where video conferencing excels), I'm happy with conference calls and electronic handouts. However, for brainstorming sessions, the aforementioned whiteboarding is critical, which is why I'm researching it.
Food, Drink, and Rest
You'd think that being home would be beneficial from this standpoint, but I find that it can be the opposite. Leaving out the issue of distractions (now that everyone is home at the same time!), if you aren't used to working from home, you may find yourself doing things that cause you to be less effective. For example, you don't have to go far to start your day, and in fact you may be able to stumble just a few yards to your "home office." You take advantage of the lack of commute and sleep in for an extra 30 minutes and then get up and start your day. But this throws off your normal schedule, and maybe you don't eat breakfast like you normally would, so now your day is thrown off. Or the opposite may be true: you're home and you can eat a big, delicious breakfast…which then leads to a need for a nap! A situation I personally find to be a problem is that, particularly if I didn't sleep well, I tend to over-indulge in strong coffee because I can make it exactly how I like it (strong!) and then just keep pouring it. But then around 10:30, I notice that the letters on the screen seem to be vibrating, and I realize that perhaps I shouldn't have drank the entire pot. The moral of the story is that even if you're working from home, try to stay true to a schedule, eat well and regularly, get up from your chair no matter how comfortable it might be, and in general pretend that you are at work.
Perhaps the single most important thing during this challenging time is not what you can do, but what you can avoid: don't panic. We're in a bad situation, but it's not apocalyptic. While some countries have severe problems, others are getting things under control. Even here in America, while New York City is being hit hard, the national mortality rate is just over 1 percent. We're data-processing professionals, and we know numbers aren't always as clear as they seem, but you can compare this with SARS at nearly 10 percent and MERS at 34 percent. And just as important, while there's currently no proven cure, it seems that both clinically and anecdotally the simple, safe, and inexpensive drugs Hydrochloroquine and Azithromycin may provide both curative and preventative properties, and New York is running clinical trials at the time I’m writing this.
Maybe our elected officials will take this as a wake-up call and realize that there are more important things than partisan politics and that there are systemic issues we as a country should address. And if not, perhaps we'll learn to vote for those who do. But right now, we just need to watch over one another as the great national community we are at our most fundamental core, and look forward to the time when we can once again reach out to our neighbors, both figuratively and literally. We come from all manner of backgrounds and ideologies, but we're all in this together. I'll leave you with the words my favorite storyteller of all time, Dave Allen, always closed his shows with: "Good night, thank you, and may your God go with you."