DĂ©marrage interne: comment nous fabriquons un produit dans une entreprise de services

Je travaille pour une société de développement sur mesure. En parallèle, nous menons de nombreux projets avec des activités et un volume de travail différents. Chaque semaine, des chefs de projet appellent pour vérifier l'état actuel des choses, établir un plan pour la semaine prochaine et répartir les tâches entre les développeurs. Lorsque je suis devenu chef d'équipe, la participation à ces réunions s'est ajoutée à mes responsabilités.



Je me suis vite rendu compte que les briefings ne sont pas très efficaces, car il n'y avait pas d'image générale et intégrale devant mes yeux, lequel des développeurs est surchargé, et qui, au contraire, est oisif.



Nous utilisons Redmine pour la gestion des tâches. C'est un outil gratuit quelque peu démodé, mais pratique et éprouvé par le temps. Le défaut fatal dans notre cas était l'absence d'un résumé général clair des tâches en cours.



Prototype de la main



Concept de projet



Il vaut la peine de préciser tout de suite qu'il existe en fait une possibilité d'afficher un résumé général, mais uniquement pour l'administrateur qui a accès à tous les projets. En pratique, chaque manager n'a accès qu'à une certaine tranche de projets et de tâches.



, , . , trello- , -.





, Redmine REST API - , . , - .



junior frontend , - , . «, », — .



, — Vue.js . , vue-cli vuex, API, . , Redmine , , .



, , , php- - 200 , . (/), .



, cURL file_get_contents(). :



$host = 'https://redmine.app';
$apiKey = '*****';
$context = stream_context_create([
    "http" => [
        "method" => "GET",
        "header" => "X-Redmine-API-Key: $apiKey"
    ]
]);

$projects = file_get_contents("$host/projects.json", false, $context);


? SPA, JSON Web Tokens? , cookie-based . POST-, , -. checkRedmineUser($login, $password), , -.



- :



$auth = base64_encode("$login:$password");
$opts = [
    "http" => [
        "method" => "GET",
        "header" => [
            "Authorization: Basic $auth"
        ],
        "ignore_errors" => true,
    ]
];

$context = stream_context_create($opts);
$response = file_get_contents("$host/users/current.json", false, $context);


API, . : MVP, .



?



— , . :



Première version



, , / drag-n-drop' .



, , , , — . , , -, .





— PM-, . , . , — ?



, : « », , , CI/CD. - , - , : «, ...».



Laravel, Gitlab, issues.



(milestones Gitlab) — « » , — .



, , , , . , -, HTTP API.



Gitlab-CI. — .. , docker .



middleware. JSON-, — DTO. (enums) — spatie/enum. file_get_contents() guzzle.



. , , , . « » — -:



Mes tâches





, .



  1. — . , , , . , « MVP».
  2. . , , . , Unix: do one thing, and do it well.
  3. , , , . Issues , , pull request' , , , .
  4. — . - , , , production. , . , . code review, .


Je suis content de la façon dont ça s'est passé, comment ça s'est passé, et je collecte déjà des idées pour de nouveaux projets.




All Articles