Представьте что вас просят починить сервис отчетов, который до вас делал уволившийся разработчик. Все что вы знаете о сервисе - это то что он должен отдавать бухгалтерский отчет за выбранный месяц по всем сотрудникам предприятия. Другого функционала в сервисе отчетности нет.
Отчет выглядит так:
Январь 2017
ФинОтдел
Андрей Сергеевич Бубнов 70000р
Григорий Евсеевич Зиновьев 65000р
Яков Михайлович Свердлов 80000р
Алексей Иванович Рыков 90000р
Всего по отделу 305000р
Бухгалтерия
Василий Васильевич Кузнецов 50000р
Демьян Сергеевич Коротченко 55000р
Михаил Андреевич Суслов 35000р
Всего по отделу 140000р
ИТ
Фрол Романович Козлов 90000р
Дмитрий Степанович Полянски 120000р
Андрей Павлович Кириленко 110000р
Арвид Янович Пельше 120000р
Всего по отделу 440000р
Всего по предприятию 885000р
Сервис отчетов уже запущен в продакшен, но работает очень нестабильно. С какого-то времени он вообще перестал работать. Ваша задача починить сервис отчетности. Все что известно о внутреннем устройстве сервиса описано в записке от предыдущего разработчика:
Список сотрудников по отделам можно взять в БД employee. Зарплату сотрудника в месяц можно получить в веб-службе бухгалтерского отдела, но ей на вход нужно передать код сотрудника из сервиса кадровиков
Также есть список багов от пользователей (с тех времен когда сервис отчетов хоть как-то работал):
- иногда система не отдает отчет, а возвращает ошибку
- работает очень медленно
- в отчет попадают не все сотрудники
- нет строки всего по предприятию
Вам нужно вернуть сервис отчетности к жизни, пофиксить известные баги и навести порядок в самом проекте, так как предыдущий разработчик не отличался аккуратностью. Доступа к БД и веб-службам у вас нет, так как информация в них строго конфиденциальная. Да, мы тут что-то слышали про тесты и было бы неплохо покрыть код тестом, ну чтобы больше не попасть в такую ситуацию.