адекватно ли такое задание?
Самый нудный баг, воспроизводящийся не всегда, связан с потерей связи с сервером и переподключением клиента. Занимаюсь им уже третий день.
в первый день ковырял достаточно "высокоуровневый" класс, так как было подозрение, что ошибка в логике этого класса. Там используется QtStateMachine (приложеньице пишется на си++ в Qt). Пришлось по коду полностью рисовать граф состояний машины чтоб попытаться аналитически найти возможную ошибку. Вроде всё правильно.
сейчас - ковыряю два других класса: отвечающий за соединение с сервером, и более "низкоуровневый" который является надстройкой над сетевыми классами.
Всё, в чем приходится ковыряться - писал тимлид. Код, в принципе интуитивно понятный, но его много. куча методов и полей, которые потенциально могут вызвать тот самый баг. таким образом, я уже 3ий день изучаю продукт работы чужого разума пытаясь найти маленький недочет - иголку в стоге сена.
по моему мнению - подобные узкие места должны исправляться непосредственно самим кодописателем, сам накасячил - ищи свой косяк. изучение чужого кода - это кропотливая однообразная работа, требующая сосредоточенности долгое время. Теперь уже я достаточно подробно изучил некоторые из исследуемых классов, и могу сделать их серьезный рефакторинг, избавив код от узких мест. И это теперь уже действительно сделать проще, чем найти код, приводящий к багу. но получаю в ответ "у тебя сейчас другое задание - надо найти ошибку".
как по вашему адекватно ли такое "задание"? да, сам тимлид с большой вероятностью нашел бы баг, я думаю, за час-другой. он программер опытный, но, касаемо разделения обязанностей, имхо, гонит конкретно.
Похоже задача состоит не сколько в исправлении бага, столько в изучении кода еще одним членом команды. Если подходить с этой т.з., задание вполне адекватно.
[QUOTE=ArtemS2006]И это теперь уже действительно сделать проще, чем найти код, приводящий к багу. но получаю в ответ "у тебя сейчас другое задание - надо найти ошибку".[/QUOTE]
Ну и ищи. За денюжку-то, отчего не поискать? ;)
"Надо все переписать, я знаю как лучше это сделать" - самое распространенное заблуждение, как правило связанное с отсутствием желания разбираться в "чужом" коде. Ну тупо перепишите вы все, избавитесь от "узких мест", потратите время на отладку, огребете еще с десяток багов, а самое печальное будет в том, что не поняв истинной причины исходного бага, в лучшем случае вы огребете его в новом кавайном коде, а в худшем похороните глубже, он просто перестанет воспроизводится, но не исчезнет. Бойан господа. А тимлида, он же аффтар кода, надо периодически попинывать на тему возможных мест локализации бага, чтобы не расслаблялсо:D.
Но, извините, я никак не хочу изучать чужой код настолько, чтоб мочь в нем исправить любую малозаметную карявку, приводящую к багу. Порой в своем коде тр"№;ешься, ищешь ошибки по долгу, а тут три дня с чужим вожусь.
Наверняка, все отпостившиеся работают над серьезными программными проектами. И что, у вас тоже так принято: не доделать чучуть и потом дать коллеге ковырять продукт своего творчества искать баги?
PS: Время - критический ресурс.
Цитата: ArtemS2006
Порой в своем коде тр"№;ешься, ищешь ошибки по долгу, а тут три дня с чужим вожусь.
А бывает и так, что посторонний взгляд может практически моментально локализовать проблему. Взгляд автора часто бывает "замылен".
Цитата: ArtemS2006
Наверняка, все отпостившиеся работают над серьезными программными проектами. И что, у вас тоже так принято: не доделать чучуть и потом дать коллеге ковырять продукт своего творчества искать баги?
А я бы не против на кого-нибудь сбросить часть работы в т.ч. и отлов и убиение багов, но, к сожалению, работаю один.
Цитата: ArtemS2006
Наверняка, все отпостившиеся работают над серьезными программными проектами. И что, у вас тоже так принято: не доделать чучуть и потом дать коллеге ковырять продукт своего творчества искать баги?
тут многое зависит от команды. Задача тим-лида - не код писать. Поэтому возмущение не очень понятно.