{ "cells": [ { "cell_type": "markdown", "id": "d6a7dca8", "metadata": {}, "source": [ "```{post} 2026-04-09\n", ":tags: portfolio\n", ":author: me\n", ":language: en\n", "```\n", "\n", "# Data steward profile\n", "This notebook can be downloaded as **{nb-download}`2026-04-09.ipynb`**" ] }, { "cell_type": "markdown", "id": "8634c080", "metadata": {}, "source": [ "This semester, spring 2026, I started a [CAS in Data Stewardship](https://www.unil.ch/news/fr/1765966357311).\n", "\n", "\n", "One of the most striking things is realizing that Data Stewardship is a very broad field. I don't know anyone who is a data steward, but I know a lot of people who do data stewardship and/or already have a lot of skills in that area. that it is very unlikely that one person can have all the skills and knowledge required to take on all the responsibilities of data stewardship. However, data stewardship can be seen as a collaborative effort, where different people with different skills and knowledge can work together to ensure that data is properly managed and used.\n", "\n", "\n", "It is therefore important to identify the skills and knowledge that are most relevant for the specific context in which you, as a data steward, will be working. Based on the Data steward skills and abilities grid {footcite}`SwissDS-ENV2023-mf` & the Definition and profile of data professions {footcite}`SwissDS-ENV2023-dd`, you can quickly identify the following skills that you already have, and that you will need to further develop. You might not be able to master all of these skills, but having a good understanding of them will help you to better collaborate with other data stewards !\n", "This script helps you visualize your data steward profile based your relevant skills, knowledge and experience as a data steward." ] }, { "cell_type": "code", "execution_count": null, "id": "f899968d", "metadata": { "vscode": { "languageId": "plaintext" } }, "outputs": [], "source": [ "import pandas as pd\n", "import plotly.graph_objects as go\n", "from IPython.display import display, HTML\n", "\n", "# Categories\n", "categories = [\n", " 'Plan & design',\n", " 'Collect & capture',\n", " 'Collaborate & analyse',\n", " 'Manage, store & secure',\n", " 'Archive & share',\n", " 'Promote for reuse'\n", "]\n", "\n", "# Data\n", "df = pd.DataFrame({\n", " 'Data Manager': [4, 3, 3, 4, 4, 4],\n", " 'Data Librarian': [4, 2, 1, 3, 4, 4],\n", " 'Data Scientist': [0, 5, 5, 0, 0, 0],\n", " 'Data Curator': [0, 4, 2, 4, 2, 0],\n", " 'Data Archivist': [0, 0, 0, 4, 5, 4],\n", " 'Me': [1, 4, 5, 4, 2, 1]\n", "}, index=categories)\n", "\n", "# Close the loop for radar chart\n", "categories_closed = categories + [categories[0]]\n", "\n", "colors = {\n", " 'Data Manager': 'rgb(178, 34, 52)',\n", " 'Data Librarian': 'rgb(46, 125, 50)',\n", " 'Data Scientist': 'rgb(230, 81, 0)',\n", " 'Data Curator': 'rgb(66, 133, 244)',\n", " 'Data Archivist': 'rgb(251, 192, 45)',\n", " 'Me': 'rgb(0, 150, 136)'\n", "}\n", "\n", "# Small radial shifts to see overlapping lines\n", "shifts = {\n", " 'Data Manager': -0.10,\n", " 'Data Librarian': -0.05,\n", " 'Data Scientist': 0.0,\n", " 'Data Curator': 0.05,\n", " 'Data Archivist': 0.10,\n", " 'Me': 0.0\n", "}\n", "\n", "fig = go.Figure()\n", "\n", "# Add traces with fills and shifts\n", "for job in df.columns:\n", " # Get values and close the loop\n", " values = list(df[job]) + [df[job].iloc[0]]\n", " \n", " # Apply small shift to see overlaps\n", " shift = shifts[job]\n", " shifted_values = [v + shift if v > 0 else v for v in values]\n", " \n", " # Make \"Me\" line thicker and fill more prominent\n", " line_width = 4 if job == 'Me' else 2.5\n", " fill_opacity = 0.3 if job == 'Me' else 0\n", " \n", " fig.add_trace(go.Scatterpolar(\n", " r=shifted_values,\n", " theta=categories_closed,\n", " fill='toself',\n", " fillcolor=colors[job].replace('rgb', 'rgba').replace(')', f', {fill_opacity})'),\n", " line=dict(color=colors[job], width=line_width),\n", " name=job\n", " ))\n", "\n", "\n", "fig.update_layout(\n", " polar=dict(\n", " radialaxis=dict(\n", " visible=True,\n", " range=[0, 5.5],\n", " tickfont=dict(size=14, color='black'),\n", " gridcolor='rgb(80, 80, 80)',\n", " showgrid=True,\n", " showline=True,\n", " showticklabels=True,\n", " tick0=0,\n", " dtick=1\n", " ),\n", " angularaxis=dict(\n", " rotation=90,\n", " direction=\"clockwise\",\n", " tickfont=dict(size=16, family=\"Arial, sans-serif\", color='black'),\n", " gridcolor='rgb(80, 80, 80)',\n", " showgrid=True\n", " ),\n", " bgcolor='white'\n", " ),\n", " showlegend=True,\n", " legend=dict(\n", " font=dict(size=16, family=\"Arial, sans-serif\", color='black'),\n", " orientation=\"v\",\n", " yanchor=\"middle\",\n", " y=0.5,\n", " xanchor=\"left\",\n", " x=1.05\n", " ),\n", " width=1000,\n", " height=800,\n", " font=dict(size=14, family=\"Arial, sans-serif\", color='black'),\n", " paper_bgcolor='white',\n", " plot_bgcolor='white'\n", ")\n", "\n", "display(HTML(fig.to_html()))" ] }, { "cell_type": "markdown", "id": "3f1ec85a", "metadata": {}, "source": [ "Given my engineering background, my current data steward profile looks like a combination of a Data curator and Data scientist, with a strong focus on data collection and analysis. I'm lacking a lot of background and practical experience in data governance that I hope to acquire during this CAS." ] }, { "cell_type": "markdown", "id": "96063a81", "metadata": {}, "source": [ "```{footbibliography}\n", "```" ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 5 }