Почему кофейне оказалось мало учёта часов
Сотрудник ввёл часы. Администратору ещё предстоит понять, совпадают ли они с графиком и кто вышел на замену.

Первую версию HoursKZ я сделал, чтобы сотрудники могли сообщать, сколько отработали. Когда появились первые записи, выяснилось, что администратору одних цифр мало.
Допустим, сотрудник отметил восемь часов. Что эта запись говорит администратору? Сколько стояло в графике? Кто вышел вместо отсутствующего сотрудника? Кто должен проверить расхождение? Пока я думал только о вводе времени, эти вопросы казались соседними задачами. Для администратора, который разбирает конкретную смену, это одна и та же работа.
Так в HoursKZ появились графики смен, согласование записей и возможность сверить отработанные часы с графиком. Стало важно знать, кто отсутствовал, кто вышел на замену и почему запись потом изменили. Я не придумал всё это заранее. Когда люди начали пользоваться программой, стало видно, сколько ещё нужно сделать после того, как часы уже внесены.
Разумное объяснение найдётся почти для любой новой функции. Но если сотрудники раз за разом переносят одни и те же сведения из одного места в другое, это один разговор. А если функция просто показалась удобной — совсем другой. С Codex эту разницу легко упустить: иногда я могу написать функцию быстрее, чем разобраться, нужна ли она здесь.
Когда программой пользуешься только сам, можно отложить исправление и вспомнить, как обойти неудобство. Когда на записи рассчитывает другой человек, этого мало. Теперь мне приходится думать не только о том, удастся ли ввести часы, но и о том, кто их увидит, сможет проверить и потом поймёт, почему запись выглядит именно так.
Я не назову день, когда небольшой инструмент превратился в продукт. Просто со временем мне пришлось учитывать не только того, кто вносит часы, но и того, кто потом сверяет их с графиком. Теперь сложнее всего не придумать ещё одну функцию, а разобраться, относится ли она к той же задаче.