Chapter 12 Getting support with problems

One of the toughest bits of coding is knowing what to do when there are problems, especially if error messages seem unhelpful, or you know that the code worked last time you ran it! There are a range of problems you can experience in code, but luckily there are also loads of options to get support to debug and fix them.

12.1 Different types of problems

Although there are an almost infinite number of problems you can encounter when writing and running code, broadly they fall into four categories. Check below to see what the options are, and the recommended options

12.1.1 Problems with your code

There’s an issue within the code you’ve written. This could be anything from a typo during development, to forgetting to import a library or a change in the underlying data breaking code which has previously worked. This is the most common type of error, and can usually be identified by problems during code running that are not reproducible with other uses of similar code.

Finding a solution: search on your own, post on the CRAN channels.

12.1.2 Known library problems

Your code itself would work fine, but it’s relying on a package that is universally experiencing problems. This could be something that has been withdrawn from use, has been changed substantially since the last version, or only works on a specific R version. This will often look like a library failing to install or load, and will be something that affects multiple people within DfT and externally.

Finding a solution: search on your own, post on the CRAN channels, contact a Super User.

12.1.3 Something is broken in your setup

With these errors, there’s nothing wrong with your code or the libraries you’re trying to use, but there’s something causing a problem within the coding environment you’re using, such as a missing dependency on a server, or a library that won’t install on the DfT setup. This may look like package installation and loading failing with Linux error message, or strange error messages that you can’t find much about online, but will be reproducible within DfT (but not necessarily externally).

Finding a solution: post on the CRAN channels, contact a Super User.

12.1.4 IT issues

The ultimate in tricky issues! There’s nothing wrong with your code, the libraries you’re using, or the standard DfT setup. Instead, something has gone wrong with your personal access permissions, login rights, or connectivity between multiple tools.

Finding a solution: contact a Super User then raise a HEAT ticket if advised

12.2 Different solutions

As summarised above, there are a range of solutions which are more or less appropriate to each type of problem, read on to get more details about each of them. And if you’re unsure what type of problem you have, always post on one of the CRAN channels to receive prompt and friendly peer support and guidance towards the right solution!

12.2.1 Searching on your own

If your problem is one caused by coding issues or a common library issue, you can often find the answer yourself by searching on Google, making use of Stack Overflow, or searching through previous questions on CRAN and in the wiki. Don’t spend too long on this approach though; if you don’t find something useful in the first 10-15 minutes of searching, it may be that your problem is more specific to DfT, or more complex than you initially thought, and asking for support on a CRAN channel is a better use of your time!

12.2.2 CRAN channels

The Coding and Reproducible Analysis Network is probably the most supportive and far-reaching sources of support available to you; it can help address both generic and DfT-specific issues, doesn’t have rigid standards like Stack Overflow, and can act as a signpost to other sources of information. Feel free to post a question on either a language-specific channel, or in the beginners channel if you’re worried your question is a “silly one”.

12.2.3 Super users

For problems which are caused by issues related to the coding environment you’re operating in, there are Super Users for all of the coding platforms we have access to. They have specialist knowledge about the inner workings of the software you’re using within DfT and previous requests that have been raised, and can check things such as whether you have the right permissions, how many people are affected by the issue you have raised, and whether you can fix it yourself or not, as well as raising HEAT tickets which go directly to expert support teams within Digital. You can check who your super user is on the CRAN wiki and contact them directly, or post on the relevant subject channel and one will find you!

For problems requiring Super User input, you may need to provide them additional information, try out a few solutions that ultimately don’t work, or even wait as they raise a specialist ticket with Digital to get the problem solved. Please be patient during this process as this is a surprisingly complex process and unique to each new issue!

12.2.4 HEAT tickets

Unlike other software such as standard Microsoft products, raising a HEAT ticket is always the last option to consider when getting coding support. Technical coding questions are outside the scope of first line Digital support, and often you will receive unusual responses, have your query passed on to multiple teams looking for an appropriate expert, or eventually be referred back to the CRAN network when your issue finally reaches someone who understands the query!

The exception to this is for problems caused by your individual setup or permissions causing problems. In these situations, you should always discuss your issue with a Super User first, who will know if a HEAT ticket or service request is necessary, and who should raise it to get the appropriate Digital reponse.