tamgly's People
Forkers
bazaliitamgly's Issues
Добавить возможность указывать приоритеты задачи
Поддержать учёт периодических задач с беклогах
Продумать использование UTC и Local дат
Нужно понять в каких местах нужно использоваться только UTC, а в каких только Local. Сейчас будет использоваться везде UTC, но возможно, это будет не очень очевидным. Особенно в вопросе трекания интервалов рабоыт. Дедлайны задаются без времени и должны такое пережить.
Поддержка периодических задач
Интервальные беклоги
- #12
- #13
- #14
- #15
- Для дейли беклога считать
- Сумму эстимейтов на этот день
- Сумму эстимейтов на этот день + сумму эстимейтов на эту неделю делённую на кол-во дней, которые остались
- Сумму эстимейтов на этот день + ... + сумму эстимейтов на этот месяц делённую на кол-во дней, которые остались
- Для викли беклога
- Считать по каждому дню эстимейт
- Эстимейт задач на этой неделе
- Средняя сумма эстимейтов на неделе с учётом/без учёта задач на неделю
- Для дейли беклога считать
Оптимизация временных решений
В коде по мере написания прототипа будут появляться куски кода, которые нужно переписать более оптимально. Но для прототипа пойдёт.
Список:
- WorkItemManager.FindProject
Продумать более очевидное решение с отчётом дней
Уже было два вопроса в ревью про ZeroDay. Это не очень очевидное решение, к тому же у него есть проблемы с работой с датами в прошлом. Нужно продумать более очевидное и понятное решение.
Добавить возомжность указывать, что задачу нужно выполнить в этом месяце/след месяце/каком-то месяце. При получении дейли и викли беклога отдельно отображать задачи, которые нужно выполнить в этом месяце
При добавлении новой задачи, считать какие задачи буду выпадать за пределы их изначальных дедлайнов или ожидаемых даты выполнения
Калькулятор эстимейтов
Завести тесты на беклоги
На данный момент беклоги пишутся и в каждом PR может очень сильно меняться API. Когда оно устаканится, то можно будет тесты написать, логика довольно хорошо должна покрываться.
Подготовить демку PoC
Для демонстрации работы написанных на данном этапе фичей, нужно подготовить демку. В качестве демо достаточно сделать консольный проект, в котором будут вызываться основные сценарии и отображать результаты действий.
Сценарии:
- Создание задачи с указанием различных доступных параметров. Особенно интересует приоритет, эстимейт и дедлайн.
- Создание повторяющийся задачи - каждую неделю по понедельникам на 4 недели. Продемонстрировать, что в системе все эти 4 задачи появились.
- Получить дейли беклог, продемонстрировать, что задачи правильно попали в дейли и викли. Показать статистику по дейли беклогу.
- Создание проекта, добавление туда задач, просмотр задач по проекту, назначение рабочих часов.
- Построение очереди выполнения задач.
- Добавление блокировки и сравнение порядка выполнения до и после
- Нахождение задач, которые в очереди дальше чем их дедлайн
- Проверка, когда будет выполнена задача, которую хочется докинуть в беклог, просмотр какие задачи при этом уедут
Подключить EntityFramework
Определиться с использованием 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 - генерируется в зависимости от настроек
Блокировки и приоритеты
Возможность задавать количество часов которое должно выделяться на задачу или проект.
Возможность указывать, что задача выполняется внешним исполнителе (для того, чтобы явно указать, что другая задача этим заблокирована
Добавить возможность указывать, что задачу нужно выполнить на этой неделе/след неделе/какой-то другой неделе. При получении дейли беклога отдельно отображать задачи, которые нужно выполнить на этой неделе
Интеграция с Microsoft To Do
Нужно поддержать интеграцию с туду и в первом приближении использовать его как источник задач.
Поддержать начало недели, которое не является понедельником
В некоторых местах будет завязка на начало недели. Например, в методе поиска начала недели. Допущение, что начало - это всегда понедельник, это упрощение. Когда появится время, можно будет поддержать взятие начала недели с культуры.
Реализовать подсчёт приоритетов в учётом блокировки.
Если задача блочит более приоритетную задачу, то для неё должен дополнительно вычитывать приоритет по более приоритетной задаче
Во всех списках задач добавить возможность генерировать список задач в порядке приоритета
Реализовать алгоритм, который бы мог посчитать через сколько дней будет выполнена задача с определённым эстимейтов и приоритетом.
Он должен выстроить все текущие задачи в список по приоритетам и с учётом рабочих часов посчитать сколько будет свободного времени, когда закончится выполненеие, если в это время заниматься этой задачей.
Обработка циклических блокировок
В рамках #46 добавлена логика построения графов блокировок. Там не учитывается никак циклические зависимости, программа, скорее всего, просто упадёт на этом. Нужно поддержать логику и определять можно ли добавить блокировку.
Добавить возможность формировать беклог на день, т.е. привязывать задачу к дате выполнения.
Добавить подсчёт суммарных эстимейтов по беклогу.
- Для дейли беклога считать
- Сумму эстимейтов на этот день
- Сумму эстимейтов на этот день + сумму эстимейтов на эту неделю делённую на кол-во дней, которые остались
- Сумму эстимейтов на этот день + ... + сумму эстимейтов на этот месяц делённую на кол-во дней, которые остались
- Для викли беклога
- Считать по каждому дню эстимейт
- Эстимейт задач на этой неделе
- Средняя сумма эстимейтов на неделе с учётом/без учёта задач на неделю
Определиться с неймингом для GetWorkItemWithWrongEstimates
Во время ревью появился довольно ожидаемый вопрос про нейминг метода. Проблема в том, что пока нет зафиксированного глоссария и не ясно как обозначать WI у которых не сошлись эстимейты. Нужно написать его и поправить код.
Реализовать CRUD-операции для взаимодействия с задачами
Реализовать алгоритм нахождения ситуаций, когда на день или неделю запланировано больше чем кол-во рабочий часов
Добавление проектов
Требуется реализовать контейнер для задач, проекты. Проект должен содержать:
- название
- список задач вложенных
Заодно имеет смысл реализовать дефолтный проект, чтобы все задачи были под каким-то проектом.
Спроектировать сущность "Задача"
Реализовать возможность выстроить все задачи в список по приоритетам и оценить ожидаемую дату выполнения с учётом Working hours
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.