Data-класс вашей ошибки: как относиться к ошибкам как программист
Ошибки можно рассматривать как задачи, которые возникли в ходе решения другой таски. Только, как правило, с экстремально короткими сроками выполнения и большим потоком информации. И входишь ты в этот поток не с самым высоким уровнем мотивации и возможным давлением.
Чтобы убрать эмоции из анализа ошибки и подойти к ней с «трезвой» головой, можно разложить ее как код. Вот, например, какой data-класс можно выделить у ошибки:
class Error {
// что нужно было сделать
var task
// что пошло не так
var errorDetails
//какие возможные последствия уже есть или последуют и кто может пострадать
var effect
//причины ошибки
var reasons
//плюшки от решения сложившейся ситуации
var benefits
//выводы
var experience
//список улучшений, которые можно сделать, чтобы минимизировать повторение ошибки
var actionItems
}
А теперь — реализация.
Пример: Вы неверно оценили сроки выполнения целого скоупа задач, входящих в MVP для приложения Сообщения — ошиблись на целых два релиза. Никто не пострадал, но ситуация по многим аспектам неприятная.
Как бы выглядела реализация интерфейса для данного случая:
class BadEstimationForMVPMessaging {
var task = эстимация MVP для приложения Сообщения. Необходимо оценить все задачи, распределить по спринтам и релизам, учесть загрузку команды и выдать предполагаемую дату релиза
var errorDetails = ошибка в эстимации на два релиза (два месяца разработки команды из трех человек)
var effects = listOf(
- релиз переносился два раза
- демотивация команды
- вопросы с продуктовой стороны
)
var reasons = listOf(
- часть задач были сильно недооценены
- не учтены зависимости, которые, конечно, вылезли только в конце
- не заложен запас по времени
)
var benefits = listOf(
- хороший пример, который можно разобрать
- прокачан навык работы с ожиданиями
- ощутили дух стартапа с командой, решая внезапные блокеры перед релизом, и радовались запуску приложения
)
var experience = listOf(
- детальнее искать зависимости на этапе подготовки к эстимации
- закладывать запас по времени в 2-3 релиза
- на задачи с неизвестными апишками и стеком увеличивать коэффициент Пи*
)
var actionItems = listOf(
- составить чек-лист для подготовки к запуску новых приложений, на который можно ориентироваться всем командам
- обсудить с командой процесс выявления зависимостей
)
}
Смотреть на ошибки так гораздо эффективнее. Вы выносите из них уроки, а не просто посыпаете голову пеплом. Попробуйте!
А больше лайфхаков по построению здоровой культуры ошибок в жизни и на работе читайте в подробной статье от Марии Киселевой, тимлида команды разработки мобильных приложений для KvadraOS в YADRO →