内部启动:我们如何在服务公司生产产品

我在一家定制开发公司工作。同时,我们正在运行许多具有不同活动和工作量的项目。每周,项目经理都会打电话来检查当前的状况,制定下周的计划,并在开发人员之间分配任务。当我成为团队负责人时,参加这些会议已成为我的职责。



我很快意识到,简报不是很有效,因为在我眼前没有一般和完整的画面,哪一个开发人员超负荷工作,而谁却闲置了。



我们使用Redmine进行任务管理。这是一个老式的工具,但是方便且经过时间考验的免费工具。在我们的案例中,致命的缺陷是缺乏对当前任务的清晰概括。



手原型



项目概念



值得立即澄清的是,实际上有机会显示一般摘要,但仅适用于有权访问所有项目的管理员。实际上,每个经理只能访问特定部分的项目和任务。



, , . , 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, .



?



— , . :



第一版



, , / 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.



. , , , . « » — -:



我的任务





, .



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


我对结果,如何发生以及已经为新项目收集想法感到满意。




All Articles