mirror of
https://github.com/bakhirev/assayo.git
synced 2024-11-16 08:11:40 +00:00
Merge pull request #5 from bakhirev/feature/translations
feature/translations
This commit is contained in:
commit
cbaecb6558
|
@ -1,5 +1,5 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=no, maximum-scale=1.0">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
|
@ -35,29 +35,29 @@
|
|||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||
|
||||
<title>Git статистика</title>
|
||||
<meta name="description" content="Простой и быстрый отчёт по истории коммитов в git.">
|
||||
<meta name="keywords" content="git, статистика, аудит, история, log, мониторинг, контроль сотрудников">
|
||||
<title>Git Statistics</title>
|
||||
<meta name="description" content="Simple and fast report on git commit history.">
|
||||
<meta name="keywords" content="git, statistics, audit, history, log, monitoring, employee control">
|
||||
<meta name="author" content="Bakhirev Aleksei">
|
||||
<meta name="copyright" content="(c) Bakhirev Aleksei">
|
||||
<meta http-equiv="Reply-to" content="alexey-bakhirev@yandex.ru">
|
||||
|
||||
<meta name="application-name" content="GIT Статистика">
|
||||
<meta name="msapplication-tooltip" content="Простой и быстрый отчёт по истории коммитов в git.">
|
||||
<meta property="og:title" content="GIT Статистика">
|
||||
<meta property="og:description" content="Простой и быстрый отчёт по истории коммитов в git.">
|
||||
<meta name="application-name" content="Git Statistics">
|
||||
<meta name="msapplication-tooltip" content="Simple and fast report on Git commit history.">
|
||||
<meta property="og:title" content="Git Statistics">
|
||||
<meta property="og:description" content="Simple and fast report on Git commit history.">
|
||||
<meta property="og:image" content="http://assayo.jp/assets/seo/custom_icon_256.png">
|
||||
<meta property="og:site_name" content="Assayo">
|
||||
<meta property="og:url" content="http://assayo.jp/">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="GIT Статистика">
|
||||
<meta name="twitter:description" content="Простой и быстрый отчёт по истории коммитов в git.">
|
||||
<meta name="twitter:title" content="Git Statistics">
|
||||
<meta name="twitter:description" content="Simple and fast report on Git commit history.">
|
||||
<meta name="twitter:creator" content="Bakhirev Aleksei">
|
||||
<meta name="twitter:image:src" content="http://assayo.jp/assets/seo/custom_icon_256.png">
|
||||
<meta name="twitter:domain" content="assayo.jp">
|
||||
<meta name="twitter:site" content="assayo.jp">
|
||||
<meta itemprop="name" content="GIT Статистика">
|
||||
<meta itemprop="description" content="Простой и быстрый отчёт по истории коммитов в git.">
|
||||
<meta itemprop="name" content="Git Statistics">
|
||||
<meta itemprop="description" content="Simple and fast report on Git commit history.">
|
||||
<meta itemprop="image" content="http://assayo.jp/assets/seo/custom_icon_256.png">
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class Localization {
|
||||
language:string = 'ru';
|
||||
language:string = 'en';
|
||||
|
||||
translations: any = {};
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ function getFormattedType(dataGrip: any): string {
|
|||
|
||||
export default function getTitle(dataGrip: any, commits: any) {
|
||||
if (!commits.length) {
|
||||
return 'Git статистика';
|
||||
return 'Git Statistics';
|
||||
}
|
||||
|
||||
const type = getFormattedType(dataGrip) || '';
|
||||
|
|
|
@ -19,10 +19,10 @@ const Common = observer((): React.ReactElement | null => {
|
|||
<InputString
|
||||
title="page.settings.document.name"
|
||||
value={title}
|
||||
placeholder="Git статистика"
|
||||
placeholder="Git Statistics"
|
||||
onChange={(value: string) => {
|
||||
setTitle(value);
|
||||
document.title = value || 'Git статистика';
|
||||
document.title = value || 'Git Statistics';
|
||||
applicationHasCustom.title = true;
|
||||
}}
|
||||
/>
|
||||
|
|
|
@ -1,94 +1,94 @@
|
|||
export default `
|
||||
§ achievements.commitsAfter1500.title: Сова
|
||||
§ achievements.commitsAfter1500.description: 70% коммитов после 15:00
|
||||
§ achievements.commitsBefore1500.title: Ранняя пташка
|
||||
§ achievements.commitsBefore1500.description: 70% коммитов до обеда
|
||||
§ achievements.workEveryTime.title: Раб божий
|
||||
§ achievements.workEveryTime.description: есть коммит на каждый час суток
|
||||
§ achievements.workNotWork.title: Стрельба холостыми
|
||||
§ achievements.workNotWork.description: коммиты есть, а закрытых задач нет
|
||||
§ achievements.userNotWork.title: Залётный
|
||||
§ achievements.userNotWork.description: это не его основной проект
|
||||
§ achievements.userIsDied.title: Мёртвая душа
|
||||
§ achievements.userIsDied.description: работал, но уволился
|
||||
§ achievements.lessTasks.title: Зашел и вышел
|
||||
§ achievements.lessTasks.description: меньше всего закрытых задач
|
||||
§ achievements.moreTasks.title: Батя грит малаца
|
||||
§ achievements.moreTasks.description: больше всего закрытых задач
|
||||
§ achievements.everyMessageLong.title: Мастер красноречия
|
||||
§ achievements.everyMessageLong.description: стабильно самые длинные подписи коммитов
|
||||
§ achievements.everyMessageShort.title: Болтун находка для шпиона
|
||||
§ achievements.everyMessageShort.description: стабильно, самые короткие подписи коммитов
|
||||
§ achievements.shortestName.title: Размер не главное
|
||||
§ achievements.shortestName.description: самое короткое имя
|
||||
§ achievements.longestName.title: Азим Азиз Иль Ам Кадир Имран II
|
||||
§ achievements.longestName.description: самое длинное имя
|
||||
§ achievements.moreCommits.title: Мастер бекапов
|
||||
§ achievements.moreCommits.description: больше всего коммитов
|
||||
§ achievements.lessCommits.title: Редко но метко
|
||||
§ achievements.lessCommits.description: меньше всего коммитов
|
||||
§ achievements.oneCommitOneTask.title: Точно в цель
|
||||
§ achievements.oneCommitOneTask.description: в среднем один коммит на задачу
|
||||
§ achievements.moreLazyDays.title: Мысленно я с вами
|
||||
§ achievements.moreLazyDays.description: больше всего дней без коммитов
|
||||
§ achievements.lessLazyDays.title: Папа Карло
|
||||
§ achievements.lessLazyDays.description: меньше всего дней без коммитов
|
||||
§ achievements.zeroLazyDays.title: Ни единого разрыва
|
||||
§ achievements.zeroLazyDays.description: ни одного дня без коммитов
|
||||
§ achievements.moreWorkDays.title: Ценный работник
|
||||
§ achievements.moreWorkDays.description: больше всего рабочих дней
|
||||
§ achievements.moreScopes.title: Стартапер
|
||||
§ achievements.moreScopes.description: сделал больше всего фичей
|
||||
§ achievements.lessScopes.title: Щегол
|
||||
§ achievements.lessScopes.description: сделал меньше всего фичей
|
||||
§ achievements.moreDaysForTask.title: Улитка на склоне
|
||||
§ achievements.moreDaysForTask.description: работа по задачам идёт медленнее чем у остальных
|
||||
§ achievements.more2DaysForTask.title: Cо слоу
|
||||
§ achievements.more2DaysForTask.description: больше двух дней на задачу
|
||||
§ achievements.moreDaysInProject.title: Старожил
|
||||
§ achievements.moreDaysInProject.description: больше всего дней на проекте
|
||||
§ achievements.lessDaysInProject.title: А это кто?
|
||||
§ achievements.lessDaysInProject.description: меньше всего дней на проекте
|
||||
§ achievements.more90DaysInProject.title: Добро пожаловать
|
||||
§ achievements.more90DaysInProject.description: не уволили на испытательном
|
||||
§ achievements.lessDaysForTask.title: Скорострел
|
||||
§ achievements.lessDaysForTask.description: одна задача занимает меньше дня
|
||||
§ achievements.adam.title: Адам
|
||||
§ achievements.adam.description: первый стабильный сотрудник на проекте
|
||||
§ achievements.more666DaysInProject.title: Чёрт
|
||||
§ achievements.more666DaysInProject.description: отработал 666 дней на проекте
|
||||
§ achievements.more777DaysInProject.title: Азино 3 топора
|
||||
§ achievements.more777DaysInProject.description: отработал 777 дней на проекте
|
||||
§ achievements.moreRefactoring.title: Выпускающий редактор
|
||||
§ achievements.moreRefactoring.description: сделал больше всех меток «рефакторинг»
|
||||
§ achievements.longestMessage.title: А разговоров то было...
|
||||
§ achievements.longestMessage.description: самая длинная подпись коммита за все время
|
||||
§ achievements.moreTasksInDay.title: Спиди-гонщик
|
||||
§ achievements.moreTasksInDay.description: рекорд по количеству закрытых задач в день
|
||||
§ achievements.hasCommitFrom0to7.title: Ночной дозор
|
||||
§ achievements.hasCommitFrom0to7.description: есть коммит на каждый час ночи
|
||||
§ achievements.noCommitOnDay.title: Технический перерыв
|
||||
§ achievements.noCommitOnDay.description: есть определенный час и день в рабочее время в который никогда не комитит
|
||||
§ achievements.hasCommitEveryTime.title: Умер на работе
|
||||
§ achievements.hasCommitEveryTime.description: есть коммит на час каждого дня (включая выходные)
|
||||
§ achievements.commitsAfter1800.title: Делу время
|
||||
§ achievements.commitsAfter1800.description: нет ни одного коммита после 18:00
|
||||
§ achievements.more1488DaysInProject.title: им. Максима Марцинкевича
|
||||
§ achievements.more1488DaysInProject.description: отработал 1488 дней на проекте
|
||||
§ achievements.taskNumber300.title: Знаком с трактористом
|
||||
§ achievements.taskNumber300.description: первый взял в работу задачу с номером 300
|
||||
§ achievements.moreFix.title: Bug hunter
|
||||
§ achievements.moreFix.description: больше всего закрытых багов
|
||||
§ achievements.lessWorkDays.title: Дальше без меня
|
||||
§ achievements.lessWorkDays.description: меньше всего рабочих дней
|
||||
§ achievements.moreCreateCode.title: Созидатель
|
||||
§ achievements.moreCreateCode.description: склонен больше остальных добавлять код
|
||||
§ achievements.moreRemoveCode.title: Разрушитель
|
||||
§ achievements.moreRemoveCode.description: склонен больше остальных удалять код
|
||||
§ achievements.moreChangeCode.title: Реформатор
|
||||
§ achievements.moreChangeCode.description: склонен больше остальных изменять код
|
||||
§ achievements.moreStyle.title: Полиция моды
|
||||
§ achievements.moreStyle.description: склонен больше остальных изменять CSS
|
||||
§ achievements.moreOnHoliday.title: Нет жизни
|
||||
§ achievements.moreOnHoliday.description: относительно много коммитов в нерабочее время
|
||||
§ achievements.commitsAfter1500.title: Night Owl
|
||||
§ achievements.commitsAfter1500.description: 70% of commits after 3:00 PM
|
||||
§ achievements.commitsBefore1500.title: Early Bird
|
||||
§ achievements.commitsBefore1500.description: 70% of commits before noon
|
||||
§ achievements.workEveryTime.title: Devoted Worker
|
||||
§ achievements.workEveryTime.description: a commit for every hour of the day
|
||||
§ achievements.workNotWork.title: Shooting Blanks
|
||||
§ achievements.workNotWork.description: commits are there, but no tasks are closed
|
||||
§ achievements.userNotWork.title: Fly-By
|
||||
§ achievements.userNotWork.description: this is not their main project
|
||||
§ achievements.userIsDied.title: Dead Soul
|
||||
§ achievements.userIsDied.description: worked, but resigned
|
||||
§ achievements.lessTasks.title: Came and Went
|
||||
§ achievements.lessTasks.description: least closed tasks
|
||||
§ achievements.moreTasks.title: Father Says Well Done
|
||||
§ achievements.moreTasks.description: most closed tasks
|
||||
§ achievements.everyMessageLong.title: Master of Eloquence
|
||||
§ achievements.everyMessageLong.description: consistently the longest commit messages
|
||||
§ achievements.everyMessageShort.title: Talkative, A Spy's Dream
|
||||
§ achievements.everyMessageShort.description: consistently, the shortest commit messages
|
||||
§ achievements.shortestName.title: Size Doesn't Matter
|
||||
§ achievements.shortestName.description: shortest name
|
||||
§ achievements.longestName.title: Azim Aziz Il Am Kadir Imran II
|
||||
§ achievements.longestName.description: longest name
|
||||
§ achievements.moreCommits.title: Backup Master
|
||||
§ achievements.moreCommits.description: most commits
|
||||
§ achievements.lessCommits.title: Rare but Precise
|
||||
§ achievements.lessCommits.description: least commits
|
||||
§ achievements.oneCommitOneTask.title: Right on Target
|
||||
§ achievements.oneCommitOneTask.description: on average one commit per task
|
||||
§ achievements.moreLazyDays.title: With You in Spirit
|
||||
§ achievements.moreLazyDays.description: most days without commits
|
||||
§ achievements.lessLazyDays.title: Papa Carlo
|
||||
§ achievements.lessLazyDays.description: least days without commits
|
||||
§ achievements.zeroLazyDays.title: Not a Single Break
|
||||
§ achievements.zeroLazyDays.description: not a single day without commits
|
||||
§ achievements.moreWorkDays.title: Valuable Employee
|
||||
§ achievements.moreWorkDays.description: most working days
|
||||
§ achievements.moreScopes.title: Startuper
|
||||
§ achievements.moreScopes.description: completed the most features
|
||||
§ achievements.lessScopes.title: Dandy
|
||||
§ achievements.lessScopes.description: completed the fewest features
|
||||
§ achievements.moreDaysForTask.title: Snail on the Slope
|
||||
§ achievements.moreDaysForTask.description: tasks take longer than others
|
||||
§ achievements.more2DaysForTask.title: Slow and Steady
|
||||
§ achievements.more2DaysForTask.description: more than two days per task
|
||||
§ achievements.moreDaysInProject.title: Old-Timer
|
||||
§ achievements.moreDaysInProject.description: most days in the project
|
||||
§ achievements.lessDaysInProject.title: And Who Is This?
|
||||
§ achievements.lessDaysInProject.description: least days in the project
|
||||
§ achievements.more90DaysInProject.title: Welcome Aboard
|
||||
§ achievements.more90DaysInProject.description: not fired during the probation period
|
||||
§ achievements.lessDaysForTask.title: Quick Draw
|
||||
§ achievements.lessDaysForTask.description: a task takes less than a day
|
||||
§ achievements.adam.title: Adam
|
||||
§ achievements.adam.description: the first stable employee on the project
|
||||
§ achievements.more666DaysInProject.title: Devil
|
||||
§ achievements.more666DaysInProject.description: worked 666 days on the project
|
||||
§ achievements.more777DaysInProject.title: Azino Three Axes
|
||||
§ achievements.more777DaysInProject.description: worked 777 days on the project
|
||||
§ achievements.moreRefactoring.title: Executive Editor
|
||||
§ achievements.moreRefactoring.description: made the most 'refactoring' tags
|
||||
§ achievements.longestMessage.title: So Many Conversations...
|
||||
§ achievements.longestMessage.description: the longest commit message of all time
|
||||
§ achievements.moreTasksInDay.title: Speed Racer
|
||||
§ achievements.moreTasksInDay.description: record for the number of tasks closed in a day
|
||||
§ achievements.hasCommitFrom0to7.title: Night Watch
|
||||
§ achievements.hasCommitFrom0to7.description: a commit for every hour of the night
|
||||
§ achievements.noCommitOnDay.title: Technical Break
|
||||
§ achievements.noCommitOnDay.description: there is a certain hour and day in working time when never commits
|
||||
§ achievements.hasCommitEveryTime.title: Died at Work
|
||||
§ achievements.hasCommitEveryTime.description: a commit for every hour of each day (including weekends)
|
||||
§ achievements.commitsAfter1800.title: Business Time
|
||||
§ achievements.commitsAfter1800.description: no commits after 6:00 PM
|
||||
§ achievements.more1488DaysInProject.title: Named After Maxim Martsinkevich
|
||||
§ achievements.more1488DaysInProject.description: worked 1488 days on the project
|
||||
§ achievements.taskNumber300.title: Knows the Tractor Driver
|
||||
§ achievements.taskNumber300.description: first to take on task number 300
|
||||
§ achievements.moreFix.title: Bug Hunter
|
||||
§ achievements.moreFix.description: most closed bugs
|
||||
§ achievements.lessWorkDays.title: Count Me Out
|
||||
§ achievements.lessWorkDays.description: least working days
|
||||
§ achievements.moreCreateCode.title: Creator
|
||||
§ achievements.moreCreateCode.description: tends to add code more than others
|
||||
§ achievements.moreRemoveCode.title: Destroyer
|
||||
§ achievements.moreRemoveCode.description: tends to remove code more than others
|
||||
§ achievements.moreChangeCode.title: Reformer
|
||||
§ achievements.moreChangeCode.description: tends to change code more than others
|
||||
§ achievements.moreStyle.title: Fashion Police
|
||||
§ achievements.moreStyle.description: tends to change CSS more than others
|
||||
§ achievements.moreOnHoliday.title: No Life
|
||||
§ achievements.moreOnHoliday.description: relatively many commits in non-working hours
|
||||
`;
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
export default `
|
||||
§ uiKit.console: Копировать
|
||||
§ uiKit.dataLoader.page: Страница
|
||||
§ uiKit.dataLoader.size: Отображается по
|
||||
§ uiKit.dataLoader.from: из
|
||||
§ uiKit.dataLoader.all: Показать все
|
||||
§ uiKit.hoursChart.work: стандартное рабочее время (будни, с 07:00 до 20:00)
|
||||
§ uiKit.hoursChart.weekend: выходные дни или время до/после рабочего дня
|
||||
§ uiKit.hoursChart.days: суммарное количество коммитов за все время в конкретный день и час
|
||||
§ uiKit.page.remove: Удалить
|
||||
§ uiKit.races.go: Поехали
|
||||
§ uiKit.nothingFound.common.title: Нет или недостаточно данных для отображения
|
||||
§ uiKit.nothingFound.common.description: Система обработает больше данных, если коммиты будут подписаны в формате [Git commit message convention|https://www.conventionalcommits.org/en/v1.0.0/]. Шаблон:
|
||||
§ uiKit.nothingFound.common.console: Номер_задачи тип(фича): пояснение
|
||||
§ uiKit.nothingFound.common.example: Например:
|
||||
§ uiKit.nothingFound.staff.title: Нет данных для этого сотрудника
|
||||
§ uiKit.console: Copy
|
||||
§ uiKit.dataLoader.page: Page
|
||||
§ uiKit.dataLoader.size: Displaying by
|
||||
§ uiKit.dataLoader.from: from
|
||||
§ uiKit.dataLoader.all: Show all
|
||||
§ uiKit.hoursChart.work: Standard working hours (weekdays, from 07:00 to 20:00)
|
||||
§ uiKit.hoursChart.weekend: Weekends or time before/after working day
|
||||
§ uiKit.hoursChart.days: Total number of commits at any specific day and hour over time
|
||||
§ uiKit.page.remove: Remove
|
||||
§ uiKit.races.go: Let's go
|
||||
§ uiKit.nothingFound.common.title: No or Insufficient Data for Display
|
||||
§ uiKit.nothingFound.common.description: The system will process more data if commits are formatted according to the [Git commit message convention|https://www.conventionalcommits.org/en/v1.0.0/]. Template:
|
||||
§ uiKit.nothingFound.common.console: Task_Number type(feature): explanation
|
||||
§ uiKit.nothingFound.common.example: For example:
|
||||
§ uiKit.nothingFound.staff.title: No data for this employee
|
||||
§ uiKit.nothingFound.staff.description1:
|
||||
Он вносил правки не каждый рабочий день и получил статус «Помошник».
|
||||
Работой сотрудников с таким статусом по данному проекту можно пренебречь, т.к. его влад на общем фоне незначителен.
|
||||
They made edits not every working day and received the "Assistant" status.
|
||||
The work of employees with such status on this project can be neglected as their contribution is insignificant in the general context.
|
||||
|
||||
§ uiKit.nothingFound.staff.description2:
|
||||
Поэтому система не рассчитывает для него ряд показателей.
|
||||
Если это ошибка и данного сотрудника нужно рассчитать как обычного, перейдите в раздел «Настройки» и измените его тип.
|
||||
Therefore, the system does not calculate certain metrics for them.
|
||||
If this is an error and the employee should be treated as regular, go to the "Settings" section and change their type.
|
||||
|
||||
§ common.filters: Фильтры
|
||||
§ common.notifications.save: Изменения сохранены
|
||||
§ common.notifications.setting: Настройки сохранены
|
||||
§ common.filters: Filters
|
||||
§ common.notifications.save: Changes saved
|
||||
§ common.notifications.setting: Settings saved
|
||||
`;
|
|
@ -17,11 +17,11 @@ export default `
|
|||
§ sidebar.team.week: By week
|
||||
§ sidebar.team.month: By month
|
||||
§ sidebar.team.tree: Files
|
||||
§ sidebar.team.hours: Расписание
|
||||
§ sidebar.team.hours: Schedule
|
||||
§ sidebar.team.commits: All commits
|
||||
§ sidebar.team.changes: All changes
|
||||
§ sidebar.team.words: Popular words
|
||||
§ sidebar.team.top: Викторина
|
||||
§ sidebar.team.top: Quiz
|
||||
§ sidebar.team.settings: Settings
|
||||
§ sidebar.person.total: Common info
|
||||
§ sidebar.person.money: Work cost
|
||||
|
@ -29,7 +29,7 @@ export default `
|
|||
§ sidebar.person.day: By day
|
||||
§ sidebar.person.week: By week
|
||||
§ sidebar.person.month: By month
|
||||
§ sidebar.person.hours: Расписание
|
||||
§ sidebar.person.hours: Schedule
|
||||
§ sidebar.person.commits: All commits
|
||||
§ sidebar.person.changes: All changes
|
||||
§ sidebar.person.words: Popular words
|
||||
|
|
|
@ -1,203 +1,203 @@
|
|||
export default `
|
||||
§ page.welcome.step1: Выполните команду в корне вашего проекта
|
||||
§ page.welcome.step3: Перетащите
|
||||
§ page.welcome.step4: файл log.txt на эту страницу
|
||||
§ page.welcome.description1: Git создаст файл log.txt. Он содержит данные для построения отчёта. Или git shortlog -s -n -e если отчёт вам не нужен. Создайте файл
|
||||
§ page.welcome.description2: [.mailmap|https://git-scm.com/docs/gitmailmap] в корне проекта, чтобы объединить статистику по сотрудникам.
|
||||
§ page.welcome.description: Git создаст файл log.txt. Он содержит данные для построения отчёта. Или git shortlog -s -n -e если отчёт вам не нужен. Создайте файл [.mailmap|https://git-scm.com/docs/gitmailmap] в корне проекта, чтобы объединить статистику по сотрудникам.
|
||||
§ page.welcome.warning1: Сервис *НЕ ХРАНИТ* и *НЕ ПЕРЕДАЁТ* ваши данные. Все расчёты выполняются локально в вашем браузере прямо на вашей машине.
|
||||
§ page.welcome.warning2: Сервис *НЕ СОБИРАЕТ СТАТИСТИКУ* по проектам. Вы можете отключить интернет, проверить трафик и даже собрать локальный билд из [исходников|https://github.com/bakhirev/assayo].
|
||||
§ page.common.words.title: Статистика по словам
|
||||
§ page.common.words.description: самое популярное слово. Встречается $1 раза.
|
||||
§ page.common.commits.title: Количество коммитов по дням
|
||||
§ page.common.commits.description: ($1) самый продуктивный день по числу коммитов.
|
||||
§ page.common.commits.title2: $1 сделано коммитов: $2
|
||||
§ page.common.filter.allUsers: Не имеет значения
|
||||
§ page.print.modal.title: Что распечатываем?
|
||||
§ page.print.modal.page: Текущую страницу
|
||||
§ page.print.modal.type: Текущий раздел
|
||||
§ page.print.modal.all: Всю статистику
|
||||
§ page.print.modal.cancel: Отмена
|
||||
§ page.print.tableOfContents: Оглавление
|
||||
§ page.print.title: Отчёт по git-репозиторию «$1»
|
||||
§ page.print.description: Данные для отчёта были получены из истории коммитов.
|
||||
§ page.team.author.title: Статистика по сотрудникам
|
||||
§ page.team.author.description1: *Часть статистики* (скорость работы, затраченные деньги и т.п.) *по сотрудникам с типом «Помощник» не считается*, т.к. это эпизодическая роль в проекте. Предполагаем, что они не влияют на проект, а их правками можно пренебречь на фоне общего объема работы.
|
||||
§ page.team.author.description2: *Сортировка по умолчанию* — это сортировка по количеству задач и группам (текущие, уволенные, помогающие сотрудники).
|
||||
§ page.team.author.types: Тип работ
|
||||
§ page.team.author.commits: Коммитов
|
||||
§ page.team.author.commitsSmall: коммитов
|
||||
§ page.team.author.tasks: Задач
|
||||
§ page.team.author.tasksSmall: задач
|
||||
§ page.team.author.workedLosses: Дни с коммитами и без
|
||||
§ page.team.author.worked: работа
|
||||
§ page.team.author.losses: дни без коммитов
|
||||
§ page.team.author.days: дней
|
||||
§ page.team.author.daysForTask: Дней на задачу
|
||||
§ page.team.author.scopes: Фич
|
||||
§ page.team.author.moneyAll: Получил
|
||||
§ page.team.author.moneyWorked: Отработал
|
||||
§ page.team.author.moneyLosses: Переплата
|
||||
§ page.team.hours.title: Распределение коммитов в течении каждого дня недели
|
||||
§ page.team.month.title: Календарь работы по проекту
|
||||
§ page.team.scope.title: Статистика по фичам
|
||||
§ page.team.scope.scope: Фича
|
||||
§ page.team.scope.days: Раб. дней
|
||||
§ page.team.scope.authorsDays: Человеко-дней
|
||||
§ page.team.scope.tasks: Задач
|
||||
§ page.team.scope.commits: Коммитов
|
||||
§ page.team.scope.commitsSmall: коммитов
|
||||
§ page.team.scope.types: Тип работ
|
||||
§ page.team.scope.authors: Персональный вклад
|
||||
§ page.team.scope.cost: Стоимость
|
||||
§ page.team.type.title: Статистика по типам задач
|
||||
§ page.team.type.description: *Персональный вклад* считается по количеству коммитов, а не объему измененных строк или файлов. Поэтому следует так же смотреть раздел «Анализ файлов», чтобы оценить масштаб изменений.
|
||||
§ page.team.type.type: Тип работы
|
||||
§ page.team.type.tasks: Задач
|
||||
§ page.team.type.tasksSmall: задач
|
||||
§ page.team.type.days: Дней
|
||||
§ page.team.type.daysSmall: дней
|
||||
§ page.team.type.authorsDays: Человеко-дней
|
||||
§ page.team.type.commits: Коммитов
|
||||
§ page.team.type.authors: Персональный вклад
|
||||
§ page.team.total.titleA: Объём работ
|
||||
§ page.team.total.titleB: Стоимость
|
||||
§ page.team.total.daysWorked.title: человеко-дней
|
||||
§ page.team.total.daysWorked.description: Учтены только дни, в которые делались коммиты
|
||||
§ page.team.total.commits.title: коммитов
|
||||
§ page.team.total.commits.description: Удалённые ветки не считаются
|
||||
§ page.team.total.daysLosses.title: дней без коммитов
|
||||
§ page.team.total.daysLosses.description: Все дни минус: праздники, выходные, отпуск, дни с коммитами
|
||||
§ page.team.total.employment.title: работает / уволилось
|
||||
§ page.team.total.employment.description: Если сотрудник в течении месяца не сделал ни одного коммита, он считается уволенным
|
||||
§ page.team.total.moneyAll.title: общая
|
||||
§ page.team.total.moneyAll.description: Суммарные затраты на зп
|
||||
§ page.team.total.moneyWorked.title: фактическая
|
||||
§ page.team.total.moneyWorked.description: Фактически отработанные дни умноженные на среднюю зп
|
||||
§ page.team.total.moneyLosses.title: возможная переплата
|
||||
§ page.team.total.moneyLosses.description: Оплаченные рабочие дни, когда коммитов не было
|
||||
§ page.team.total.weekendPayment.title: работа на выходных
|
||||
§ page.team.total.weekendPayment.description: Суммарная переплата за работу в выходные дни
|
||||
§ page.team.total.workSpeed.title: задач в день
|
||||
§ page.team.total.workSpeed.description: Средняя скорость работы команды при текущем составе сотрудников
|
||||
§ page.team.total.moneySpeed.title: в месяц
|
||||
§ page.team.total.moneySpeed.description: Прогнозируемая сумма выплаты на зп при текущем составе сотрудников без учета налогов и сопутствующих затрат
|
||||
§ page.team.total.description1: *Человеко-дни* — это работа одного сотрудника в течение одного рабочего дня. Например, за один календарный день, команда из трех сотрудников выдает объем работы в три человеко-дня.
|
||||
§ page.team.total.description2: *Днями прогулов* считаются только рабочие дни, когда коммиты могли бы быть сделаны. Выходные, государственные праздники и отпуска в расчёте не участвуют.
|
||||
§ page.team.total.description3: Карточка *работает и уволилось* показывает фактический состав сотрудников, которые постоянно участвуют в работе. Кроме этого, есть «помощники» — это сотрудники, как правило другой специализации, которые могут иногда делать коммиты в проект.
|
||||
§ page.team.total.description4: *Переплатой* считаются только рабочие дни, когда коммиты могли бы быть сделаны. Выходные, государственные праздники и отпуска в расчёте не участвуют. Именно поэтому переплата + фактическая стоимость != общей. В общей стоимости заложена оплата выходных, государственных праздников и отпусков.
|
||||
§ page.team.total.description5: *Работой на выходных* считается по коэффициенту х2 от оплаты обычного дня. Выше отображена именно переплата (х1), т.к. сам факт переработки в данном контексте не интересен. Мы не смотрим скорость сжигания бюджета. Мы смотрим переплату при увеличении скорости работы.
|
||||
§ page.team.tree.title: Дерево проекта с учётом выбранных фильтров
|
||||
§ page.team.tree.filters.author: Сотрудник
|
||||
§ page.team.tree.filters.commits: Количество коммитов
|
||||
§ page.team.tree.filters.help: Минимальное количество коммитов, которое сделал сотрудник в файле
|
||||
§ page.team.tree.filters.all: Все сотрудники
|
||||
§ page.team.tree.add: Кто добавлял
|
||||
§ page.team.tree.change: Кто менял
|
||||
§ page.team.tree.remove: Кто удалял
|
||||
§ page.team.tree.line: строк
|
||||
§ page.team.tree.lineAdd: добавили
|
||||
§ page.team.tree.lineRemove: изменили
|
||||
§ page.team.week.title: Статистика по неделям
|
||||
§ page.team.week.date: Дата
|
||||
§ page.team.week.numberTasks: Количество задач
|
||||
§ page.team.week.people: Количество человек
|
||||
§ page.team.week.line: Изменение строк
|
||||
§ page.team.week.days: Дни с коммитами и без
|
||||
§ page.team.week.lossesDetails: Кто не коммитил
|
||||
§ page.team.week.add: добавили
|
||||
§ page.team.week.change: изменили
|
||||
§ page.team.week.remove: удалили
|
||||
§ page.team.week.hasCommits: были коммиты
|
||||
§ page.team.week.hasNotCommits: небыло коммитов
|
||||
§ page.team.week.days: дней
|
||||
§ page.team.week.tasks: задач
|
||||
§ page.team.pr.task: Задача
|
||||
§ page.team.pr.tasks: задач
|
||||
§ page.team.pr.firstCommitTime: Первый коммит
|
||||
§ page.team.pr.lastCommitTime: Последний
|
||||
§ page.team.pr.workDays: Дней разработки
|
||||
§ page.team.pr.delayDays: Дней ожидания влития
|
||||
§ page.team.pr.commits: Коммиты
|
||||
§ page.team.pr.date: Дата влития
|
||||
§ page.team.pr.mergeAuthor: Влил
|
||||
§ page.team.pr.author: Сотрудник
|
||||
§ page.team.pr.middleTimeRelease: Среднее время поставки (дни)
|
||||
§ page.team.pr.work: разработка
|
||||
§ page.team.pr.delay: ожидание
|
||||
§ page.team.pr.days: дней
|
||||
§ page.team.pr.oneTaskDays: Время потраченное на одну задачу
|
||||
§ page.team.pr.description1: *Время разработки* это разница времени от первого до последнего коммита по задаче. Не важно были перерывы в несколько дней между коммитами или нет. Сам факт какого-либо коммита увеличивает время.
|
||||
§ page.team.pr.description2: *Время ожидания* это время между последним коммитом и влитием кода. Оно показывает фактический простой в ожидании чего-либо.
|
||||
§ page.team.pr.description3: *Зачем отображать время разработки* без разбивки на кодинг и код-ревью? Затем, чтобы показать бизнесу фактическое время поставки кода. Ожидание тестирования, замечания на ревью, проблемы DevOps и прочие несовершенства процесса, как раз уже заложены в этот срок.
|
||||
§ page.team.pr.statByAuthors: Статистика по сотрудникам
|
||||
§ page.team.pr.longDelay: Длительное ожидание влития
|
||||
§ page.person.print.photo.title: Фотография
|
||||
§ page.person.print.photo.description: место для фотографии
|
||||
§ page.person.total.title: Основные характеристики
|
||||
§ page.person.total.daysWorked.title: дней работы
|
||||
§ page.person.total.daysWorked.description: Учтены только дни, в которые делались коммиты
|
||||
§ page.person.total.tasks.title: задач
|
||||
§ page.person.total.tasks.description: Если коммиты правильно подписаны
|
||||
§ page.person.character.title: Персонаж
|
||||
§ page.person.achievement.title: Достижения
|
||||
§ page.person.achievement.positive: Позитивные
|
||||
§ page.person.achievement.normal: Нейтральные
|
||||
§ page.person.achievement.negative: Негативные
|
||||
§ page.person.achievement.description: Чем больше сотрудник набрал отрицательных достижений, тем больше вероятность, что ситуация нестандартная. Возможно, стоит изменить режим его работы, задачи или отчётность. Следует поговорить с ним и узнать, какие проблемы мешают его работе.
|
||||
§ page.person.gets.title: Взятые геты:
|
||||
§ page.person.gets.description: «Взять гет» в данном случае означает первым оставить коммит к задаче с «красивым» номером.
|
||||
§ page.person.business.days.title: дней работы
|
||||
§ page.person.business.days.description: Учтены только дни, в которые делались коммиты
|
||||
§ page.person.business.tasks.title: задач
|
||||
§ page.person.business.tasks.description: Если коммиты правильно подписаны
|
||||
§ page.person.business.losses.title: дней без коммитов
|
||||
§ page.person.business.losses.description: Все дни минус: праздники, выходные, отпуск, дни с коммитами
|
||||
§ page.person.business.commits.title: коммитов
|
||||
§ page.person.business.commits.description: Удалённые ветки не считаются
|
||||
§ page.person.business.time.description: Время от первого, до последнего коммита (в том числе, нерабочие дни)
|
||||
§ page.person.business.time.title: Дней на проекте:
|
||||
§ page.person.business.time.dismissed: (уволен)
|
||||
§ page.person.business.time.staff: (не в команде)
|
||||
§ page.person.business.achievements: Достижения
|
||||
§ page.person.changes.title: Достижения
|
||||
§ page.welcome.step1: Execute the command in the root of your project.
|
||||
§ page.welcome.step3: Drag and Drop.
|
||||
§ page.welcome.step4: the log.txt file onto this page.
|
||||
§ page.welcome.description1: Git will create a log.txt file. It contains data for report generation. Or use git shortlog -s -n -e if you don't need a report. Create a file.
|
||||
§ page.welcome.description2: [Create a .mailmap file|https://git-scm.com/docs/gitmailmap] in the root of the project to consolidate employee statistics.
|
||||
§ page.welcome.description: Git will create a log.txt file. It contains data for report generation. Or use git shortlog -s -n -e if you don't need a report. Create a [.mailmap file|https://git-scm.com/docs/gitmailmap] in the root of the project to consolidate employee statistics.
|
||||
§ page.welcome.warning1: The service *DOES NOT STORE* and *DOES NOT TRANSFER* your data. All calculations are performed locally in your browser on your machine.
|
||||
§ page.welcome.warning2: The service *DOES NOT COLLECT STATISTICS* on projects. You can disconnect the internet, check traffic, and even build a local version from the [source|https://github.com/bakhirev/assayo].
|
||||
§ page.common.words.title: Word Statistics.
|
||||
§ page.common.words.description: the most popular word. Occurs $1 times.
|
||||
§ page.common.commits.title: Number of commits by days.
|
||||
§ page.common.commits.description: ($1) the most productive day in terms of the number of commits.
|
||||
§ page.common.commits.title2: $1 commits made: $2
|
||||
§ page.common.filter.allUsers: Does not matter
|
||||
§ page.print.modal.title: What are we printing?
|
||||
§ page.print.modal.page: Current page
|
||||
§ page.print.modal.type: Current section
|
||||
§ page.print.modal.all: All statistics
|
||||
§ page.print.modal.cancel: Cancel
|
||||
§ page.print.tableOfContents: Table of Contents
|
||||
§ page.print.title: Git Repository Report «$1»
|
||||
§ page.print.description: The data for the report was obtained from the commit history.
|
||||
§ page.team.author.title: Employee Statistics
|
||||
§ page.team.author.description1: *Part of the statistics* (work speed, costs, etc.) *for employees with the 'Assistant' type is not counted*, as it is an episodic role in the project. It is assumed that they do not affect the project, and their edits can be disregarded in the context of the overall volume of work.
|
||||
§ page.team.author.description2: *Default sorting* is by the number of tasks and groups (current, fired, assisting employees).
|
||||
§ page.team.author.types: Types of work
|
||||
§ page.team.author.commits: Commits
|
||||
§ page.team.author.commitsSmall: commits
|
||||
§ page.team.author.tasks: Tasks
|
||||
§ page.team.author.tasksSmall: tasks
|
||||
§ page.team.author.workedLosses: Days with and without commits
|
||||
§ page.team.author.worked: work
|
||||
§ page.team.author.losses: days without commits
|
||||
§ page.team.author.days: days
|
||||
§ page.team.author.daysForTask: Days per task
|
||||
§ page.team.author.scopes: Features
|
||||
§ page.team.author.moneyAll: Received
|
||||
§ page.team.author.moneyWorked: Worked for
|
||||
§ page.team.author.moneyLosses: Overpayment
|
||||
§ page.team.hours.title: Distribution of commits during each day of the week
|
||||
§ page.team.month.title: Project Work Calendar
|
||||
§ page.team.scope.title: Feature Statistics
|
||||
§ page.team.scope.scope: Feature
|
||||
§ page.team.scope.days: Working Days
|
||||
§ page.team.scope.authorsDays: Person-Days
|
||||
§ page.team.scope.tasks: Tasks
|
||||
§ page.team.scope.commits: Commits
|
||||
§ page.team.scope.commitsSmall: commits
|
||||
§ page.team.scope.types: Types of Work
|
||||
§ page.team.scope.authors: Personal Contribution
|
||||
§ page.team.scope.cost: Cost
|
||||
§ page.team.type.title: Task Type Statistics
|
||||
§ page.team.type.description: *Personal contribution* is counted by the number of commits, not the volume of changed lines or files. Therefore, the "File Analysis" section should also be consulted to assess the scale of changes.
|
||||
§ page.team.type.type: Type of Work
|
||||
§ page.team.type.tasks: Tasks
|
||||
§ page.team.type.tasksSmall: tasks
|
||||
§ page.team.type.days: Days
|
||||
§ page.team.type.daysSmall: days
|
||||
§ page.team.type.authorsDays: Person-Days
|
||||
§ page.team.type.commits: Commits
|
||||
§ page.team.type.authors: Personal Contribution
|
||||
§ page.team.total.titleA: Volume of Work
|
||||
§ page.team.total.titleB: Cost
|
||||
§ page.team.total.daysWorked.title: person-days
|
||||
§ page.team.total.daysWorked.description: Only days with commits are counted
|
||||
§ page.team.total.commits.title: commits
|
||||
§ page.team.total.commits.description: Deleted branches are not counted
|
||||
§ page.team.total.daysLosses.title: days without commits
|
||||
§ page.team.total.daysLosses.description: All days minus: holidays, weekends, vacation, days with commits
|
||||
§ page.team.total.employment.title: working / dismissed
|
||||
§ page.team.total.employment.description: If an employee does not make any commits within a month, they are considered dismissed
|
||||
§ page.team.total.moneyAll.title: total
|
||||
§ page.team.total.moneyAll.description: Total salary expenses
|
||||
§ page.team.total.moneyWorked.title: actual
|
||||
§ page.team.total.moneyWorked.description: Actual days worked multiplied by average salary
|
||||
§ page.team.total.moneyLosses.title: possible overpayment
|
||||
§ page.team.total.moneyLosses.description: Paid working days when there were no commits
|
||||
§ page.team.total.weekendPayment.title: weekend work
|
||||
§ page.team.total.weekendPayment.description: Total overpayment for weekend work
|
||||
§ page.team.total.workSpeed.title: tasks per day
|
||||
§ page.team.total.workSpeed.description: Average work speed of the team with the current composition of employees
|
||||
§ page.team.total.moneySpeed.title: per month
|
||||
§ page.team.total.moneySpeed.description: Forecasted salary payment amount with the current team composition, excluding taxes and related expenses
|
||||
§ page.team.total.description1: *Person-days* — the work of one employee during a single working day. For example, in one calendar day, a team of three employees produces a work volume of three person-days.
|
||||
§ page.team.total.description2: *Absentee days* are counted only as working days when commits could have been made. Weekends, public holidays, and vacations are not included in the calculation.
|
||||
§ page.team.total.description3: The *working and dismissed* card shows the actual composition of employees who are continuously involved in work. Additionally, there are "assistants" — typically employees of a different specialization who may occasionally make commits to the project.
|
||||
§ page.team.total.description4: *Overpayment* includes only working days when commits could have been made. Weekends, public holidays, and vacations are not included in the calculation. This is why overpayment + actual cost != total. The total cost includes payment for weekends, public holidays, and vacations.
|
||||
§ page.team.total.description5: *Weekend work* is calculated at a rate of x2 the payment of a regular day. The displayed amount is specifically the overpayment (x1), as the fact of overtime in this context is not of interest. We focus on overpayment when increasing work speed.
|
||||
§ page.team.tree.title: Project Tree Considering Selected Filters
|
||||
§ page.team.tree.filters.author: Employee
|
||||
§ page.team.tree.filters.commits: Number of Commits
|
||||
§ page.team.tree.filters.help: The minimum number of commits an employee has made in a file
|
||||
§ page.team.tree.filters.all: All Employees
|
||||
§ page.team.tree.add: Who added
|
||||
§ page.team.tree.change: Who changed
|
||||
§ page.team.tree.remove: Who removed
|
||||
§ page.team.tree.line: lines
|
||||
§ page.team.tree.lineAdd: added
|
||||
§ page.team.tree.lineRemove: changed
|
||||
§ page.team.week.title: Weekly Statistics
|
||||
§ page.team.week.date: Date
|
||||
§ page.team.week.numberTasks: Number of Tasks
|
||||
§ page.team.week.people: Number of People
|
||||
§ page.team.week.line: Line Changes
|
||||
§ page.team.week.days: Days with and without commits
|
||||
§ page.team.week.lossesDetails: Who did not commit
|
||||
§ page.team.week.add: added
|
||||
§ page.team.week.change: changed
|
||||
§ page.team.week.remove: removed
|
||||
§ page.team.week.hasCommits: had commits
|
||||
§ page.team.week.hasNotCommits: had no commits
|
||||
§ page.team.week.days: days
|
||||
§ page.team.week.tasks: tasks
|
||||
§ page.team.pr.task: Task
|
||||
§ page.team.pr.tasks: tasks
|
||||
§ page.team.pr.firstCommitTime: First Commit
|
||||
§ page.team.pr.lastCommitTime: Last
|
||||
§ page.team.pr.workDays: Development Days
|
||||
§ page.team.pr.delayDays: Days Waiting for Merge
|
||||
§ page.team.pr.commits: Commits
|
||||
§ page.team.pr.date: Merge Date
|
||||
§ page.team.pr.mergeAuthor: Merged by
|
||||
§ page.team.pr.author: Employee
|
||||
§ page.team.pr.middleTimeRelease: Average Delivery Time (days)
|
||||
§ page.team.pr.work: development
|
||||
§ page.team.pr.delay: waiting
|
||||
§ page.team.pr.days: days
|
||||
§ page.team.pr.oneTaskDays: Time Spent on One Task
|
||||
§ page.team.pr.description1: *Development time* is the time difference from the first to the last commit on a task. It does not matter if there were breaks of several days between commits or not. Any commit increases the time.
|
||||
§ page.team.pr.description2: *Waiting time* is the time between the last commit and the code merge. It shows the actual downtime while waiting for something.
|
||||
§ page.team.pr.description3: *Why display development time* without splitting into coding and code review? To show the business the actual delivery time of the code. Waiting for testing, review comments, DevOps problems, and other process imperfections are already included in this term.
|
||||
§ page.team.pr.statByAuthors: Statistics by Employees
|
||||
§ page.team.pr.longDelay: Prolonged Waiting for Merge
|
||||
§ page.person.print.photo.title: Photo
|
||||
§ page.person.print.photo.description: space for a photo
|
||||
§ page.person.total.title: Main Characteristics
|
||||
§ page.person.total.daysWorked.title: days of work
|
||||
§ page.person.total.daysWorked.description: Only days with commits are counted
|
||||
§ page.person.total.tasks.title: tasks
|
||||
§ page.person.total.tasks.description: If commits are properly signed
|
||||
§ page.person.character.title: Character
|
||||
§ page.person.achievement.title: Achievements
|
||||
§ page.person.achievement.positive: Positive
|
||||
§ page.person.achievement.normal: Neutral
|
||||
§ page.person.achievement.negative: Negative
|
||||
§ page.person.achievement.description: The more negative achievements an employee accumulates, the higher the likelihood that the situation is unusual. It may be necessary to change their work mode, tasks, or reporting. A discussion with them to understand what problems are hindering their work is advisable.
|
||||
§ page.person.gets.title: Gets taken:
|
||||
§ page.person.gets.description: "Taking a get" in this context means being the first to leave a commit on a task with a "nice" number.
|
||||
§ page.person.business.days.title: days of work
|
||||
§ page.person.business.days.description: Only days with commits are counted
|
||||
§ page.person.business.tasks.title: tasks
|
||||
§ page.person.business.tasks.description: If commits are properly signed
|
||||
§ page.person.business.losses.title: days without commits
|
||||
§ page.person.business.losses.description: All days minus: holidays, weekends, vacation, days with commits
|
||||
§ page.person.business.commits.title: commits
|
||||
§ page.person.business.commits.description: Deleted branches are not counted
|
||||
§ page.person.business.time.description: Time from the first to the last commit (including non-working days)
|
||||
§ page.person.business.time.title: Days on the project:
|
||||
§ page.person.business.time.dismissed: (dismissed)
|
||||
§ page.person.business.time.staff: (not in the team)
|
||||
§ page.person.business.achievements: Achievements
|
||||
§ page.person.changes.title: Achievements
|
||||
§ page.person.changes.description:
|
||||
При некоторых видах форматирования git отмечает строки как «удалённые» и «добавленные»,
|
||||
хотя на самом деле они были «изменены». Поэтому, если вы провели большой рефакторинг,
|
||||
git может показать малое количество изменений в статистике, а фактический результат
|
||||
будет отмечен, как скачок «удаленных» и «добавленных» строк.
|
||||
§ page.person.changes.description: Список коммитов и количество изменений в них за этот день:
|
||||
§ page.person.commits.title: Список коммитов:
|
||||
§ page.person.money.title.total: За всё время
|
||||
§ page.person.money.title.middle: Средняя стоимость
|
||||
§ page.person.money.moneyAll.title: получил
|
||||
§ page.person.money.moneyAll.description: Предполагаемая сумма зп с проекта (см. настройки)
|
||||
§ page.person.money.moneyWorked.title: отработал
|
||||
§ page.person.money.moneyWorked.description: Фактически отработанные дни умноженные на среднюю зп
|
||||
§ page.person.money.moneyLosses.title: возможная переплата
|
||||
§ page.person.money.moneyLosses.description: Дни без коммитов умноженные на среднюю зп
|
||||
§ page.person.money.tasks.title: задача
|
||||
§ page.person.money.tasks.description: Количество закрытых задач к стоимости дня
|
||||
§ page.person.money.commits.title: коммит
|
||||
§ page.person.money.commits.description: Количество коммитов к стоимости рабочего дня
|
||||
§ page.person.speed.task: Одна задача в среднем это
|
||||
§ page.person.speed.max: Максимальная скорость в день
|
||||
§ page.person.speed.days.title: дней
|
||||
§ page.person.speed.days.description: Имеются ввиду рабочие дни, если коммиты правильно подписаны
|
||||
§ page.person.speed.commits.title: коммитов
|
||||
§ page.person.speed.commits.description: Отрезаны 10% максимальных и минимальных значений
|
||||
§ page.person.speed.line.title: строк кода
|
||||
§ page.person.speed.line.description: Отрезаны 10% максимальных и минимальных значений
|
||||
§ page.person.speed.tasks.title: задач
|
||||
§ page.person.speed.tasks.description: Задача может быть не доделана, но работа по ней должна быть
|
||||
§ page.person.speed.maxCommits.title: коммитов
|
||||
§ page.person.speed.maxCommits.description: Задача может быть не доделана, но работа по ней должна быть
|
||||
§ page.person.hours.title: Распределение коммитов в течении каждого дня недели
|
||||
§ page.person.week.date: Дата
|
||||
§ page.person.week.tasks: Количество задач
|
||||
§ page.person.week.workDays: Дни с коммитами
|
||||
§ page.person.week.taskInDay: Задач в день
|
||||
§ page.person.week.days: дней
|
||||
§ page.person.week.workDay: будни
|
||||
§ page.person.week.weekends: выходные
|
||||
With some types of formatting, git marks lines as "deleted" and "added",
|
||||
although in reality, they were "changed". Therefore, if you conducted a major refactoring,
|
||||
git might show a small number of changes in the statistics, but the actual result
|
||||
will be marked as a jump in "deleted" and "added" lines.
|
||||
§ page.person.changes.description: List of commits and the number of changes in them for that day:
|
||||
§ page.person.commits.title: List of commits:
|
||||
§ page.person.money.title.total: Total over time
|
||||
§ page.person.money.title.middle: Average cost
|
||||
§ page.person.money.moneyAll.title: received
|
||||
§ page.person.money.moneyAll.description: Assumed total salary from the project (see settings)
|
||||
§ page.person.money.moneyWorked.title: worked for
|
||||
§ page.person.money.moneyWorked.description: Actual days worked multiplied by average salary
|
||||
§ page.person.money.moneyLosses.title: possible overpayment
|
||||
§ page.person.money.moneyLosses.description: Days without commits multiplied by average salary
|
||||
§ page.person.money.tasks.title: task
|
||||
§ page.person.money.tasks.description: Number of closed tasks to the cost of the day
|
||||
§ page.person.money.commits.title: commit
|
||||
§ page.person.money.commits.description: Number of commits to the cost of the workday
|
||||
§ page.person.speed.task: One task on average is
|
||||
§ page.person.speed.max: Maximum speed per day
|
||||
§ page.person.speed.days.title: days
|
||||
§ page.person.speed.days.description: Refers to workdays, if commits are properly signed
|
||||
§ page.person.speed.commits.title: commits
|
||||
§ page.person.speed.commits.description: Top and bottom 10% of values are trimmed
|
||||
§ page.person.speed.line.title: lines of code
|
||||
§ page.person.speed.line.description: Top and bottom 10% of values are trimmed
|
||||
§ page.person.speed.tasks.title: tasks
|
||||
§ page.person.speed.tasks.description: A task may not be completed, but work should be done on it
|
||||
§ page.person.speed.maxCommits.title: commits
|
||||
§ page.person.speed.maxCommits.description: A task may not be completed, but work should be done on it
|
||||
§ page.person.hours.title: Distribution of commits during each day of the week
|
||||
§ page.person.week.date: Date
|
||||
§ page.person.week.tasks: Number of Tasks
|
||||
§ page.person.week.workDays: Days with Commits
|
||||
§ page.person.week.taskInDay: Tasks per Day
|
||||
§ page.person.week.days: days
|
||||
§ page.person.week.workDay: weekdays
|
||||
§ page.person.week.weekends: weekends
|
||||
`;
|
|
@ -1,506 +1,503 @@
|
|||
export default `
|
||||
§ recommendations.title
|
||||
Рекомендации и факты
|
||||
Recommendations and Facts
|
||||
|
||||
§ recommendations.timestamp.firstCommit.description
|
||||
сделал первый коммит
|
||||
made the first commit
|
||||
|
||||
День недели: $1
|
||||
Day of the Week: $1
|
||||
|
||||
§ recommendations.timestamp.lastCommit.description
|
||||
сделал последний коммит
|
||||
made the last commit
|
||||
|
||||
День недели: $1
|
||||
Day of the Week: $1
|
||||
|
||||
§ recommendations.timestamp.common.title: $1 дней
|
||||
§ recommendations.timestamp.allDays.description: от первого до последнего коммита (включая выходные и праздники).
|
||||
§ recommendations.timestamp.lossesDays.description: без коммитов, даже с учётом выходных, отпуска и государственных праздников.
|
||||
§ recommendations.timestamp.common.title: $1 days
|
||||
§ recommendations.timestamp.allDays.description: from the first to the last commit (including weekends and holidays).
|
||||
§ recommendations.timestamp.lossesDays.description: days without commits, even considering weekends, vacation, and public holidays.
|
||||
§ recommendations.timestamp.weekendDays.description
|
||||
работы на выходных
|
||||
working on weekends
|
||||
|
||||
# Почему это плохо:
|
||||
- заказчик платит двойную цену за работу в выходной день;
|
||||
- сотрудники быстрее выгорают;
|
||||
# Why this is bad:
|
||||
- the client pays double the price for work on a weekend day;
|
||||
- employees burn out faster;
|
||||
|
||||
§ recommendations.timestamp.regularWeekendWord.title: Регулярные переработки
|
||||
§ recommendations.timestamp.sometimeWeekendWord.title: Бывают переработки
|
||||
§ recommendations.timestamp.regularWeekendWord.title: Regular Overtime
|
||||
§ recommendations.timestamp.sometimeWeekendWord.title: Occasional Overtime
|
||||
§ recommendations.timestamp.weekendWord.description
|
||||
Вероятно, стоит сменить менеджера проекта, аналитика и архитектора.
|
||||
It might be advisable to change the project manager, analyst, and architect.
|
||||
|
||||
# Почему это плохо:
|
||||
- заказчик платит двойную цену за работу в выходной день;
|
||||
- качество продукта, как правило, получается низкое;
|
||||
- часть сотрудников увольняется;
|
||||
- из-за спешки появляются новые ошибки;
|
||||
# Why this is bad:
|
||||
- the client pays double the price for work on a weekend day;
|
||||
- the quality of the product is usually low;
|
||||
- some employees resign;
|
||||
- new errors emerge due to the rush;
|
||||
|
||||
# Скорее всего:
|
||||
- неверно оценили сроки в самом начале;
|
||||
- тех. задание отсутствует;
|
||||
- слабая аналитика;
|
||||
- слабая архитектура (архитектора не нанимали, а команда состоит из мидл разработчиков);
|
||||
- сначала начали писать код, потом проектировать;
|
||||
- нет нормальных процессов, чтобы понять ошибки;
|
||||
# Most likely:
|
||||
- deadlines were incorrectly estimated at the beginning;
|
||||
- technical specifications are missing;
|
||||
- weak analytics;
|
||||
- weak architecture (no architect was hired, and the team consists of mid-level developers);
|
||||
- started writing code first, then planning;
|
||||
- lack of proper processes to understand mistakes;
|
||||
|
||||
§ recommendations.timestamp.neverWeekendWord.title: Обычно без переработок
|
||||
§ recommendations.timestamp.neverWeekendWord.title: Usually Without Overtime
|
||||
§ recommendations.timestamp.neverWeekendWord.description
|
||||
Но иногда бывают.
|
||||
But sometimes it happens.
|
||||
|
||||
# Почему это плохо:
|
||||
- заказчик платит двойную цену за работу в выходной день;
|
||||
- сотрудники быстрее выгорают;
|
||||
# Why this is bad:
|
||||
- the client pays double the price for work on a weekend day;
|
||||
- employees burn out faster;
|
||||
|
||||
§ recommendations.scope.parallelism.not.title
|
||||
Нет параллельных работ
|
||||
No Parallel Work
|
||||
|
||||
§ recommendations.scope.parallelism.not.description
|
||||
любую фичу в один момент времени делает один человек.
|
||||
any feature at any given time is done by one person.
|
||||
|
||||
# Метод расчёта:
|
||||
- человеко-дни делятся на фактические дни для каждой фичи;
|
||||
- находим среднее арифметическое;
|
||||
- если результат меньше 1.3 считаем, что параллельных работ в рамках большинства фичей обычно нет;
|
||||
# Calculation method:
|
||||
- person-days are divided by the actual days for each feature;
|
||||
- we find the arithmetic mean;
|
||||
- if the result is less than 1.3, we consider that there is usually no parallel work within most features;
|
||||
|
||||
# Почему это плохо:
|
||||
- повышается bus factor;
|
||||
- сотрудники медленнее развиваются;
|
||||
- трудно качественно проверить работу сотрудника;
|
||||
# Why this is bad:
|
||||
- increases bus factor;
|
||||
- employees develop more slowly;
|
||||
- difficult to properly check an employee's work;
|
||||
|
||||
# Почему это хорошо:
|
||||
- появляются эксперты, которые очень глубоко погружены в предметную область и могут предложить более качественные решения;
|
||||
- скорее всего не бывает merge конфликтов;
|
||||
- проект может очень быстро параллельно развиваться в разные стороны;
|
||||
# Why this is good:
|
||||
- experts emerge who are deeply immersed in the subject area and can offer more quality solutions;
|
||||
- most likely there are no merge conflicts;
|
||||
- the project can quickly develop in different directions simultaneously;
|
||||
|
||||
§ recommendations.scope.parallelism.has.title
|
||||
Часть работ параллельно
|
||||
Some Work Done in Parallel
|
||||
|
||||
§ recommendations.scope.parallelism.has.description
|
||||
Иногда фичу делают одновременно несколько человек.
|
||||
|
||||
# Метод расчёта:
|
||||
- человеко-дни делятся на фактические дни для каждой фичи;
|
||||
- находим среднее арифметическое;
|
||||
- если результат от 1.3 до 2.0 считаем, что часть работ в рамках разных фичей иногда делается параллельно;
|
||||
Sometimes a feature is worked on simultaneously by several people.
|
||||
|
||||
# Calculation method:
|
||||
- person-days are divided by the actual days for each feature;
|
||||
- we find the arithmetic mean;
|
||||
- if the result is from 1.3 to 2.0, we consider that some of the work within different features is sometimes done in parallel;
|
||||
|
||||
§ recommendations.scope.parallelism.every.title
|
||||
Параллельные работы
|
||||
Parallel Work
|
||||
|
||||
§ recommendations.scope.parallelism.every.description
|
||||
любую фичу в один момент времени делают несколько человек
|
||||
|
||||
# Метод расчёта:
|
||||
- человеко-дни делятся на фактические дни для каждой фичи;
|
||||
- находим среднее арифметическое;
|
||||
- если результат больше двух считаем, что большая часть работ в рамках разных фичей обычно делается параллельно;
|
||||
any feature at any given time is worked on by several people
|
||||
|
||||
# Calculation method:
|
||||
- person-days are divided by the actual days for each feature;
|
||||
- we find the arithmetic mean;
|
||||
- if the result is more than two, we consider that most of the work within different features is usually done in parallel;
|
||||
|
||||
§ recommendations.scope.money
|
||||
в такую сумму можно оценить работу по данному проекту.
|
||||
this is the estimated cost for the work on this project.
|
||||
|
||||
# Метод расчёта:
|
||||
- человеко-дни затраченные на разработку умножаются на индивидуальную зарплату разработчиков;
|
||||
# Calculation method:
|
||||
- person-days spent on development are multiplied by the individual salaries of the developers;
|
||||
|
||||
Изменить зарплату каждого разработчика, для более точной суммы, можно в разделе «Настройки»
|
||||
To change the salary of each developer for a more accurate total, go to the "Settings" section.
|
||||
|
||||
# Это много или мало?
|
||||
Для ответа на этот вопрос, нужно ответить на следующие:
|
||||
- Можно ли за эти деньги было купить готовое решение?
|
||||
- Можно ли за эти деньги сделать более хороший продукт?
|
||||
# Is this too much or too little?
|
||||
To answer this question, consider the following:
|
||||
- Could a ready-made solution have been purchased for this amount of money?
|
||||
- Could a better product have been developed for this amount of money?
|
||||
|
||||
Если ответ на оба вопроса «да», то возможно, разработка с нуля не стоила потраченных на неё денег.
|
||||
If the answer to both questions is "yes," then perhaps developing from scratch was not worth the money spent.
|
||||
|
||||
§ recommendations.scope.bus.everyHasOne.title
|
||||
Bus factor = 1
|
||||
|
||||
§ recommendations.scope.bus.everyHasOne.description
|
||||
В большинство фич погружен один человек.
|
||||
Надо переключать людей.
|
||||
Most features are deeply understood by only one person.
|
||||
It's necessary to rotate people.
|
||||
|
||||
# Почему это плохо:
|
||||
- если сотрудники будут увольняться, будет трудно продолжить их работу;
|
||||
- невозможно контролировать качество его кода;
|
||||
# Why this is bad:
|
||||
- if employees resign, it will be difficult to continue their work;
|
||||
- it’s impossible to control the quality of their code;
|
||||
|
||||
# Как делается выборка:
|
||||
- более 80% коммитов в фичу делает один человек;
|
||||
- проект имеет более 60% таких фичей;
|
||||
# How the sample is chosen:
|
||||
- more than 80% of commits in a feature are made by one person;
|
||||
- the project has more than 60% of such features;
|
||||
|
||||
§ recommendations.scope.bus.oneMaintainer
|
||||
в фичи погружен один человек.
|
||||
one person is deeply involved in a feature.
|
||||
|
||||
# Почему это плохо:
|
||||
- если он уволится, будет трудно продолжить разработку;
|
||||
- снижается качество code-review;
|
||||
- трудно запараллелить разработку при необходимости;
|
||||
# Why this is bad:
|
||||
- if they resign, it will be hard to continue development;
|
||||
- the quality of code-review decreases;
|
||||
- it’s difficult to parallelize development when needed;
|
||||
|
||||
# Как делается выборка:
|
||||
- более 80% коммитов в фичу сделал один человек;
|
||||
# How the sample is chosen:
|
||||
- more than 80% of commits in a feature are made by one person;
|
||||
|
||||
§ recommendations.scope.types.process.title
|
||||
Плохие процессы
|
||||
Poor Processes
|
||||
|
||||
§ recommendations.scope.types.process.description
|
||||
Большинство фич содержат один тип задач.
|
||||
Most features contain one type of task.
|
||||
|
||||
§ recommendations.scope.types.one
|
||||
фичи содержат один тип задач.
|
||||
features contain one type of task.
|
||||
|
||||
§ recommendations.scope.types.common
|
||||
Возможно, разработчики неправильно подписывают коммиты или менеджер заводит один и тот же тип задач.
|
||||
It's possible that developers are incorrectly signing commits or the manager is entering the same type of tasks.
|
||||
|
||||
# Почему это важно:
|
||||
- невозможно передать поддержку другой команде;
|
||||
- невозможно выпустить "коробочную" версию;
|
||||
- сильная зависимость от конкретных разработчиков;
|
||||
- большое количество ошибок и низкое качество кода;
|
||||
- вероятное замедление разработки в будущем;
|
||||
# Why this is important:
|
||||
- it's impossible to hand over support to another team;
|
||||
- it's impossible to release a "boxed" version;
|
||||
- strong dependence on specific developers;
|
||||
- a high number of errors and low code quality;
|
||||
- potential slowdown in development in the future;
|
||||
|
||||
# В чём ошибка менеджера:
|
||||
- взгляд на продукт, только с позиции «работающей демки»;
|
||||
# The manager's mistake:
|
||||
- viewing the product only from the perspective of a "working demo";
|
||||
|
||||
# Что должно быть:
|
||||
- тесты;
|
||||
- ошибки (выявленные по результатам тестов);
|
||||
- рефакторинг (т.к. архитектура может измениться);
|
||||
- документация;
|
||||
- правки стиля (как результат опроса фокус-группы);
|
||||
# What should be done:
|
||||
- tests;
|
||||
- bugs (identified through testing);
|
||||
- refactoring (as architecture may change);
|
||||
- documentation;
|
||||
- style revisions (as a result of focus group feedback);
|
||||
|
||||
§ recommendations.scope.plan.title
|
||||
Постройте долгосрочный план
|
||||
Develop a Long-Term Plan
|
||||
|
||||
§ recommendations.scope.plan.description
|
||||
с учетом архитектуры.
|
||||
taking architecture into account.
|
||||
|
||||
При том опираться этот план должен сразу на самые трудные задачи.
|
||||
This plan should immediately focus on the most challenging tasks.
|
||||
|
||||
# Почему отсутствие плана плохо:
|
||||
- сотрудники делают минимально работающую версию, не закладывая точки расширения. После этого пишется не масштабируемый код, который тормозит следующие фичи;
|
||||
# Why the lack of a plan is bad:
|
||||
- employees create a minimally viable version without planning for expansion points. After this, unscalable code is written, which slows down future features;
|
||||
|
||||
# В чём ошибка менеджера:
|
||||
- он не показал, как продукт будет развиваться далее и в каких точках будет рост;
|
||||
# The manager's mistake:
|
||||
- they haven't shown how the product will develop further and where the growth points will be;
|
||||
|
||||
# Как должно быть:
|
||||
- составляется глобальный план развития продукта;
|
||||
- составляется глобальный план развития архитектуры (с разработчиками и DBA);
|
||||
- на уровне схем сразу проговариваются моменты, которые могут сильно измениться;
|
||||
# How it should be done:
|
||||
- a global product development plan is created;
|
||||
- a global architecture development plan is created (with developers and DBAs);
|
||||
- potential significant changes are discussed upfront at the schematic level;
|
||||
|
||||
§ recommendations.scope.cost.title
|
||||
Оцените инвестиции в фичу
|
||||
Evaluate Investment in a Feature
|
||||
|
||||
§ recommendations.scope.cost.description
|
||||
с количеством потенциальной прибыли.
|
||||
in terms of potential profit.
|
||||
|
||||
Фичи которые дорого стоят в разработке, но приносят мало прибыли, возможно, стоит отложить или вообще отменить. Это сделает проект более коммерчески успешным.
|
||||
Features that are expensive to develop but bring little profit may need to be postponed or even canceled. This will make the project more commercially successful.
|
||||
|
||||
§ recommendations.author.lotOfLazy
|
||||
пишет слишком мало кода.
|
||||
writes too little code.
|
||||
|
||||
# Может уволить?
|
||||
- он тимлид, архитектор, аналитик?
|
||||
- это его основной проект?
|
||||
- есть какие-то зависимости от него?
|
||||
# Should they be fired?
|
||||
- are they a team leader, architect, or analyst?
|
||||
- is this their primary project?
|
||||
- are there any dependencies on them?
|
||||
|
||||
# Почему нет смысла исправлять
|
||||
Суммарные затраты на разработчика уже больше чем прибыль от его работы.
|
||||
Если мы считаем, что объективных помех его работе не было, то человек либо не хочет работать вообще, либо работает на двух проектах одновременно.
|
||||
Увольнение и замена новым сотрудником выглядит оправданным с точки зрения общей статистики.
|
||||
# Why it makes no sense to correct
|
||||
The total costs for the developer are already more than the profit from their work.
|
||||
If we believe that there were no objective hindrances to their work, then the person either does not want to work at all or is working on two projects simultaneously.
|
||||
Firing and replacing them with a new employee seems justified from a statistical point of view.
|
||||
|
||||
§ recommendations.author.manyLazy
|
||||
пишет мало кода. Нужно взять на контроль.
|
||||
writes little code. Needs to be monitored.
|
||||
|
||||
# Как делается выборка:
|
||||
- на тестовых выборках хороший программист пишет код больше 80% времени;
|
||||
- в данном случае показатель от 60% до 80%;
|
||||
# How the sample is chosen:
|
||||
- in test samples, a good programmer writes code for more than 80% of the time;
|
||||
- in this case, the indicator is between 60% and 80%;
|
||||
|
||||
# Как контролировать:
|
||||
- дробить задачи на 1..2 дня;
|
||||
- каждый день спрашивать статус;
|
||||
- убедиться, что задачи хорошо расписаны и готовы к началу разработки;
|
||||
- устроить парное программирование, чтобы проверить фактическую скорость;
|
||||
# How to monitor:
|
||||
- break tasks into 1..2 days;
|
||||
- ask for a status update every day;
|
||||
- ensure tasks are well defined and ready for development;
|
||||
- arrange pair programming to check actual speed;
|
||||
|
||||
§ recommendations.author.oneTypeMans
|
||||
получает слишком однообразные задачи по типу. Может выгореть.
|
||||
receives too many monotonous tasks of the same type. Risk of burnout.
|
||||
|
||||
# Почему это важно:
|
||||
- если сотрудник выгорит, его скорость работы снизится;
|
||||
- замедляется профессиональный рост;
|
||||
- повышается вероятность увольнения;
|
||||
# Why this is important:
|
||||
- if an employee burns out, their work speed will decrease;
|
||||
- professional growth slows down;
|
||||
- the likelihood of resignation increases;
|
||||
|
||||
# Как делается выборка:
|
||||
- для каждого коммита определятся тип задачи;
|
||||
- если больше 70% задач одного типа, значит человек делает одно и тоже;
|
||||
# How the sample is chosen:
|
||||
- the type of task is determined for each commit;
|
||||
- if more than 70% of tasks are of the same type, it means the person is doing the same thing repeatedly;
|
||||
|
||||
§ recommendations.author.workToday.title: Работает $1
|
||||
§ recommendations.author.workToday.title: Working $1
|
||||
§ recommendations.author.workToday.description
|
||||
над проектом в данный момент.
|
||||
on the project at this moment.
|
||||
|
||||
# Состав:
|
||||
# Composition:
|
||||
- $1;
|
||||
|
||||
# Почему именно они:
|
||||
- рабочих дней более 50%;
|
||||
- работали в течении последних 30 дней;
|
||||
# Why specifically them:
|
||||
- more than 50% of workdays;
|
||||
- have worked during the last 30 days;
|
||||
|
||||
§ recommendations.author.dismissed.title: Уволилось $1
|
||||
§ recommendations.author.dismissed.title: Dismissed $1
|
||||
§ recommendations.author.dismissed.description
|
||||
или работало короткий промежуток времени.
|
||||
or worked for a short period.
|
||||
|
||||
# Состав:
|
||||
# Composition:
|
||||
- $1;
|
||||
|
||||
# Почему именно они:
|
||||
- работали в нормальном ритме (видимо, это их основной репозиторий);
|
||||
- за последний месяц не было ни одного коммита;
|
||||
- отпуск обычно 14 дней (их отсутствие не похоже на отпуск);
|
||||
# Why specifically them:
|
||||
- worked at a normal pace (apparently, this is their main repository);
|
||||
- no commits in the last month;
|
||||
- vacation usually lasts 14 days (their absence does not resemble a vacation);
|
||||
|
||||
§ recommendations.author.staff.title: Помогают $1
|
||||
§ recommendations.author.staff.title: Assisting $1
|
||||
§ recommendations.author.staff.description
|
||||
Люди другой специализации, которые что-либо коммитили.
|
||||
People of other specializations who have committed something.
|
||||
|
||||
# Состав:
|
||||
# Composition:
|
||||
- $1;
|
||||
|
||||
# Почему именно они:
|
||||
- это не open-source проект;
|
||||
- рабочих дней менее 15% от общего числа;
|
||||
- изменяют примерно одни и те же файлы;
|
||||
# Why specifically them:
|
||||
- this is not an open-source project;
|
||||
- workdays less than 15% of the total number;
|
||||
- modify roughly the same files;
|
||||
|
||||
§ recommendations.author.projectType.openSource.title
|
||||
Открытый проект
|
||||
Open Project
|
||||
|
||||
§ recommendations.author.projectType.openSource.description
|
||||
пять дней в неделю тут не работают.
|
||||
they do not work five days a week here.
|
||||
|
||||
Проект может быть и закрытым, просто такой темп работы обычно у открытых библиотек на GitHub.
|
||||
The project may be closed, but this work pace is typical for open libraries on GitHub.
|
||||
|
||||
# Метод оценки:
|
||||
- берется статистика по всем активным разработчикам;
|
||||
- подсчитывается среднее число дней работы и без коммитов;
|
||||
- у open-source библиотек рабочих дней обычно максимум 15..20%;
|
||||
# Assessment method:
|
||||
- statistics are taken for all active developers;
|
||||
- the average number of working days and days without commits is calculated;
|
||||
- for open-source libraries, working days are usually a maximum of 15..20%;
|
||||
|
||||
# Последствия
|
||||
Для проектов, где работа не постоянна, нет смысла во многих показателях. Поэтому показатели без коммитов, скорости и т.п. будут скрыты.
|
||||
|
||||
Как правило, оценку таких проектов делают перед началом разработки своей закрытой версии. Самые интересные показатели в этом случае вероятная стоимость и суммарное время на разработку.
|
||||
# Consequences
|
||||
For projects where work is not constant, many indicators do not make sense. Therefore, indicators like days without commits, speed, etc., will be hidden.
|
||||
|
||||
Typically, such projects are assessed before starting the development of their own closed version. The most interesting indicators in this case are the probable cost and total development time.
|
||||
|
||||
§ recommendations.author.projectType.easy.title
|
||||
Слабая загрузка
|
||||
Light Workload
|
||||
|
||||
§ recommendations.author.projectType.easy.description
|
||||
слишком много дней без коммитов. Нужно понять почему команда не пишет код.
|
||||
too many days without commits. It is necessary to understand why the team is not writing code.
|
||||
|
||||
# Метод оценки:
|
||||
- берется статистика по всем активным разработчикам;
|
||||
- подсчитывается среднее число дней работы и без коммитов;
|
||||
- загрузка считается слабой, если процент без коммитов от 5% до 20%;
|
||||
# Assessment method:
|
||||
- take statistics from all active developers;
|
||||
- calculate the average number of working days and days without commits;
|
||||
- workload is considered light if the percentage of days without commits is between 5% and 20%;
|
||||
|
||||
# Возможные причины:
|
||||
- фактически нет задач;
|
||||
- задачи есть, но хорошо ложатся на текущую архитектуру;
|
||||
- разработчиков отвлекают совещаниями;
|
||||
- команда не работает;
|
||||
# Possible reasons:
|
||||
- there are actually no tasks;
|
||||
- there are tasks, but they fit well with the current architecture;
|
||||
- developers are distracted by meetings;
|
||||
- the team is not working;
|
||||
|
||||
# Варианты решения:
|
||||
- обсудить проблему с командой;
|
||||
- уменьшить гранулярность задач, чтобы за день можно было успеть сделать одну или две задачи;
|
||||
- ввести ежедневные совещания, чтобы проверять движение задач по статусу;
|
||||
- устроить сеансы парного программирования, чтобы убедиться, что разработчик может работать быстрее;
|
||||
# Solutions:
|
||||
- discuss the issue with the team;
|
||||
- reduce task granularity so that one or two tasks can be completed in a day;
|
||||
- introduce daily meetings to check the status of tasks;
|
||||
- arrange pair programming sessions to ensure that the developer can work faster;
|
||||
|
||||
§ recommendations.author.manager.title
|
||||
Обозначьте дедлайны
|
||||
Set Deadlines
|
||||
|
||||
§ recommendations.author.manager.description
|
||||
У любой задачи должен быть чёткий дедлайн.
|
||||
Every task should have a clear deadline.
|
||||
|
||||
Это позволит не затягивать её выполнение на несколько дней или недель.
|
||||
This will prevent dragging out its completion for several days or weeks.
|
||||
|
||||
# Какие показатели стоит проверить:
|
||||
- количество дней на одну задачу, которое тратит работник;
|
||||
- количество дней ожидания влития PR (страница статистики по PR);
|
||||
# Indicators to check:
|
||||
- the number of days spent on one task by an employee;
|
||||
- the number of days waiting for PR merge (PR statistics page);
|
||||
|
||||
§ recommendations.author.shorTalk.title
|
||||
Проводите ежедневные совещания
|
||||
Conduct Daily Meetings
|
||||
|
||||
§ recommendations.author.shorTalk.description
|
||||
они помогают быть в курсе проекта.
|
||||
they help stay informed about the project.
|
||||
|
||||
Не растягивайте их отвлекаясь на посторонние темы.
|
||||
Do not stretch them by getting sidetracked on irrelevant topics.
|
||||
|
||||
# На какие вопросы должен ответить сотрудник:
|
||||
- что было сделано;
|
||||
- что будет сделано;
|
||||
- есть ли какие-либо проблемы;
|
||||
# Questions the employee should answer:
|
||||
- what was done;
|
||||
- what will be done;
|
||||
- are there any issues;
|
||||
|
||||
# Следует обрывать монолог, если:
|
||||
- начинают подробно описывать мелкие детали, которые не важны;
|
||||
- уводят диалог в сторону, от первоначального плана;
|
||||
# Interruptions should occur if:
|
||||
- they start describing minor details in-depth, which are not important;
|
||||
- they steer the conversation away from the original plan;
|
||||
|
||||
# Почему это важно:
|
||||
Часто сотрудник, который ничего не делает, старается уйти от ответа. Для этого он рассказывает кучу ненужных подробностей свой работы. Это позволяет усыпить внимание участников и растянуть время ответа. Создается ощущение что он чем-то занят, хотя по факту работы не было.
|
||||
# Why this is important:
|
||||
Often an employee who does nothing tries to avoid the answer by telling a bunch of unnecessary details of their work. This lulls the participants' attention and stretches the time for a response. It creates an impression that they are busy, even though there was no actual work done.
|
||||
|
||||
§ recommendations.author.ipr.title
|
||||
Составьте план обучения
|
||||
Develop a Training Plan
|
||||
|
||||
§ recommendations.author.ipr.description
|
||||
на каждого сотрудника.
|
||||
for each employee.
|
||||
|
||||
*Индивидуальный план обучения* — это список целей и задач, которые помогают человеку развиваться в определенной области.
|
||||
*Individual training plan* is a list of goals and tasks that help a person develop in a certain area.
|
||||
|
||||
# Как составить план:
|
||||
- составить матрицу компетенций;
|
||||
- определить по каким компетенциям меньше всего знаний и опыта;
|
||||
- узнать какие из этих компетенций интересны сотруднику;
|
||||
- придумать 3..5 целей в рамках каждой такой компетенции на полпостороние года или год;
|
||||
- каждый месяц пытаться сделать что-либо для достижения одной цели;
|
||||
- каждый месяц напоминать об общем плане достижения этих целей;
|
||||
# How to create a plan:
|
||||
- create a competency matrix;
|
||||
- identify which competencies have the least knowledge and experience;
|
||||
- find out which of these competencies are of interest to the employee;
|
||||
- come up with 3..5 goals within each such competency for the next six months or a year;
|
||||
- try to do something every month to achieve one goal;
|
||||
- remind every month about the overall plan to achieve these goals;
|
||||
|
||||
# Нужен ли план руководителю?
|
||||
Да, руководитель так же должен составить план на себя. Если нет вышестоящего руководителя, то он должен проверять сам себя.
|
||||
# Does a manager need a plan?
|
||||
Yes, the manager should also make a plan for themselves. If there is no higher-level manager, they should self-assess.
|
||||
|
||||
# Почему это важно:
|
||||
- сотрудники становятся более лояльны к компании;
|
||||
- за теже деньги вы получаете более квалифицированные кадры;
|
||||
# Why this is important:
|
||||
- employees become more loyal to the company;
|
||||
- you get more qualified personnel for the same money;
|
||||
|
||||
§ recommendations.author.oneToOne.title
|
||||
Проводите 1-1 каждый месяц
|
||||
Conduct One-on-One Meetings Every Month
|
||||
|
||||
§ recommendations.author.oneToOne.description
|
||||
это поможет выявить проблемы на ранней стадии.
|
||||
it helps to identify problems at an early stage.
|
||||
|
||||
*One-to-one* — это регулярные личные встречи руководителя с подчиненным. На таких встречах обычно обсуждают всё, что важно для сотрудника, что его волнует, и то, чем он может поделиться с руководителем только наедине.
|
||||
*One-to-one* is a regular personal meeting of a manager with a subordinate. Such meetings typically discuss everything important to the employee, what concerns them, and what they can share with the manager in private.
|
||||
|
||||
# Почему это важно:
|
||||
- легко выяснить, кто из сотрудников перегружен, а у кого есть свободное время;
|
||||
- можно предотвратить выгорание сотрудника;
|
||||
- можно получить быструю обратную связь о процессах, которые вы можете не замечать;
|
||||
- формируется доверительное отношение, сотрудники становятся более лояльны к компании;
|
||||
- повышается мотивация и вовлеченность сотрудников;
|
||||
# Why this is important:
|
||||
- easy to find out who is overburdened and who has free time;
|
||||
- possible to prevent employee burnout;
|
||||
- quick feedback can be obtained about processes that you might not notice;
|
||||
- trust is built, making employees more loyal to the company;
|
||||
- increases employee motivation and engagement;
|
||||
|
||||
§ recommendations.author.club.title
|
||||
Ходите в бар
|
||||
Go to a Bar
|
||||
|
||||
§ recommendations.author.club.description
|
||||
один раз в месяц или два.
|
||||
once a month or two.
|
||||
|
||||
Это поможет выстроить неформальную коммуникацию в коллективе и сплотить команду, даже если общение будет сжатым.
|
||||
This will help build informal communication within the team and bring the team together, even if the interaction is brief.
|
||||
|
||||
# Почему это важно:
|
||||
- можно получить быструю обратную связь о процессах, которые вы можете не замечать;
|
||||
- формируется доверительное отношение, сотрудники становятся более лояльны к компании;
|
||||
- повышается вовлеченность сотрудников;
|
||||
# Why this is important:
|
||||
- quick feedback can be obtained about processes that you might not notice;
|
||||
- trust is built, making employees more loyal to the company;
|
||||
- increases employee engagement;
|
||||
|
||||
§ recommendations.hour.onlyWork.title: Выходных тут нет
|
||||
§ recommendations.hour.onlyWork.description: Вероятно, стоит уволить менеджера проекта.
|
||||
§ recommendations.hour.weekends.title: Работа на выходных
|
||||
§ recommendations.hour.weekends.description: Вероятно, стоит проверить менеджера проекта.
|
||||
§ recommendations.hour.easy.title: Бывают проблемы
|
||||
§ recommendations.hour.easy.description: Вероятно, бывают завалы и приходится работать на выходных.
|
||||
§ recommendations.week.lazyDays.down.title: Стало меньше прогулов
|
||||
§ recommendations.week.lazyDays.down.description: за последние три недели этот показатель упал
|
||||
§ recommendations.week.lazyDays.up.title: Стало больше прогулов
|
||||
§ recommendations.week.lazyDays.up.description: нет задач или нужен более жесткий контроль
|
||||
§ recommendations.week.notWork.title: Стабильно не дорабатывает
|
||||
§ recommendations.week.notWork.description: т.к. каждую неделю пишет код не 100% времени
|
||||
§ recommendations.week.upWork.title: Стабильно перерабатывает
|
||||
§ recommendations.week.upWork.description: т.к. каждую неделю пишет код в выходные дни
|
||||
§ recommendations.week.task.up.title: Растёт производительность
|
||||
§ recommendations.week.task.up.description: или задачи стали слишком мелкие. Нужно проверить. Если гранулярность та же - закрепить результат.
|
||||
§ recommendations.week.task.lazyMaintainer.description: стабильный лидер по прогулам. Уволить?
|
||||
§ recommendations.week.task.down.title: Падает производительность
|
||||
§ recommendations.hour.onlyWork.title: No Weekends Here
|
||||
§ recommendations.hour.onlyWork.description: The project manager should probably be fired.
|
||||
§ recommendations.hour.weekends.title: Working on Weekends
|
||||
§ recommendations.hour.weekends.description: The project manager should probably be checked.
|
||||
§ recommendations.hour.easy.title: There Are Problems
|
||||
§ recommendations.hour.easy.description: There are likely crunch times and work is needed on weekends.
|
||||
§ recommendations.week.lazyDays.down.title: Fewer Absences
|
||||
§ recommendations.week.lazyDays.down.description: this indicator has dropped over the last three weeks
|
||||
§ recommendations.week.lazyDays.up.title: More Absences
|
||||
§ recommendations.week.lazyDays.up.description: no tasks or stricter control is needed
|
||||
§ recommendations.week.notWork.title: Consistently Underperforms
|
||||
§ recommendations.week.notWork.description: as every week the code is not 100% of the time
|
||||
§ recommendations.week.upWork.title: Consistently Overworks
|
||||
§ recommendations.week.upWork.description: as every week code is written on weekend days
|
||||
§ recommendations.week.task.up.title: Productivity is growing
|
||||
§ recommendations.week.task.up.description: or tasks have become too small. Need to check. If granularity is the same - reinforce the result.
|
||||
§ recommendations.week.task.lazyMaintainer.description: consistently leads in absences. Fire?
|
||||
§ recommendations.week.task.down.title: Productivity is Falling
|
||||
§ recommendations.week.task.down.description
|
||||
или задачи хуже разбивают. Нужно проверить. Если гранулярность та же - взять на контроль.
|
||||
or tasks are poorly split. Need to check. If granularity is the same - take control.
|
||||
|
||||
# Метод оценки:
|
||||
- количество задач в день, над которыми работают, на протяжении последних трех недель стабильно падает.
|
||||
# Assessment method:
|
||||
- the number of tasks per day that are being worked on has been steadily decreasing over the last three weeks.
|
||||
|
||||
# Возможные ошибки:
|
||||
- задачи могли быть сложнее, чем казались;
|
||||
- задачи могли иметь большой объём работы (нужно проверить количество изменений, падают они или нет за этот же период)
|
||||
# Possible errors:
|
||||
- tasks could have been more complex than they seemed;
|
||||
- tasks could have had a large volume of work (need to check if the number of changes is also decreasing during this period)
|
||||
|
||||
§ recommendations.type.everyHasOne.title: Не подписывают тип задачи
|
||||
§ recommendations.type.everyHasOne.description: большинство типов задач делает один человек.
|
||||
§ recommendations.type.oneMaintainer.title: Узкая специализация
|
||||
§ recommendations.type.everyHasOne.title: Not Signing Task Types
|
||||
§ recommendations.type.everyHasOne.description: Most task types are done by one person.
|
||||
§ recommendations.type.oneMaintainer.title: Narrow Specialization
|
||||
§ recommendations.type.oneMaintainer.description
|
||||
большинство задач одного типа делают одни и те же люди.
|
||||
most tasks of one type are done by the same people.
|
||||
|
||||
# Типы задач:
|
||||
# Task types:
|
||||
|
||||
§ recommendations.type.common
|
||||
# Возможно, это не так
|
||||
# It might not be the case
|
||||
|
||||
Нужно убедиться, что остальные сотрудники верно подписывают коммиты.
|
||||
Make sure that other employees correctly sign commits.
|
||||
|
||||
Шаги, которые помогут это сделать:
|
||||
- настроить пре-коммит проверку для commit message;
|
||||
- объяснить команде, что нужно указывать тип;
|
||||
- проверить в новых ветках, что сотрудники следуют правилу;
|
||||
Steps to ensure this:
|
||||
- set up a pre-commit check for commit messages;
|
||||
- explain to the team the need to indicate the type;
|
||||
- check in new branches that employees follow this rule;
|
||||
|
||||
# Если это действительно так
|
||||
# If it is indeed the case
|
||||
|
||||
Вы настроили проверки и убедились что один и тот же сотрудник, делает задачи одного и того же типа.
|
||||
You have set up checks and ensured that the same employee does tasks of the same type.
|
||||
|
||||
Почему это плохо:
|
||||
- его увольнение остановит целую пачку процессов;
|
||||
- уменьшается компетенция остальных членов команды;
|
||||
- трудно верхнеуровнево понять его правки;
|
||||
Why this is bad:
|
||||
- their resignation will halt a whole bunch of processes;
|
||||
- it reduces the competence of other team members;
|
||||
- difficult to understand their edits at a higher level;
|
||||
|
||||
Как это исправить:
|
||||
- распределять разные типы задач равномерно;
|
||||
- менять область работы (тесты, документация, ошибки) между сотрудниками через спринт;
|
||||
How to fix this:
|
||||
- distribute different types of tasks evenly;
|
||||
- change the area of work (tests, documentation, bugs) among employees every sprint;
|
||||
|
||||
§ recommendations.type.fewTypes.title
|
||||
Это локальный продукт
|
||||
This is a Local Product
|
||||
|
||||
§ recommendations.type.fewTypes.description
|
||||
для конкретного заказчика или проблемы.
|
||||
for a specific customer or problem.
|
||||
|
||||
# Какие признаки есть у «глобального» продукта:
|
||||
- локализация;
|
||||
- документация;
|
||||
- большой объём тестов;
|
||||
- визуальная кастомизация;
|
||||
- рефакторинг узких мест;
|
||||
- и т.п.
|
||||
# Signs of a "global" product:
|
||||
- localization;
|
||||
- documentation;
|
||||
- a large volume of tests;
|
||||
- visual customization;
|
||||
- refactoring of bottlenecks;
|
||||
- etc.
|
||||
|
||||
# Почему этот продукт выглядит как «локальный»:
|
||||
- у каждого «глобального» признака будет перевес по своему типу задач;
|
||||
- чем больше «глобальных» признаков, тем больше вероятность «глобального» продукта;
|
||||
# Why this product looks like a "local" one:
|
||||
- each "global" sign will be outweighed by its type of task;
|
||||
- the more "global" signs, the more likely a "global" product;
|
||||
|
||||
В данном случае мы видим небольшое число типов, а следовательно, скорее всего есть недоработки, мешающие легко масштабировать продукт на мировой рынок и продавать его в других странах.
|
||||
In this case, we see a small number of types, which likely indicates shortcomings that prevent the product from being easily scaled to the global market and sold in other countries.
|
||||
|
||||
# Возможно, это не так
|
||||
По типам файлов мы можем предположить тип программы (сайт, серверное приложение, DevOps скрипты и т.д.). Для frontend приложения наша гипотеза будет более верной, чем для DevOps-скриптов, которые могут быть лишь микро-модулем инициализации.
|
||||
# It might not be the case
|
||||
Based on file types, we can assume the type of program (website, server application, DevOps scripts, etc.). For a frontend application, our hypothesis will be more accurate than for DevOps scripts, which might just be a micro-module of initialization.
|
||||
|
||||
§ recommendations.type.diff.title
|
||||
Разбейте лидирующий тип на подтипы
|
||||
Break Down the Leading Type into Subtypes
|
||||
|
||||
§ recommendations.type.diff.description
|
||||
для детализации ошибок.
|
||||
to detail errors.
|
||||
|
||||
Как правило, тип задач с меткой «исправление ошибок» является лидирующим. Это делает статистику слабо-детализированной.
|
||||
Typically, the task type labeled "bug fixing" is leading. This makes the statistics weakly detailed.
|
||||
|
||||
*Если у вас произошла такая ситуация*, вы можете разбить этот тип на подтипы (например, по месту обнаружения).
|
||||
*If you encounter this situation*, you can break down this type into subtypes (e.g., based on the location of detection).
|
||||
|
||||
Рассмотрим несколько вариантов подтипов:
|
||||
- fix_dev (ошибка выявленная в процессе разработки);
|
||||
- fix_test (ошибка выявленная в процессе тестирования);
|
||||
- fix (ошибка выявленная в проде);
|
||||
Consider several options for subtypes:
|
||||
- fix_dev (error detected during development);
|
||||
- fix_test (error detected during testing);
|
||||
- fix (error detected in production);
|
||||
|
||||
§ recommendations.type.buddy.title
|
||||
Копите мелкие задачи
|
||||
Accumulate Minor Tasks
|
||||
|
||||
§ recommendations.type.buddy.description
|
||||
для новых сотрудников.
|
||||
for new employees.
|
||||
|
||||
# Если задача:
|
||||
- не важная;
|
||||
- не большая;
|
||||
- не требует сильного погружения в контекст;
|
||||
- больше про рефакторинг, чем про новый код;
|
||||
# If a task is:
|
||||
- not important;
|
||||
- not big;
|
||||
- doesn't require deep immersion in the context;
|
||||
- more about refactoring than new code;
|
||||
|
||||
# Положите её в backlog с меткой «для новичков».
|
||||
# Put it in the backlog with the label "for beginners".
|
||||
|
||||
Когда придёт новый сотрудник, вы сможете моментально достать ему пачку небольших и разнообразных по типу задач, для ознакомления с проектом.
|
||||
When a new employee arrives, you will be able to immediately pull out a bunch of small and varied tasks for them to get acquainted with the project.
|
||||
|
||||
Также, если у вас будет застой в работе, вы сможете доставать по одной такой мелкой задаче из backlog-а.
|
||||
Also, if you have a lull in work, you can pull out one such minor task from the backlog.
|
||||
`;
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
export default `
|
||||
§ page.settings.document.title: Настройки отображения
|
||||
§ page.settings.document.name: Заголовок страницы
|
||||
§ page.settings.document.language: Язык интерфейса
|
||||
§ page.settings.links.title: Префиксы ссылок
|
||||
§ page.settings.links.task: Для номеров задач
|
||||
§ page.settings.links.pr: Для PR
|
||||
§ page.settings.user.title: Индивидуальные настройки
|
||||
§ page.settings.user.notFound: Индивидуальных настроек нет. Данные по всем сотрудникам вычисляются по общим параметрам.
|
||||
§ page.settings.user.subTitle: Дополнение к трудовому договору №$1
|
||||
§ page.settings.user.from: Дата начала действия
|
||||
§ page.settings.mailmap: Настройки .mailmap
|
||||
§ page.settings.common.title: Общие данные по зарплате
|
||||
§ page.settings.common.type.title: Тип работы над проектом
|
||||
§ page.settings.common.type.full: Полная занятость
|
||||
§ page.settings.common.type.part: Проектная работа
|
||||
§ page.settings.common.salary: Зарплата в месяц
|
||||
§ page.settings.document.title: Display Settings
|
||||
§ page.settings.document.name: Page Title
|
||||
§ page.settings.document.language: Interface Language
|
||||
§ page.settings.links.title: Link Prefixes
|
||||
§ page.settings.links.task: For Task Numbers
|
||||
§ page.settings.links.pr: For PR
|
||||
§ page.settings.user.title: Individual Settings
|
||||
§ page.settings.user.notFound: No individual settings. Data for all employees are calculated based on common parameters.
|
||||
§ page.settings.user.subTitle: Addendum to employment contract №$1
|
||||
§ page.settings.user.from: Start date
|
||||
§ page.settings.mailmap: .mailmap Settings
|
||||
§ page.settings.common.title: General Salary Data
|
||||
§ page.settings.common.type.title: Type of Work on the Project
|
||||
§ page.settings.common.type.full: Full-time
|
||||
§ page.settings.common.type.part: Project Work
|
||||
§ page.settings.common.salary: Monthly Salary
|
||||
§ page.settings.common.currency: Currency
|
||||
§ page.settings.common.workDaysInYear: Количество рабочих дней в году
|
||||
§ page.settings.common.vacationDaysInYear: Количество дней отпуска в год
|
||||
§ page.settings.common.workDaysInWeek: Рабочие дни
|
||||
§ page.settings.common.workDaysInYear: Number of Working Days in a Year
|
||||
§ page.settings.common.vacationDaysInYear: Number of Vacation Days in a Year
|
||||
§ page.settings.common.workDaysInWeek: Workdays
|
||||
§ page.settings.form.save: Save
|
||||
§ page.settings.form.cancel: Cancel
|
||||
§ page.settings.form.remove: Remove
|
||||
§ page.settings.form.addEmployee: Добавить сотрудника
|
||||
§ page.settings.form.addContract: Добавить трудовой договор
|
||||
§ page.settings.form.addEmployee: Add Employee
|
||||
§ page.settings.form.addContract: Add Employment Contract
|
||||
`;
|
Loading…
Reference in a new issue