PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

genma : Lifehacking - Création de tickets dans le Kanban Gitlab via l'API

mercredi 6 janvier 2021 à 09:00

Introduction

Il y a quelques années, je me suis initié à l'usage du Kanban (Lifehacking - Kanban) et j'ai utilisé pour de nombreux projets et suivi d'actions des Kanbans au sein de Gitlab (Lifehacking - Gitlab, outil idéal ?). Je continue d'utiliser le Kanban Gitlab : j'ai mes habitudes, je forme les personnes avec lesquelles je travaille sur les procédures et bonnes pratiques que j'ai mises en place sur les rédactions des tickets et leurs vie (suivi /traçabilité...).

Je me suis demandé comment il serait possible d'automatiser certaines choses dans l'usage du Kanban de Gitlab. Si vous utilisez Gitlab au quotidien, vous serez peut-être intéressés par son API. Elle vous permet, au travers de scripts dans le langage de votre choix, d'exécuter certaines tâches en lignes de commandes.

J'ai demandé à Brume, qui est en stage avec moi, de rédiger le présent billet de tutoriel de création de tickets dans le Kanban Gitlab via l'API de Gitlab. Voici donc le tutoriel.

Les Kanbans dans Gitlab ?

A chaque projet dans Gitlab est associé un Kanban permettant la gestion du projet. L'objectif n'est pas de présenter l'usage de ce Kanban (qui est assez intuitif mais aussi assez riche en fonctionnalités et complet).

Tutoriel de l'API de GitLab

L'API de Gitlab est une API REST. Elle fournit des fichiers JSON accessibles par liens, ainsi que la possibilité de réaliser des actions en donnant des paramètres GET, POST... : après le lien, vous pouvez rajouter ?argument=value.

Dans le navigateur, il n'y en a pas besoin, mais avec Curl, les requêtes doivent être suivies par ?access_token= ou précédées par —header "PRIVATE-TOKEN : ".

Accéder aux fichiers JSON issu d'un Kanban

Les requêtes suivantes sont uniquement des requêtes GET, il est donc possible de soit les ouvrir dans un navigateur soit avec Curl.

Pages d'un projet : https://gitlab-exemple.com/api/v4/projects/nom_du_projet

Chaque / entre le nom du mainteneur et le nom du projet doivent être remplacés par %2F. Remarquez également que /projects/ a été rajouté comparé au lien d'origine.

Boards (le Kanban) : https://gitlab-exemple.com/api/v4/projects/9/boards/2

Le nom du projet est remplacé par son ID, ici 9. 2 correspond à l'ID du board que nous voulons regarder. Les boards sont seulement des filtres de tickets, proposant un rendu plus visuel et qui permet de trouver les informations facilement. Accéder à un board via l'API ne permet que de voir la liste des filtres par label.

Tickets https://gitlab-exemple.com/api/v4/projects/9/issues

Il existe beaucoup d'arguments GET pour filter les tickets. Par exemple, pour filtrer les tickets par label, utilisez le l'argument labels=value (vous pouvrez ajouter plusieurs labels en les séparant par des virgules).

Actions via des requêtes sur les tickets

Les requêtes suivantes utilisent d'autre paramètres que GET. Le plus avisé est donc d'utiliser Curl.

Créer un ticket

curl --request POST --header "PRIVATE-TOKEN: " "https://gitlab-exemple.com/api/v4/projects/13/issues?&title=A%20Title&labels=To%20Do&description=test"

Vous pouvez constater ici qu'il y a trois arguments : title, labels et description. Seul le titre est obligatoire. Il existe de nombreuses possibilités. Remarquez que les espaces doivent être remplacés par %20, sinon vous optiendrez une erreur 400.

Supprimer un ticket

curl --request DELETE --header "PRIVATE-TOKEN: " "https://gitlab-exemple.com/api/v4/projects/13/issues/2"

2 est l'IID (internal ID) du ticket que nous voulons supprimer. Vous pouvez l'obtenir dans la liste des tickets (ils sont triés par ordre de création).

Éditer un ticket

curl --request PUT --header "PRIVATE-TOKEN: " "https://gitlab-exemple.com/api/v4/projects/13/issues/6?title=Title%20Changed&add_labels=AAA,BBB,changed"

Il existe beaucoup d'arguments pour éditer des tickets, comme :
- add_label, remove_labels et labels pour ajouter, supprimer ou réécrire entièrement la liste des labels ;
- title, description pour ajouter un titre ou une description ;
- state_event=closed ou reopen pour fermer ou réouvrir un ticket.

Un script d'exemple, en Python

Nous allons proposer et expliquer un script d'exemple, en Python, d'utilisation de cette API. Ce script permettra, pour un projet donné, de publier, éditer ou supprimer des issues.

Prérequis

Pour suivre cet exemple, vous aurez besoin de :
- avoir Python 3 installé sur votre machine ;
- avoir un compte sur une instance GitLab ;
- créer un projet sur votre compte GitLab ;
- créér un token d'accès (décrit ci-dessous).

Se créer un token d'accès
Sur Gitlab, allez dans les paramètres de votre compte utilisateur. Allez dans l'onglet "Access Token". Entrez un nom, cochez au moins la case "api", et validez. Vous recevrez votre token. Pensez à le stocker, car il ne sera plus accessible par la suite et vous serez obligés de vous en re-créer un.

Bibliothèques utilisées

Requests est une bibliothèque qui permet de faire des requêtes HTML en Python, à la manière de Curl en Bash.

Utilisation :

import requests
headers = {'PRIVATE-TOKEN': "YOUR-TOKEN"}
r = requests.get(link, headers=headers)

link est le lien de la page que l'on souhaite récupérer, `YOUR-TOKEN` votre token secret, et `get` le type de la requête. Il est possible d'utiliser d'autre paramètres comme `delete`, `post`, `put`...

r est un objet, contenant notamment :
- le code de retour de la requête, `r.status_code` ;
- le texte (du json dans notre cas) récupéré, `r.text`.

Json permet tout simplement de parser et de récupérer des informations dans des JSON.

Utilisation :

import json
file = json.loads(file)
print(json[0]["username"])

file est le fichier ou texte que l'on veut utiliser, dans notre cas `r.text`. Il est possible d'extraire les éléments du json par clés ou index, comme dans l'exemple.

ConfigParser permet de lire un fichier de configuration dans un fichier `.ini`, et d'ajouter les valeurs à notre code.

Utilisation :

from configparser import ConfigParser
cfg = ConfigParser()
cfg.read('config.ini')
variable = cfg.get("section", "variable")

Attention à bien vérifier que le fichier existe et que toutes les valeurs sont présentes à l'intérieur, pour éviter tout dysfonctionnement.

En premier, un objet `ConfigParser` est initialisé. Ensuite, on lui donne le fichier de configuration à lire, ici `config.ini`. Ce fichier utilise la syntaxe suivante :

[section]
variable=valeur

Il est possible de rajouter autant de variables et de sections que l'on veut (avec des noms différents).
Pour récupérer la valeur d'une variable, on utilise donc `cfg.get`, en précisant la section et la variable.

Dans notre cas, utiliser un fichier de configuration est utile pour que l'utilisateur puisse renseigner une fois mais pas à chaque fois le lien de l'instance Gitlab, l'id de son projet et son token d'accès.

Urllib

`urllib` permet de remplacer tous les caractères spéciaux d'une chaîne de caractères, pour n'utiliser que des caractères autorisés dans les liens. Par exemple, les espaces ne sont pas autorisés, donc ils seront remplacés par `%20`. Certains caractères ont également une signification dans le lien (comme `&`, qui lie deux paramètres. Les remplacer permet d'éviter toute mauvaise interprétation de l'entrée de l'utilisateur.

Utilisation :

import urllib.parse
variable = urllib.parse.quote("Titre de mon issue"), safe='')

Ici, `Titre de mon issue` deviendra `Titre%20de%20mon%issue`. Par défaut, `urllib.parse.quote` remplace tous les caractères spéciaux sauf le `/`. Nous souhaitons que ce caractère soit aussi remplacé, pour le fonctionnement de notre requête, alors nous rajoutons `safe=''` pour indiquer que même le `/` n'est pas un caractère sécurisé.

En plus de ces 4 bibliothèques, `datetime` et `os.path` on été utilisées, mais ne sont pas fondamentalement nécessaires dans la création d'un script autour de l'API de Gitlab.

Utilisation de l'API de Gitlab

Notre script Python va tout d'abord proposer un choix multiple, où l'utilisateur entrera un chiffre pour accéder aux fonctionnalités suivantes :
- créer une issue,
- modifier une issue,
- supprimer une issue.

À chacune de ces actions est liée une fonction utilisant l'API de Gitlab.

Pour accéder à cette API, il faut rajouter `/api/v4/` à la fin de l'url de votre instance Gitlab. Dans les requêtes suivantes, nous utiliserons `https://gitlab-exemple.com` en exemple. Cela donne donc :

https://gitlab-exemple.com/api/v4/

Pour envoyer vos requêtes, vous pouvez utiliser la bibliothèque `requests` présentée au-dessus. Pensez bien à utiliser la bibliothèque `urllib` pour sécuriser et formater les entrées des utilisateurs que vous allez rajouter à vos liens.

Créer une issue

Pour créer une nouvelle issue, il faut utiliser la requête suivante :

POST https://gitlab-exemple.com/api/v4/projects/ID/issues/?title=TITRE&labels=LABEL1,LABEL2&description=DESCRIPTION

Ici, `ID` est à remplacer par l'ID du projet. Nous utilisons les arguments `title`, `labels` et `description`. Il en existe beaucoup d'autres, et seul `title` est obligatoire. `TITRE`, `LABEL1,LABEL2`, `DESCRIPTION` sont donc à remplacer par vos propres valeurs.

La liste des arguments est disponible [ici](https://docs.gitlab.com/ee/api/issues.html#new-issue).

Modifier une issue

Pour modifier une issue, il faut utiliser la requête suivante :

PUT https://gitlab-exemple.com/api/v4/projects/ID/issues/IID/?title=TITRE&labels=LABEL1,LABEL2&description=DESCRIPTION

Ici, `IID` est à remplacer par l'ID interne de l'issue. Le reste de la requête est semblable à la première.

Encore une fois, il existe de [nombreux arguments](https://docs.gitlab.com/ee/api/issues.html#edit-issue), pour modifier plein de détails comme le statut de l'issue, sa date d'échéance...

Supprimer une issue

Pour supprimer une issue, il faut utiliser la requête suivante :

DELETE https://gitlab-exemple.com/api/v4/projects/ID/issues/IID/

Récupérer des informations de l'API

L'API ne sert pas qu'à faire des actions, mais aussi à récupérer des informations. Voici quelques exemples :

https://gitlab-exemple.com/api/v4/projects/NOM-DU-PROJET

https://gitlab-exemple.com/api/v4/projects/ID-DU-PROJET

Récupérer la liste des issues d'un projet :

https://gitlab-exemple.com/api/v4/projects/ID-DU-PROJET

À chaque fois, vous récupérerez un JSON à parser avec la librairie JSON présentée plus haut.

Script en Python utilisant l'API de Gitlab permettant de créer, modifier et supprimer des issues en ligne de commande.

Pour lancer le script, remplissez le fichier `config.ini` avec l'url de votre instance Gitlab, l'id de votre projet et votre token (générable depuis les paramètres utilisateurs), puis lancez :

./gitlab-cli.py

Contenu du fichier config.ini

[configuration]
baselink=
project=
access_token=

Code source du script ./gitlab-cli.py

#!/usr/bin/env python3

### BIBLIOTHÈQUES ###

import requests
import json
from configparser import ConfigParser
from datetime import datetime
import os.path
import urllib.parse

### COULEURS DE TEXTE ###

NC = "\\033[0m"
LB = "\\033[38;5;33m"
RED = "\\033[1;38;5;196m"
CY="\\033[38;5;81m"

### FONCTIONS ###

# Ajouter des labels
def lab_add():
labels = urllib.parse.quote(input("Please enter the labels you want to add: "), safe='')
if labels:
labels = "&add_labels={}".format(labels)
return labels

# Effacer des labels
def lab_delete():
labels = urllib.parse.quote(input("Please enter the labels you want to delete: "), safe='')
if labels:
labels = "&remove_labels={}".format(labels)
return labels

# Réécrire la liste des labels
def lab_rewrite():
labels = urllib.parse.quote(input("Please enter the new labels: "), safe='')
if labels:
labels = "&labels={}".format(labels)
return labels

def lab_keep():
return ""

# Fonction permettant de réaliser des choix multiples
def multiple_choice(choices):
value = 0
while value len(choices) :
try:
value = int(input("Enter a number: "))
except ValueError:
default()
continue
result = choices.get(value,default)()
return result

# Imprime les détails d'un ticket
def print_issue(link):
r = requests.get(link, headers=headers)
if r.status_code >= 400:
return 0
json_r = r.text
json_tk = json.loads(json_r)
date = datetime.strptime(json_tk["created_at"], "%Y-%m-%dT%H:%M:%S.%fZ")
date = datetime.strftime(date, "%Hh%M the %d %B %Y")
print("\\n{}Issue #{}{}{:>30} {}, at {}".format(LB, json_tk["iid"], NC, "Created by", json_tk["author"]["username"], date))
print("{}Title{}: {}".format(CY, NC, json_tk["title"]))
print("{}Description{}: {}".format(CY, NC, json_tk["description"]))
print("{}Labels{}: {}\\n".format(CY, NC, json_tk["labels"]))
return 1

# Imprime la liste des tickets
def print_list(link):
print("\\nList of issues:")
r = requests.get(link, headers=headers)
if r.status_code >= 400:
return 0
json_r = r.text
json_list = json.loads(json_r)
for issue in json_list:
print("#{}\\t{}".format(issue["iid"], issue["title"]))

# confirmer le choix du ticket. Fonction utilisée pour éditer et supprimer.
# Paramêtres : le lien du ticket et l'action à faire (dialogues)
def confirm_issue(link, action):
print_list(link)
iid = 0
code = 0
while iid boolean = "a"
try:
iid = int(input("\\nPlease enter the id of the issue you want to {}: ".format(action)))
except ValueError:
default()
continue
link_id = "{}{}".format(link, iid)
code = print_issue(link_id)
if not code :
print("{}Error:{} This issue doesn't exists. Please try again.".format(RED, NC))
continue
while boolean != "y" and boolean != "n":
boolean = input("Is it this ticket that you want to {}? (y/n) ".format(action))
return link_id



# Erreur avec l'API
def error_api(verb):
print("\\n{}Error:{} The issue has not been {}. Please verify that informations in 'config.ini' are valid.".format(RED, NC, verb))
exit(0)

# créer un ticket
def gl_create():
title = ""
while not title:
title = urllib.parse.quote(input("Please enter the title of your new issue (must not be empty) : ").strip(), safe='')
if not title:
print("{}Error:{} Title must not be empty. Please try again.".format(RED, NC))
desc = urllib.parse.quote(input("Please enter the description: "), safe='')
labels = urllib.parse.quote(input("Please enter labels, separated by commas: "), safe='')
link = "{}/issues?&title={}&labels={}&description={}".format(baselink, title, labels, desc)
try:
r = requests.post(link, headers=headers)
if r.status_code >= 400:
error_api("created")
print("Issue created!")
except:
error_api("created")

# éditer un ticket
def gl_edit():
link = "{}/issues/".format(baselink)
link = confirm_issue(link, "edit")
title = urllib.parse.quote(input("Please enter the new title (leave empty to change nothing): "), safe='')
desc = urllib.parse.quote(input("Please enter the new description (leave empty to change nothing): "), safe='')
if title:
title = "&title={}".format(title)
if desc:
desc = "&description={}".format(desc)
# menu des labels
print("\\nDo you want to:\\n{}1){} Add some labels\\t\\t{}2){} Delete some labels\\n{}3){} Rewrite all labels\\t\\t{}4){} Keep labels unchanged".format(LB, NC, LB, NC, LB, NC, LB, NC))

choices = {
1 : lab_add,
2 : lab_delete,
3 : lab_rewrite,
4 : lab_keep,
}
labels = multiple_choice(choices)
link = "{}/?{}{}{}".format(link, title, desc, labels)
try:
r = requests.put(link, headers=headers)
if r.status_code >= 400:
error_api("updated")
print("The issue had been updated, thank you!")
except:
error_api("updated")

# effacer un ticket
def gl_delete():
link = "{}/issues/".format(baselink)
link = confirm_issue(link, "delete")
try:
r = requests.delete(link, headers=headers)
if r.status_code >= 400:
error_api("deleted")
print("The issue had been deleted, thank you!")
except:
error_api("deleted")

def default():
print("{}Error:{} Wrong answer. Please try again.".format(RED, NC))


### MAIN ###

# effacer l'écran
print('\\033[2J')

if not os.path.isfile('config.ini'):
print("{}Error:{} config.ini file not found.".format(RED, NC))
exit(0)

# utilisation de config.ini
cfg = ConfigParser()
cfg.read('config.ini')
try:
baselink = "{}/api/v4/projects/{}".format(cfg.get("configuration", "baselink"), cfg.get("configuration", "project"))
headers = {'PRIVATE-TOKEN': cfg.get("configuration", "access_token")}
except:
print("{}Error:{} config.ini is incomplete. Please check that 'baselink', 'project' and 'access_token' fields exists.".format(RED, NC))
exit(0)

# premier menu
print("Hello! What do you want to do?\\n\\n{}1){} Create an issue\\t\\t{}2){} Edit an issue\\n{}3){} Delete an issue".format(LB, NC, LB, NC, LB, NC))

# dictionnaire des choix possibles
choices = {
1 : gl_create,
2 : gl_edit,
3 : gl_delete,
}
# interception du ^C
try:
multiple_choice(choices)
except (KeyboardInterrupt, SystemExit):
print("\\nGoodbye!")
exit(0)

Captures d'écrans de l'exécution du script

Conclusion

Voilà, avec tous ces éléments, vous devriez pouvoir vous débrouiller pour coder un script similaire. Gardez en tête que je n'ai présenté que quelques-unes des fonctionnalités de l'API de Gitlab, et qu'il en existe bien d'autres !

Enfin, voici un tutoriel https://git.42l.fr/brume/Script_API_Gitlab/src/branch/master/tutoriel-api-gitlab-bash.md, en français et en anglais, de l'utilisation de cette API en Bash.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

citizenz7 : GIT / GITHUB : aide-mémoire pour "les nuls"

mercredi 6 janvier 2021 à 06:25
git-github-aide-memoire-pour-les-nuls

Gravatar de citizenz7
Original post of citizenz7.Votez pour ce billet sur Planet Libre.

Eddy33 : AMC version 1.4.0 Fedora 33

lundi 4 janvier 2021 à 20:23

Les RPM d'AMC (Auto Multiple Choice) version 1.4.0 pour Fedora 33 sont disponibles dans le dépôt eddy33.


Installation :

$ sudo dnf install perl-Gtk3 perl-Clone
$ sudo dnf install http://kadionik.vvv.enseirb-matmeca.fr/fedora/eddy33-release-33.rpm
$ sudo dnf install auto-multiple-choice
Attention. AMC utilise openCV. Fedora 33 est basé sur openCV 4.3 qui nécessite le support par le processeur de l'extension AVX2.

++

Gravatar de Eddy33
Original post of Eddy33.Votez pour ce billet sur Planet Libre.

Articles similaires

Carl Chenet : Changez votre culture inefficace du télétravail

lundi 4 janvier 2021 à 11:23

Ce billet de blog s’adresse aux cadres dirigeants et d’encadrement qui s’étonnent que la culture du télétravail est inefficace dans leur entreprise, mais qui devant leur café chaque matin maugréent que “être sur site, c’est plus efficace” ou “rien ne remplace le contact humain”. Ça fait plus de 10 mois que vos troupes sont à la maison. On se réveille. Car d’autres que vous en profitent déjà.

Pourquoi cet avertissement ?

La forme de cet article sera sans doute un peu gênante voire violente pour vous, mais il a des raisons à cela. Vous êtes des grands garçons ou des grandes filles, vous avez une carrière déjà conséquente, on peut vous parler franchement, surtout que vous n’êtes pas visés directement dans un e-mail, ça change du quotidien.

On va commencer par parler du pourquoi vous devez changer votre vision et la culture du télétravail… et vite.

“C’est une petite grippe, ça va passer en quelques semaines”

Non. C’est grave, on s’en rend compte de plus en plus chaque jour. À moins de faire courir de graves risques aux collaborateurs et aller contre les préconisations actuelles du gouvernement, ça n’est plus possible.

Donc on oublie la présence au bureau, c’est actuellement plus possible. Et ça pourrait durer tout 2021, jusqu’à 2022, on ne sait pas trop. Oui, faut ouvrir les yeux, si on te dit début 2021, ce sera 2022, faut pas être naïf. Rappelez-vous qu’on vous a dit qu’on serait jamais reconfiné. Bon. Et en plus le virus commence à muter…

Donc à moins de bosser dans un ministère, il va falloir changer tes habitudes de travail, parce que l’excuse du “ça avance pas à cause du télétravail”, ça va finir par vous faire remarquer (au mieux) ou virer (au pire).

“Moi j’ai toujours bossé comme ça”

Et ça t’a réussi puisque t’es chef(fe). Bravo. Mais là, tu peux plus le faire. C’est juste plus possible, parce que même si tu mets ton costume et ton masque chaque jour pour aller enchaîner tes réunions à rallonge au bureau, il n’y a plus personne pour t’écouter. Oui je sais, c’est dur, ça fait un sacré changement. Mais bon, parfois il y a la guerre, parfois une épidémie, qui t’oblige à sortir de la routine de ta vie. Ça se fera avec ou sans toi, à toi de choisir.

Oui c’est violent, je sais, mais ouvre un livre d’histoire et cherche tous les chapitres ce qui commencent par “guerre” tu verras qu’on est pas si mal que ça actuellement, en fait. Et non 2020 n’a pas été la pire année de l’histoire. Très embêtante c’est sûr.

Pour recadrer l’article (on s’enflamme, on s’enflamme), revenons un instant sur ta vision de cadre dirigeant du télétravail.

Soyons clairs, en fait jusqu’ici pour toi le télétravail, c’était pour les mamans le mercredi et pour les feignants le vendredi.

Ta vision du télétravail, c’était un confort accordé gracieusement par l’employeur à l’employé. Tu avais vaguement entendu parler que des boîtes américaines n’avaient plus de bureau depuis des années, mais toi tu es dans une boîte sérieuse, on rigole pas. Dans ta boîte sérieuse, ils ont accordé un jour de télétravail pour l’ajouter également dans les offres d’emploi, parce qu’une offre d’emploi sans télétravail, c’est beaucoup moins sexy depuis cinq ans, surtout si tu veux pécho du développeur. Mais bon, ça reste une connerie pour la génération Y, les femmes et les feignants (dans ta vision).

Les offres d'emploi sans culture du télétravail sont moins attractives
Les offres d’emploi sans télétravail sont moins attractives

“Le contact humain, c’est quand même mieux”

J’en sais rien, chacun à son avis, on est pas là pour en discuter. Ce qui est sûr, c’est que c’est plus possible puisque, par la situation qui s’impose à nous, il faut justement éviter le contact humain.

Tu peux continuer à t’arc-bouter à ton contact humain, mais en attendant, tes employés s’échangent des conneries toute la journée via la messagerie instantanée. Ils se font des “standups” chaque matin en appel audio pour faire le point sur les projets en cours et s’appellent en direct pour résoudre les problèmes urgents. Ils font grossir la documentation de l’entreprise en éditant des documents partagés… En fait ils mettent en place de fait une culture du télétravail dans ton entreprise.

“C’est plus difficile de communiquer”

Chacun sa vision de la communication. Mais encore une fois, si ça se limite à parler à quelqu’un face-à-face, oublie, ça n’est plus possible. Fais ton deuil et passe à autre chose. Tu ne peux pas limiter la culture du télétravail de ton entreprise à ta propre expérience, surtout si jusque là tu ne l’avais pas pratiqué.

Heureusement pour nous, des magnifiques outils sont aujourd’hui disponibles pour télétravailler :

Ces outils n’ont jamais été aussi efficace. Il y a trente ans, on aurait eu que le téléphone… Donc, il est temps d’arrêter de se plaindre et de commencer à s’en servir. Pour information d’autres boîtes s’en servent depuis 10 ans.

“Personne branle rien parce que je les vois pas bosser”

Allez, on va pas se mentir, ça, c’est le paramètre qui fait te littéralement FLIPPER.

Sisi, faut le reconnaître (tu peux, on est entre nous), tu ne sais pas comment évaluer le travail de tes collaborateurs en télétravail. Forcément, vu que tu ne sais pas comment ça marche et que surtout jusqu’ici, tu ne voulais pas le savoir. Et donc bien sûr, t’as essayé d’attendre que ça passe, en se disant que de toute façon, tout le monde était comme toi.

Mais là, ça ne se passe pas. Et les projets que tu n’as pas gérés prennent du retard. Tu charges le télétravail, la situation, le covid, tes subordonnés, mais bon, tout le monde est logé à la même enseigne. Ça va donc finir par te retomber dessus, car sauf si tu as beaucoup de chance, tu n’es pas payé à rien faire et tes propres chefs attendent des résultats.

Peut-être qu’aussi la vraie raison, c’est que tu ne peux plus micromanager, c’est-à-dire te mettre derrière des salariés intelligents et compétents pour leur dire comment faire leur métier toutes les deux minutes et passer ta journée à faire semblant de travailler comme ça en t’étonnant qu’ils n’avancent pas. Là, c’est sûr, le télétravail va te poser un problème.

Vous allez faire quoi ?

Maintenant ce qui est important, c’est de savoir ce que vous, cadres dirigeants et encadrants, vous allez faire ? Vous allez continuer à pleurer avec le motto “c’était mieux avant” et tenter d’attendre que ça passe rapidement (on a vu que c’était mort) ou vous allez commencer à télétravailler, réellement ?

Vous êtes convaincus ? vous avez envie de changer ? Bien, dans ce cas, nous verrons dans le prochain articles quelques points intéressantes pour vous.

L’auteur

Carl Chenet, architecte de systèmes informatiques indépendant (en recherche de mission à partir de janvier 2021), 3 ans de télétravail régulier, entrepreneur.

Fondateur de l’agrégateur Le Journal du hacker, du site d’emploi LinuxJobs.fr et de la newsletter Le Courrier du hacker. Modérateur sur le Chantier, lieu virtuel (Discord, forum) d’échanges d’entrepreneurs francophones.

Me suivre sur les réseaux sociaux

N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre et/ou pour me contacter :

The post Changez votre culture inefficace du télétravail appeared first on Carl Chenet's Blog.

Gravatar de Carl Chenet
Original post of Carl Chenet.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #53

lundi 4 janvier 2021 à 00:01

Pour la 53ème semaine de l'année 2020, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.