Consulting Guide¶
This chapter elaborates the consulting workflow as defined by HIFIS Consulting services. This workflow should be understood and followed by every consultant for consistency and reproducibility purposes.
Consulting Process¶
The workflow is created in an dynamic manner. That is, the process starts minimal and extents, if necessary. The basic overview is given in the image below.
Assuming Zammad is the ticket platform used, the following process is defined for consulting:
-
A client requests a consultation via:
- a request form on the website (e.g. LimeSurvey)
- a direct email to the helpdesk.
-
A ticket is created in the helpdesk followed by an initial assessment of the request. The consulting team or moderator
- Reads the ticket.
- Optionally, checks back with additional questions via the helpdesk.
- Assigns a consultant and/or experts based on their competence and/or available resources.
- Discusses the ticket and initial internal assessment of the request.
- Changes the state of the ticket from
New
toOpen
. - Decides whether the consultation needs to be declined or is continued.
-
Consultation (see section Consulting procedures)
- Initial invite via the ticket system to a first meeting.
- First consultation meeting organised virtually as video conference or in person.
- Regular follow-up consultations depending on demand.
-
Reporting; Once a consulting is completed (See chapter Consulting reporting). The consulting team or moderator
- Changes the Zammad ticket state to
Close
. - Annotates the
report-pending
tag to Zammad ticket. - Prepares the consulting report YAML file and adds the file to the consulting report repository.
- Changes the ticket tag to
report-done
, once the merge is accepted.
- Changes the Zammad ticket state to
-
Post-consulting survey; Once a consulting is completed (see chapter Post Consulting Survey). The consulting team or moderator
- Closes the ticket on the helpdesk and assigns the
consulting-survey-pending
tag. - Ensures the anonymity of participants, by sending the LimeSurvey link only when there are at least 10 recipients across all consulting tickets.
- Sends the link via the helpdesk (public note or email) to the client(s) and changes the tag to
consulting-survey-sent
. - Changes the tag to
no-survey
in case a consultation is deemed not eligible for collecting feedback.
- Closes the ticket on the helpdesk and assigns the
All communication with the client shall be carried out via Zammad, if possible. Consulting related documents shall be stored in the Nubes cloud.
Consultation Procedures¶
The main goal of every consultation should be to enable the client to address their problems and to provide technical assistance to their concerns. The scope of the Consulting process includes supporting scientists with their technical decisions, to support with project-specific issues and setting up a development process with a focus on sustainable research software engineering.
Initial Invite¶
Offer a video call in the first email via Zammad. In our experience, clients often have not fully explained themselves in the initial request and talking directly will then help to clarify things. Don’t guess what the solution will look like until that video call - it probably won’t be right! Use formal language unless clearly indicated otherwise in the incoming email. In the inital meeting, you can ask if relatively informal language can be used. See the sample template of the initial invite email. This can be added to Zammad as a template for reuse.
First Consultation¶
The first meeting is mainly to elaborate the client’s request depending on the topic. Don’t offer hasty solutions to the client in the initial video call unless it is very clear what is needed. Consultants and experts can clarify more on the client’s first request email to understand the needs and plan the consulting effort and personnel required for the issue. If effort cannot be immediately estimated from the initial consultation, postpone the decision and discuss with fellow consultants or request help from other experts on the ticket. To prevent misunderstandings about the motivation of the client, action points may be defined in order to reach a common agreement on what is in the scope of the consulting and not.
The definition of action points and noting down other important details of the consultation may be done with the help of a collaborative document e.g. Google Docs, HedgeDoc, Etherpad etc. HIFIS Consulting uses HedgeDoc as the platform to write and share markdown documents with the people involved in the consulting. This increases transparency and serves as a general anchor to connect client and consultant. See the sample template of a markdown file used for collaboration.
If the request is found out of scope or no matching consultant or expert is found, the consultation can be discontinued. This implies that the post-consulting survey need not be sent to the client. However, a post-consulting report has to be created.
Follow-up Consultation¶
When the consulting goes as smoothly as planned, usually more meetings are scheduled for further clarification of the problem and solutions at hand.
The client should be informed about the Publication Policy and consent should be given.
Also, the client should be informed that information about the consultation will be shared between consultants in the team.
Consultants and experts can use States in Zammad. The states pending reminder
& pending close
are useful to set timelines for achieving milestones or to change the state of ticket from open
if waiting for feedback from a client.
Consulting Types¶
In order to provide good consultation, HIFIS Consulting has defined different types of consulting requests. This allows us to provide type specific recommendations regarding how to do a consultation as well as fitting resources. More importantly, this categorisation helps in better bookkeeping and analysis. Read the chapter on Post-consultation report on how to report a consulting properly. The table of request types might change over time as new request types will be added and others will be split up.
Request type | Topic | Examples | Ref. |
---|---|---|---|
Qualification | Software Engineering | Ensure that persons involved in the development have the necessary knowledge and training | [1] |
Requirements Management | Software Engineering | Problem definition, functional requirements, quality requirements, constraints | [1] |
Software Architecture | Software Engineering | [1] | |
Change Management | Software Engineering | How to document and performing changes to software in a systematic and comprehensible way | [1] |
Design and Implementation | Software Engineering | [1] | |
Software Test | Software Engineering | Define a test strategy and which kinds of tests are useful | [1] |
Release Management | Software Engineering | Release number, release notes, release performance | [1] |
Automation and Dependency Management | Software Engineering | [1] | |
Software or Programming Language Migration | Practical | Matlab Code to C++ | |
Code Audit | Practical | Source code audit, project structure, software architecture | |
Technology and Tool recommendations | Practical | ||
Infrastructure Support | Practical | VCS setup, Docker, CI/CD, internal HIFIS support | |
Licenses | Legal | Usage of licenses | |
Open Source | Legal | Usage and publication of (open source) software | |
Patent | Legal | Patent law | |
Contract suggestions | Legal |
References¶
[1] T. Schlauch, M. Meinel, C. Haupt, “DLR Software Engineering Guidelines”, Version 1.0.0, August 2018. Available: https://doi.org/10.5281/zenodo.1344612