Я давно пришёл к выводу, что управление ожиданиями всех вовлеченных сторон - единственное, что влияет на оценку проекта как успешного/неуспешного.
Сравните 2 формулировки, типа 2 варианта того, как сказал клиент по итогам проекта (проект вымышленный):
Мы не смогли уложиться ни в бюджет, ни в сроки. Мы вынуждены были сдвинуть наши маркетинговые активности дважды, но в конце концов запустили продукт на 5 месяцев позже. Мы не считаем проект успешным, потому что мы не уложились в изначальные эстимейты
Команда дала эстимейт на старте проекта, но в течение первого месяца мы поняли, что сложность проекта не была правильно оценена, потому что скоуп постоянно рос. И хотя нам пришлось пересмотреть наши маркетинговые планы дважды, мы все таки смоги запустить продукт на 5 месяцев позже. Тем не менее, мы считаем проект успешным, поскольку изначально поставленная задача была решена, хотя мы и не уложились в первоначальные эстимейты
В обоих случаях проект мог быть выполнен за одно и то же время и в рамках одного и того же бюджета.
Я давно пришёл к выводу, что управление ожиданиями всех вовлеченных сторон - единственное, что влияет на оценку проекта как успешного/неуспешного.
Сравните 2 формулировки, типа 2 варианта того, как сказал клиент по итогам проекта (проект вымышленный):
Мы не смогли уложиться ни в бюджет, ни в сроки. Мы вынуждены были сдвинуть наши маркетинговые активности дважды, но в конце концов запустили продукт на 5 месяцев позже. Мы не считаем проект успешным, потому что мы не уложились в изначальные эстимейты
Команда дала эстимейт на старте проекта, но в течение первого месяца мы поняли, что сложность проекта не была правильно оценена, потому что скоуп постоянно рос. И хотя нам пришлось пересмотреть наши маркетинговые планы дважды, мы все таки смоги запустить продукт на 5 месяцев позже. Тем не менее, мы считаем проект успешным, поскольку изначально поставленная задача была решена, хотя мы и не уложились в первоначальные эстимейты
В обоих случаях проект мог быть выполнен за одно и то же время и в рамках одного и того же бюджета.
Да, буду рад предложению по переводу этих терминов. Лучше в личку.
Добавьте в инкремент филд связь между коммитом и чекпоинтом
maindb.IncrementField(ID, msgs.Count, lastCheckpoint);
И в случае падения обработаете заново сообщения в зависимости от значения lastCheckpoint.