BEAR Software

BEARSoftware128px


BEAR Software is a range of services provided to researchers, and research groups, with the aim of improving the research software written and used by the researchers. BEAR Software’s mission is summed up in the words of the Software Sustainability Institute: ‘better software, better research’.

About BEAR Software

BEAR Software is provided by Research Software Engineers (RSEs) from the Research Software Group within the Advanced Research Computing Team of IT Services. It comprises several services which are available to all researchers in the University, free of charge.

Goals

This is why we exist, and what we're aiming at:

  1. Enable the University of Birmingham's research community to get the best from their research software: "Better software, better research"
  2. Provide specialist software engineering advice and support to researchers and RSEs
  3. Help to enhance the University's reputation for high quality research
  4. Help researchers get the most from BEAR services, maximising the return on the University's investment in BEAR.

Services

A) Advice

If a researcher either has need for new research software or wishes to improve their existing software, then BEAR Software RSEs can be engaged to talk through the needs of the researcher and offer advice on how best to achieve those needs. To request Advice please contact BEAR Software through the IT Service Desk, using the "Make a request" option and choosing "BEAR Software Services" and selecting the "Advice" option.

More information on the advice available

BEAR Software RSEs are able to offer advice on the whole life-cycle of research software. Example topics include:

  • Specifying the requirements for a new piece of software or for additions to an existing piece of software.
  • Designing and architecting the software.
  • Writing the software and suggestions on which programming languages and tool-kits are best suited for the software being written.
  • Documenting code effectively so that when a researcher returns to it at a later date it is easy to understand, and so that it could be made available for others to edit if desired (e.g. Open Source).
  • Writing user documentation so that installing, and using (including expected input and output of the software) the software is an easier process.
  • Producing or using a testing framework or infrastructure for the software, so that a researcher can easily spot if changes or additions to part of the software, or any third party software it relies on, breaks the existing functionality of the software.
  • Porting the software to a new platform or system and how to approach optimisation of the software.
  • Upgrading the software, and any third party software that may be in use, and how to ensure that the upgrades have not broken the functionality of the software.
  • How to manage the release of the software, so that it is available, in an effective and useful way, for use by others in the research community and beyond.
  • Integrating a researcher's software with third party software and libraries.
  • Using version control to allow a researcher to manage, and track, changes to their software, data, papers, talks, etc.
  • Help with specifying the research software requirements of grant applications and specific assistance with the Technical Appendix.
  • Provide recommendations about software licenses and licensing issues.
  • Advise on available training courses - those available locally, online, and further afield. We can also discuss tailoring existing training courses to meet the specific needs of a research group.
  • General discussion about research software or research computing.

By following the BEAR Software Advice a researcher should be able to improve the reliability and maintainability of the research software they write/use and this will help the researcher with the reproducibility and robustness of their research.

 

B) BEAR

If a researcher has a specific problem or requirement using BEAR compute services, such as BlueBEAR (Linux HPC), BEAR Cloud for Research, or CaStLeS Compute, then we can help. To make a request please contact BEAR Software through the IT Service Desk, using the Make a request option and choosing Help with BEAR Compute (BlueBEAR, BEARCloud VM or CaStLeS VM).

More information on the help we can provide to those using BEAR services

A researcher can request help with any aspect of using the range of BEAR compute services.

Example tasks might include debugging or profiling research software, or advising how to optimise batch compute jobs.

When a researcher has issues running third party software then BEAR Software RSEs can work with the researcher to find a solution.

A researcher may have existing sequential code and we can offer advice on the possible methods for parallelisation (to multi-core, multi-node, or GPU systems), which will enable better utilisation of the computing resources available to the researcher.

BEAR Software RSEs can advise researchers on how to apply for access to, and facilitate the use of, further computing resources available at the regional (HPC Midlands+), national (ARCHER), and international level (Prace).

BEAR Software RSEs may seek to initiate conversations with researchers if we see an opportunity to find out more about interesting techniques or to get more out of the computing resources.

 

C) Coaching/Coding

If a researcher, or research group, has the need for specific research software expertise, then an RSE can be requested, free of charge, for multiple half-day sessions (max. 20). During these sessions the RSE would be embedded in the research group (physically or virtually) to work with you to complete specific agreed objectives. The RSG can also provide mentoring to a RSE, to enable the RSE to develop technical and non-technical skills. To request Coaching or Coding please contact BEAR Software through the IT Service Desk, using the "Make a request" option and choosing "BEAR Software Services" and selecting the "Coaching/Coding" option.

More information on the coding/coaching help we provide

This work could follow on from an initial advice meeting where the further need would be identified and clearly defined objectives would be specified and agrees. Example tasks might include:

  • Migrating a project to use version control (e.g. gitlab or github).
  • Designing and implementing a testing framework.
  • Writing user documentation, licensing info etc.
  • Testing, debugging, and fixing issues.
  • Implementing a new feature.
  • Porting the software to a new operating system.
  • Designing and implementing a release process.

The BEAR RSE will work with you to complete these tasks, for example doing pair programming. Our intention is that after the sessions you will be able to continue the work in your own team and have learnt technical, research software skills. Of course, later follow-on engagements are available, demand permitting.

Example of a typical coaching engagement

The BEAR Software RSE would meet with the researcher for a number of half-day Coaching sessions, usually one or two sessions per week. During each of these sessions there would be a task, or tasks, to complete during the session. Between sessions the researcher would work further on the project and this would identify further tasks for the follow on engagements.

Communication

If you looking for any general information or you have any queries for BEAR Software then please email us at bear-software@contacts.bham.ac.uk.

If you are looking to talk with any RSEs at the University of Birmingham then the following are available:

You may be interested in the national community, the UKRSE Association.


Last updated: 28 June 2018