Процедура конструктивного решения программистских проблем обязательна к применению, если программист столкнулся с проблемами, которые мешают ему успешно решить задачу.

Причины, мешающие успешно завершить задачу:

  • нехватка информации;
  • нет доступа к серверу для настройки, развертывания или тестирования;
  • не получается ожидаемый результат при работе с АПИ;
  • не получается повторить ошибку;
  • задача заблокирована другим программистом;
  • незнание API;
  • нехватка квалификации.

Типичные причины

Нехватка информации

Примеры нехватки информации:

  • отсутствует дизайн или спецификации;
  • отсутствуют шаги для повторения ошибки, при условии, что ошибку не удалось повторить.

Что нужно сделать в строгом порядке:

  1. Сообщить письменно менеджеру о том, что успешное выполнение задачи заблокировано из-за отсутствия необходимой информации. Принять с менеджером решение о дальнейших шагах.
  2. Сообщить клиенту о том, что успешное выполнение задачи заблокировано из-за отсутствия необходимой информации. Однозначно спросить, в какой срок будет предоставлена эта информация. Ежедневно напоминать о заблокированной задаче и необходимости предоставить информацию.

Нет доступа к серверу для настройки, развертывания или тестирования

Обходное решение: провести тестирование метода на ресурсах Design and Test Lab, а затем сменить реквизиты.

Не получается ожидаемый результат при работе с АПИ

Создать отчет в папке Project/<имя_проекта>/Problem Reports о решение проблемы, который должен включать:

  • постановку задачи;
  • ссылку на задачу в Джире;
  • ссылку на документацию производителя АПИ, которая непосредственно относится к данной задаче и проблеме;
  • варианты решения поставленной задачи;
  • ссылку на вопрос заданный самим программистом на Stack Overflow;
  • ссылки на форумы, Stack Overflow, блоги, списки рассылки, где обсуждается библиотека или АПИ.

Указать ссылку на отчет в соответствующей задаче в Джире.

Варианты решения поставленной задачи должны включать:

  • краткое описание варианта;
  • ссылку на бранч в Битбакете с кодом реализации варианта;
  • дамп HTTP-запросов, если применимо;
  • дамп HTTP-ответов, если применимо;

Сделать поиск по форумам, Stack Overflow, блогам, спискам рассылки.

Написать вопрос на Stack Overflow. Ссылку отправить коллегам, чтобы плюсанули.

Написать вопрос на группу рассылки библиотеки.

Написать вопрос в службу поддержки.

Написать разработчику (человеку) библиотеки или сервиса лично. Контакты можно найти в интернете, Твиттере, Фейсбуке, Линкедине. Успешный случай — проблема Никиты c Google Cloud Platform была решена, когда написали напрямую сотруднику Гугла.

Сообщить письменно менеджеру о том, что выполнение задачи заблокировано.

Не получается повторить ошибку

Проанализировать креш-лог ошибки.

Задача заблокирована другим программистом

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