Giter Club home page Giter Club logo

tamgly's People

Contributors

bazalii avatar fredikats avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

bazalii

tamgly's Issues

Продумать использование UTC и Local дат

Нужно понять в каких местах нужно использоваться только UTC, а в каких только Local. Сейчас будет использоваться везде UTC, но возможно, это будет не очень очевидным. Особенно в вопросе трекания интервалов рабоыт. Дедлайны задаются без времени и должны такое пережить.

Интервальные беклоги

  • #12
  • #13
  • #14
  • #15
    1. Для дейли беклога считать
      1. Сумму эстимейтов на этот день
      2. Сумму эстимейтов на этот день + сумму эстимейтов на эту неделю делённую на кол-во дней, которые остались
      3. Сумму эстимейтов на этот день + ... + сумму эстимейтов на этот месяц делённую на кол-во дней, которые остались
    2. Для викли беклога
      1. Считать по каждому дню эстимейт
      2. Эстимейт задач на этой неделе
      3. Средняя сумма эстимейтов на неделе с учётом/без учёта задач на неделю

Оптимизация временных решений

В коде по мере написания прототипа будут появляться куски кода, которые нужно переписать более оптимально. Но для прототипа пойдёт.

Список:

  • WorkItemManager.FindProject

Калькулятор эстимейтов

  • #53
  • #29
    1. Он должен выстроить все текущие задачи в список по приоритетам и с учётом рабочих часов посчитать сколько будет свободного времени, когда закончится выполненеие, если в это время заниматься этой задачей.
  • #30

Завести тесты на беклоги

На данный момент беклоги пишутся и в каждом PR может очень сильно меняться API. Когда оно устаканится, то можно будет тесты написать, логика довольно хорошо должна покрываться.

Подготовить демку PoC

Для демонстрации работы написанных на данном этапе фичей, нужно подготовить демку. В качестве демо достаточно сделать консольный проект, в котором будут вызываться основные сценарии и отображать результаты действий.

Сценарии:

  • Создание задачи с указанием различных доступных параметров. Особенно интересует приоритет, эстимейт и дедлайн.
  • Создание повторяющийся задачи - каждую неделю по понедельникам на 4 недели. Продемонстрировать, что в системе все эти 4 задачи появились.
  • Получить дейли беклог, продемонстрировать, что задачи правильно попали в дейли и викли. Показать статистику по дейли беклогу.
  • Создание проекта, добавление туда задач, просмотр задач по проекту, назначение рабочих часов.
  • Построение очереди выполнения задач.
  • Добавление блокировки и сравнение порядка выполнения до и после
  • Нахождение задач, которые в очереди дальше чем их дедлайн
  • Проверка, когда будет выполнена задача, которую хочется докинуть в беклог, просмотр какие задачи при этом уедут

Определиться с использованием target-type new expression

В какой-то версии C# добавили возможность писать так: #39 (comment)

Пока не очень понятно, когда стоит или не стоит использовать такой синтаксис. Имеет смысл обсудить и потом пробежаться по всему солюшену и найти места, где поправить нужно.

Добавление задач

Задача представляет собой сущность, описываемую следующими основными атрибутами:

  • заголовок,
  • название,
  • идентификатор,
  • статус,
  • затраченное на выполнение время (текущее и итоговое)
  • и различные детали по типу даты создания и истории изменений.

Подзадачи:

Поддержать возможность заводить задачи, которые появляются каждый день/каждую неделю.

Помимо обычных задач, которые создаются, выполняются и забываются, часто встречаются задачи, которые нужно выполнять с какой-то периодичностью. Список возможных поддерживаемых периодов:

  • Daily, каждые N дней
  • Daily, каждый рабочий день
  • Daily, каждые N недель с указанием дней недели
  • Daily, каждый месяц в указанное число
  • Weekly, каждые N недель (без привязки ко дню)
  • Monthly, каждые N месяцев (без привязки ко дню или неделе)

Для периодических задач должны задаваться интервал, когда они должны появляться. Для каждого повторения должна создаваться чилдовая задача. список свойств дочерней задачи:

  • Id, который генерируется новый
  • Title, description, createion time, estimates
  • State, который должен выставляться для чилдовой задачи незавивисимо
  • Трек интервал, которые должны для каждой отдельной чилдовой задачи считаться, но парентовая должна собираться сумму всех этих интервалов
  • Deadline - генерируется в зависимости от настроек

Блокировки и приоритеты

  • #20
    1. Добавить в задачу свойство “заблокирована”, если есть хоть одна не выполненная задача, которая блочит
  • #21
  • #22
  • #23
    1. Если задача блочит более приоритетную задачу, то для неё должен дополнительно вычитывать приоритет по более приоритетной задаче
  • #24

Интеграция с Microsoft To Do

Нужно поддержать интеграцию с туду и в первом приближении использовать его как источник задач.

Поддержать начало недели, которое не является понедельником

В некоторых местах будет завязка на начало недели. Например, в методе поиска начала недели. Допущение, что начало - это всегда понедельник, это упрощение. Когда появится время, можно будет поддержать взятие начала недели с культуры.

Реализовать алгоритм, который бы мог посчитать через сколько дней будет выполнена задача с определённым эстимейтов и приоритетом.

Он должен выстроить все текущие задачи в список по приоритетам и с учётом рабочих часов посчитать сколько будет свободного времени, когда закончится выполненеие, если в это время заниматься этой задачей.

Обработка циклических блокировок

В рамках #46 добавлена логика построения графов блокировок. Там не учитывается никак циклические зависимости, программа, скорее всего, просто упадёт на этом. Нужно поддержать логику и определять можно ли добавить блокировку.

Добавить подсчёт суммарных эстимейтов по беклогу.

  1. Для дейли беклога считать
    1. Сумму эстимейтов на этот день
    2. Сумму эстимейтов на этот день + сумму эстимейтов на эту неделю делённую на кол-во дней, которые остались
    3. Сумму эстимейтов на этот день + ... + сумму эстимейтов на этот месяц делённую на кол-во дней, которые остались
  2. Для викли беклога
    1. Считать по каждому дню эстимейт
    2. Эстимейт задач на этой неделе
    3. Средняя сумма эстимейтов на неделе с учётом/без учёта задач на неделю

Определиться с неймингом для GetWorkItemWithWrongEstimates

Во время ревью появился довольно ожидаемый вопрос про нейминг метода. Проблема в том, что пока нет зафиксированного глоссария и не ясно как обозначать WI у которых не сошлись эстимейты. Нужно написать его и поправить код.

Добавление проектов

Требуется реализовать контейнер для задач, проекты. Проект должен содержать:

  • название
  • список задач вложенных

Заодно имеет смысл реализовать дефолтный проект, чтобы все задачи были под каким-то проектом.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.