We're committed to supporting engineers and enterprises during COVID 19. One of the biggest impacts to all of us is working from home during these times. Our own engineers have had to adapt in various ways to continue creating and testing new products, supporting customers, and keep up productivity in general.
We’ve learned a lot during these past few months about working from home, so we gathered the best tips and tricks from our employees around the world and compiled them here.
- Establish a routine and stick to a schedule. Dress as you do when you are in the office. It’ll make you feel more productive and ready to get to work.
- Get up and walk around. Go outside if possible. It is much easier to get stuck at your desk for hours without coworkers in close proximity. Also try taking walking meetings if you’re not running the meeting and no one will be presenting. (Beware of loud wind gusts though!)
- Create a distinct working space with a setup as close as possible to what you have in the office. Try to make this a dedicated work space you only enter while working. It’ll help you avoid over working yourself while at home and create some separation.
- Make sure to leave the door or a window in your office cracked open. You'd be surprised how fast a room can fill up with CO2 with a single person breathing in it (~15 mins even!). High CO2 levels lead to tiredness and headaches.
- Keep up the team spirit with weekly virtual happy hours. It’s a good time to shoot the breeze with everyone and stay in touch as a team on a social level. Seeing everyone for 15 minutes during stand ups does not count.
- Establish best practices with your spouse and kids regarding times where interruptions should be avoided. For example, a sign or other signal on the office door to indicate you are in a meeting helps everyone avoid accidental interruptions.
Video Conferencing Tips
- During online meetings if you have something important to say, don't be afraid to interject! It's sometimes hard to find a pause in the conversation where you aren't talking over someone so you'll likely have to make some noise to get the floor (clear your throat, start what you want to say, etc). Microsoft Teams introduced a nifty “raise hand” feature that you can also use.
- Use headphones or a mic. Otherwise, the echo in most rooms at home introduces too much noise.
- Use video if possible. It helps to keep everyone engaged.
- Have a distracting background? Try blurring your background when your camera is on.
- During meetings, close other apps (unless they are necessary).
- If there are a lot of online participants, make sure to join muted. If you see that others are not muted, mute them.
- If there is an activity in the meeting room in which people split up into groups, suggest that all online participants become a group and mute the meeting room. Otherwise, it is pretty much impossible for remote attendants to participate.
- Make sure you have a light source facing you so everyone can see you well. Ideally this is a window, but it could also be an artificial light too.
Remote Software Development
- Use Source Code Control. Source Code Control is important regardless of if you’re working at home or not. We’ve all experienced overwriting important sections of our own code or need to revert back to an older copy, and the danger of that grows exponentially when you have a large number of files or multiple developers working on the same project. Source Code Control can include anything from the storage and organisation of folders and files on disk, to sophisticated tools for revision control and distribution of resources amongst a large team. If you or your team don’t have a Source Code Control setup, now is the perfect time.
- Agile Development methods are a popular choice for software development, as they emphasise incremental delivery, team collaboration, continual planning, and continual learning, instead of trying to deliver it all at once near the end. While remote, make sure there are clearly defined acceptance criteria for user stories. This prevents a lot of back and forth that typically happens between Scrum Masters and Developers when these aren’t defined well. In the office this would get solved by walking over to someone’s desk, but when remote this can take even longer.
- If you’re using Agile Development methods, you probably already know how beneficial Continuous Integration can be. Continuous Integration (CI) allows for the automation of testing, building, and releasing software. A CI setup includes a shared repository which developers can push changes to, and a CI server to automate test, build, or other processes whenever those changes are made. If you don’t already have one setup for your LabVIEW build, this Jenkins tutorial is a great start.
- Document, document, document your code! It’ll take you a bit more time, but when sharing your code with others it’ll be much more obvious to them how you designed it.
- Remotely accessing the Test Systems you create can also have a big impact on users working remotely. Adding a remote UI could allow users to monitor tests running or even provide non-critical control mechanisms. An easy way to do this in LabVIEW or LabVIEW NXG is to use the LabVIEW NXG Web Module.
- For LabVIEW programming, get as many monitors as possible, particularly if you're working on both a local system and a remote system.
- If possible, create a VM per project. This makes it easy to port the entire project (code + LabVIEW + drivers) to another machine if necessary. Recently found this Windows 10 Development Environment page where Microsoft has prebuilt VMs you can develop on for a few months.
- LabVIEW programming requires a high combination of keyboard and mouse usage. Make sure your home programming setup is ergonomically sound. Also a good time to learn your LabVIEW Keyboard Shortcuts!
- Check in regularly via video chat with your colleagues to avoid feelings of isolation. If you are a solo developer, check in regularly on the LabVIEW forums to see what other LabVIEW programmers are up to.
Dealing with Hardware?
There are two basic strategies for this when working remotely.
Bring Hardware Home
When working remotely for extended periods of time, the best approach is to try to have hardware available locally. This allows you to have physical access to the systems to self-serve dealing with reboots, etc. However, that can be hard for various reasons such as cost (some test systems are quite expensive!), size (some test systems can be quite large!), and customisation (often times you need some reworks made to hardware by technicians or others to allow for development). If you can bring hardware home, here are a few tips.
- Note down the SN so things don’t get mixed up when you eventually head back to the office.
- Your home network will be different from your work network. You may need to use a router or switch to connect network HW to your computer at home.
- Re-examine your grounding when setting things up at home. Might be time to look over the Grounding Considerations guide.
- The hardware you’re bringing home is likely very valuable. Take some time to organise wires and set everything up in a safe place so there’s low risk of loved ones or pets tripping and damaging the hardware.
Working with Hardware Remotely at your Site
It is often necessary to instead work with hardware systems that are set up at your office. A common theme in either scenario is the need to have some amount of physical access. You need to have people available on-site whose job is (in part) to be interrupted and service needs on short notice. In extenuating circumstances like we are in now, there is likely a person identified for your working group. If you are able to prepare your hardware setup, there are a few tips to give you more remote control.
- Make sure Remote Desktop is setup beforehand on the system you’d like to connect to. If you’re looking for tools to Remote into a system there are a ton of free and paid options available. Most of us at NI find the remote desktop tools included with the OS work just fine.
- Make sure your remote system has the appropriate power settings in BIOS. For example, most computers have a BIOS setting that will automatically reboot the machine when it loses power unexpectedly.
- If multiple people need to access the same test system at one time, it would be beneficial to setup a web accessible front end. For systems running LabVIEW or LabVIEW NXG you can use the LabVIEW NXG Web Module to create a web application that’s accessible remotely.
- iBoot PDUs are one solution for remote power cycling. They allow you to control power to a device via a network or serial interface, even programmatically. This is especially useful when debugging boot issues, or doing work which lends itself to frequent reboots or blue screens.
- Consider setting up your hardware in the most versatile arrangements possible. Utilise switches for systems requiring multiple test configurations. Connect JTAG, UART, and other debug connectors to access additional information about your systems.
- Need to access status LEDs? One approach is to set up a webcam, allowing you to view the status of your system remotely.