Как стать автором
Обновить
393.56
YADRO
Тут про железо и инженерную культуру

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  

Теги:
+3
Комментарии0

Публикации

Информация

Сайт
yadro.com
Дата регистрации
Дата основания
Численность
5 001–10 000 человек
Местоположение
Россия
Представитель
Ульяна Соловьева