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 →