Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
15.11.2011, 13:27
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
Добрый день! Прошу помощи в непростой для меня ситуации. Я работаю системным администратором в компании, которая наняла разработчиков для написания информационной системой с бэкендом на FireBird 2.5. Сейчас, когда проект уже почти сдан, начала появляться проблема в виде зависания их программы - интерфейс зависает наглухо, висит пока не скинешь через таск-менеджер. В процессе совместной с разработчиками отладки, в логе FireBird были найдены сообщения об ошибке "INET/inet_error: read errno = 10054". Гугление привело к информации о том, что проблема связана с обрывом TCP соединения. Со стороны разрабатываемого ПО при этом не выдаётся никаких ошибок, программа также не пытается повторно установить соединение. Разработчики отказываются от любых доработок продукта, ссылаясь на то, что эти зависания являются следствием плохой настройки серверов и глючностью сети. Однако, в моём понимании, их ПО должно либо самостоятельно переоткрывать соединение, либо хотя бы выдавать сообщение об ошибке - ведь в текущей ситуации пользователи и начальство уверены, что эта проблема связана с производительностью серверов (дескать, раз программа зависла, значит всё медленно работает), но у меня есть логи, которые показывают, что серверы практически ненагружены. Прошу совета, как правильно составить претензию, на какие нормативы можно ссылаться? Нутром понимаю, что есть общепринятые или даже задокументированные требования к такого рода приложениям, но куда копать - совершенно не понимаю. Сначала хотел сослаться на то, что сеть Ethernet - изначально ненадёжная среда, допускающая потери пакетов, но ведь TCP учитывает этот момент и TCP-сессия уже является достаточно надёжной и в теории не долна рваться просто так. В общем, дайте совет, на что акцентировать внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.11.2011, 13:47
|
|||
---|---|---|---|
Как грамотно составить претензию разработчику? |
|||
#18+
Schastlivy, Вам наверно нужно вот сюда По сабжу: Прежде чем давать советы по составлению претензии, проясните несколько вопросов: Кто принимал решение об использовании FireBird и языка разработки самого приложения? Был ли этот выбор сделан самими разработчиками или это было требование указано в самом ТЗ на разработку ПО? В общем случае, в ТЗ должны быть требования к интерфейсу ПО. В списке этих требований может (должно) быть прописано максимальное время отклика на действия пользователя. Поэтому лучше сделать глупое лицо и требовать выполнение этого пункта, а причины такого поведения программы Вас вообще интересовать не должны. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.11.2011, 13:48
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
Да не подписывайте акт выполненных работ и все, какие проблемы-то... И скажите, что пока не будет устранена ошибка, не будет полной или частичной оплаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.11.2011, 14:14
|
|||
---|---|---|---|
Как грамотно составить претензию разработчику? |
|||
#18+
SchastlivyINET/inet_error: read errno = 10054 для начало было бы неплохо найти дефектное сетевое оборудование по маршруту, такие ошибки на ровном месте не появляются. А потом, посмотреть, есть ли в договоре пункт о том, что заказчик обязан предоставить рабочее железо для программы и использование им кривого оборудования = проблемы заказчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.11.2011, 16:47
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
SchastlivyРазработчики отказываются от любых доработок продукта, ссылаясь на то, что эти зависания являются следствием плохой настройки серверов и глючностью сети. Однако, в моём понимании, их ПО должно либо самостоятельно переоткрывать соединение, либо хотя бы выдавать сообщение об ошибке Не факт. Очень многое зависит от глючности сети (глючный свич, плохой обжим, некачественный кабель), настроек ОС (таймаут для TCP, например) и других факторов, которые зависят от системного/сетевого администратора больше, чем от программиста. Понимаю, что в данном случае речь именно о ваш, поэтому отдельно подчеркиваю - ничего личного, только попытка помочь. SchastlivyПрошу совета, как правильно составить претензию, на какие нормативы можно ссылаться? Нутром понимаю, что есть общепринятые или даже задокументированные требования к такого рода приложениям, но куда копать - совершенно не понимаю. Я бы советовал копать в сторону полюбовного решения проблемы. Для начала. И в сторону проверки сети, как бы не неприятно это для вас было. Кстати, относительно недавно в профильном форуме поднимался вопросс, который очень напоминает вашу проблему, но со стороны разработчиков. И далеко не глупые люди сошлись именно на сетевом происхождении глюка. Если интерессно - попробуйте поискать. Касаемо претензий - копать в сторону договора, который вы подписали, и тех.задания, которое является неотъемлимой частью договора. Для общего развития - в сторону фразы "гост на разработку программного обеспечения", забитой в поисковик. Сначала хотел сослаться на то, что сеть Ethernet - изначально ненадёжная среда, допускающая потери пакетов, Договор смотрите. Мы в своем, например, указываем, что без нормально настроенной рабочей среды все претензии отсылаются на йух. А то можно допрограммироваться до требований работоспособности программы при отключенном эликтричестве (были инциденты). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.11.2011, 16:52
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
Повторяется ли ошибка при каком-то конкретном режиме, тяжелом запросе? Или случайным образом в разных режимах, то проходит все нормально, то ошибка? Воспроизводится ли ошибка на тех же данных, но на другом оборудовании (например, локально)? На том же оборудовании, но на других данных (на меньшем количестве данных)? На другой версии FireBird? После чего конкретно начала появляться ошибка? (обновление версии программы, наполнение БД реальными данными, обновление антивируса на серверах и т.п.)? Возможно ли восстановить прежнюю ситуацию, чтобы ошибка исчезла? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.11.2011, 17:35
|
|||
---|---|---|---|
Как грамотно составить претензию разработчику? |
|||
#18+
Schastlivy, вы же админ! Сделайте для приёмки тестовую сеть\раб.место\стенд. В ТЗ должны быть записаны правила приёмки ПО и параметры окружения. ЗЫ. Самостоятельно переоткрывать не должна, если это не указано в ТЗ. Так, после перекура или обрыва сети, все клиенты ломануться переоткрывать свои таблички? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.11.2011, 17:36
|
|||
---|---|---|---|
Как грамотно составить претензию разработчику? |
|||
#18+
протестируйте наконец - выдерните сетевой кабель и посмотрите реакцию проги :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.11.2011, 22:38
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
> для написания информационной системой с бэкендом на FireBird 2.5 Хотели геморрой - получили геморрой. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 00:25
|
|||
---|---|---|---|
Как грамотно составить претензию разработчику? |
|||
#18+
То, что программа наглухо зависает из-за проблем, не связанных с железом и ОС компьютера, на котором работает - ошибка программы, это бесспорно. Должна ли программа пытаться при этом "всё починить" или хватит сообщения об ошибке - вопрос, но виснуть она не должна. В то же время это в общем неисключительная ситуация. Например, во времена восьмого оракла так иногда подвисал сетевой протокол, и приходилось отстреливать поток по TerminateThread, другое просто не помогало. Исправить такую проблему в ситуации "программа почти готова" может быть довольно проблематично. Я бы посоветовал поискать в ТЗ пункты, которые можно притянуть к этой ситуации, а также пункты, которые по тем или иным причинам не выполнены или плохо выполнены, после чего ненавязчиво предложить разработчикам выбор "либо полюбовно исправляем так, чтобы обоим было комфортно, либо идём на принцип и требуем от вас максимума вот по этим пунктам ТЗ". ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 00:27
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
guest_20040621> для написания информационной системой с бэкендом на FireBird 2.5 Хотели геморрой - получили геморрой. Точно! Надо было юзать трехзвенку из большой тройки в полном составе. Тогда она бы сама запрограммировалась вместо программистов и сама настроила сеть вместо администраторов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 02:23
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
softwarerТо, что программа наглухо зависает из-за проблем, не связанных с железом и ОС компьютера, на котором работает - ошибка программы, это бесспорно. 10054 - это обрыв клиентского соединения на уровне TCP. Пока winsock (у ТС-а же винда?) не отрапортует клиенту об обрыве соединения, клиент обязан ждать. По дефолту - несколько часов (могу ошибаться, но таймаут меряется в часах). softwarer Должна ли программа пытаться при этом "всё починить" или хватит сообщения об ошибке - вопрос, но виснуть она не должна. А она и не виснет. Она ждет ответ за запрос. softwarerВ то же время это в общем неисключительная ситуация. Например, во времена восьмого оракла так иногда подвисал сетевой протокол, и приходилось отстреливать поток по TerminateThread, другое просто не помогало. Об чем и речь. В случае когда ОС не способна (не должна?) отрапортовать об ошибке из-за , приходится выискивать варианты. Вопрос только в том, проблема ли это клиентского софта, или может стоит пнуть сетевого администратора, чтобы он наконец проверил активку в своей сети о трех свичах? softwarerИсправить такую проблему в ситуации "программа почти готова" может быть довольно проблематично. Я бы посоветовал поискать в ТЗ пункты, которые можно притянуть к этой ситуации, а также пункты, которые по тем или иным причинам не выполнены или плохо выполнены, после чего ненавязчиво предложить разработчикам выбор "либо полюбовно исправляем так, чтобы обоим было комфортно, либо идём на принцип и требуем от вас максимума вот по этим пунктам ТЗ". Собственно, о чем и речь изначально - смотреть договор. Боюсь только, что раз вопрос поднят здесь, договор подписывался типовый, «для галочки», а у заказчика и/или исполнителя нет возможности и/или желания проверить сеть/вписать кастомную проверку таймаута. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 09:32
|
|||
---|---|---|---|
Как грамотно составить претензию разработчику? |
|||
#18+
miwaonline10054 - это обрыв клиентского соединения на уровне TCP. Пока winsock (у ТС-а же винда?) не отрапортует клиенту об обрыве соединения, клиент обязан ждать. По дефолту - несколько часов (могу ошибаться, но таймаут меряется в часах). Клиент что, подписку давал в КГБ, что что-то обязан? Никто не мешает поставить вменяемый таймаут. Если с этим проблема, никто не мешает повесить внешний контролёр, который насильственно гасит подвисший поток. Блин, ну вот у тебя есть браузер. Он почему-то время от времени пишет 10054 и вовсе не ждёт "несколько часов". И 10060 он пишет разумно быстро. Неужели нельзя вспомнить об этом перед тем, как гнать чушь? miwaonlinesoftwarer Должна ли программа пытаться при этом "всё починить" или хватит сообщения об ошибке - вопрос, но виснуть она не должна. А она и не виснет. Она ждет ответ за запрос. То есть смысл слова "виснет" ты не понимаешь. Проехали. miwaonlineОб чем и речь. В случае когда ОС не способна (не должна?) отрапортовать об ошибке из-за , приходится выискивать варианты. Вопрос только в том, проблема ли это клиентского софта, Это не вопрос. Это некачественная реализация клиентского софта. miwaonlineили может стоит пнуть сетевого администратора, чтобы он наконец проверил активку в своей сети о трех свичах? Одно другому не мешает. Когда твоя программа падает из-за ошибки, например, "файл не найден" - это кривая программа или стоит пнуть администратора, чтобы он поправил настройки? miwaonlineБоюсь только, что раз вопрос поднят здесь, договор подписывался типовый, «для галочки», В договоре "для галочки" пунктов, которыми можно выворачивать руки, обычно куда больше, чем в толковом. Например, там обычно присутствуют дурацкие пункты типа "любой отчёт должен строиться не больше пяти секунд", на которые обычно по умолчанию кладут разумных размеров болт. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 10:02
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
> Точно! Вы будете смеяться, дружище, но выбор среды и СУБД говорит о квалификации заказчика и исполнителя больше, чем им бы хотелось. Некомпетентность - основной источник проблем. Что и иллюстрирует приведенный пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 12:13
|
|||
---|---|---|---|
Как грамотно составить претензию разработчику? |
|||
#18+
miwaonlineПо дефолту - несколько часов (могу ошибаться, но таймаут меряется в часах). ошибаешься. Речь идет о секундах softwarerвот у тебя есть браузер. Он почему-то время от времени пишет 10054 и вовсе не ждёт "несколько часов". И 10060 он пишет разумно быстро. Неужели нельзя вспомнить об этом перед тем, как гнать чушь?потому что он пишет ответ на запрос. Неужели нельзя об этом вспомнить? А ТС описывает совершенно другую ситуацию. И в этой ситуации, прежде всего, нужно проверять свою сеть, которая, судя по всему, даже не вякаяет об отвалах. Такое бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 12:15
|
|||
---|---|---|---|
Как грамотно составить претензию разработчику? |
|||
#18+
guest_20040621> Точно! Вы будете смеяться, дружище, но выбор среды и СУБД говорит о квалификации заказчика и исполнителя больше, чем им бы хотелось. Некомпетентность - основной источник проблем. Что и иллюстрирует приведенный пример. выбор FB ничего не иллюстрирует. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 12:23
|
|||
---|---|---|---|
Как грамотно составить претензию разработчику? |
|||
#18+
iscrafmпотому что он пишет ответ на запрос. Неужели нельзя об этом вспомнить? А клиентская программа, обращающаяся к файрбёрду, что пишет? Запрос на ответ? iscrafmА ТС описывает совершенно другую ситуацию. Абсолютно ту же. Просто видит её в логах сервера, поскольку клиентское ПО прореагировать на неё не удосуживается (в чём и состоит претензия к нему). iscrafmИ в этой ситуации, прежде всего, нужно проверять свою сеть, которая, судя по всему, даже не вякаяет об отвалах. Такое бывает. Проверять сеть, конечно, нужно. И нормально писать ПО тоже нужно. Если уж клиент файрбёрда не умеет отловить такую ситуацию и выдать аналог ORA-3113 - придётся взять нормальное ПО сделать эту работу самому. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 12:28
|
|||
---|---|---|---|
Как грамотно составить претензию разработчику? |
|||
#18+
softwarer, может стартовый пост прочитаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 12:36
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
Всем большое спасибо за ответы! Кто принимал решение об использовании FireBird и языка разработки самого приложения? Был ли этот выбор сделан самими разработчиками или это было требование указано в самом ТЗ на разработку ПО? БД выбирал разработчик, но на всякий случай проверю этот пункт в тз. Язык разработки точно не задавался жёстко. для начало было бы неплохо найти дефектное сетевое оборудование по маршруту, такие ошибки на ровном месте не появляются. А потом, посмотреть, есть ли в договоре пункт о том, что заказчик обязан предоставить рабочее железо для программы и использование им кривого оборудования = проблемы заказчика.Заниматься детальной диагностикой сети, сейчас, к сожалению, возможности нет (сильно занят другой задачей), в голову приходит только посмотреть статистику потерь по SNMP. Глюк появляется всего несколько раз в день, уже в продакшен среде с ~100 клиентами. Сама сеть - коммутаторы HP, сервера Intel, с кабелями вроде проблем нет (до этого работало год без подобных проблем). Между серверами всего один свич. Есть ещё, правда, пару дешёвых пятипортовых свичей на перифии, но они уже в коммутаторы уровня доступа втыкаются. Но тем не менее: как же так?? Ну, глюкнула сеть, оборвалась сессия - почему ошибку или предупреждение не выкинуть?? Не факт. Очень многое зависит от глючности сети (глючный свич, плохой обжим, некачественный кабель), настроек ОС (таймаут для TCP, например) и других факторов, которые зависят от системного/сетевого администратора больше, чем от программиста Ну так я на данном этапе не ставлю цель разработчикам устранить этот глюк - для этого действительно нужна нормальная диагностика, но она может очень сильно затянуться (сейчас параллельно другие задачи выполнять), и скорее всего действительно проблема окажется на моей стороне, вопрос об адекватной обработке такой ошибки со стороны разрабатываемого ПО. [quot] Я бы советовал копать в сторону полюбовного решения проблемы./Само собой до суда и финансовых претензий доводить не хотелось бы. Касаемо претензий - копать в сторону договора, который вы подписали, и тех.задания, которое является неотъемлимой частью договора. Для общего развития - в сторону фразы "гост на разработку программного обеспечения", забитой в поисковик.Сейчас пойду гуглить и изучать договор, буду искать, за что можно зацепиться. Договор смотрите. Мы в своем, например, указываем, что без нормально настроенной рабочей среды все претензии отсылаются на йух.Что есть нормально настроенная рабочая среда? С юридической точки зрения? Повторяется ли ошибка при каком-то конкретном режиме, тяжелом запросе? Или случайным образом в разных режимах, то проходит все нормально, то ошибка?Ошибка носит случайный характер, закономерностей в последовательности действий/используемом функционале/объёме выборки не замечено. Воспроизводится ли ошибка на тех же данных, но на другом оборудовании (например, локально)? На том же оборудовании, но на других данных (на меньшем количестве данных)? На другой версии FireBird?Добиться стабильного воспроизведения даже в имеющейся среде не получается, пускать же пользователей не на терминальный сервер, а на сервер БД считаю достаточно странным методом диагностики (для тестирования локального запуска). Остальные пути диагностики пока откладываются, т.к. нет возможности детально ими заниматься. После чего конкретно начала появляться ошибка? (обновление версии программы, наполнение БД реальными данными, обновление антивируса на серверах и т.п.)? Возможно ли восстановить прежнюю ситуацию, чтобы ошибка исчезла?Трудно сказать точно, было 2 события: переезд БД на новый сервер, и постоянные смены версий ПО разработчиками (об изменениях они нас частенько забывают уведомить) [qout] Сделайте для приёмки тестовую сеть\раб.место\стенд. В ТЗ должны быть записаны правила приёмки ПО и параметры окружения. ЗЫ. Самостоятельно переоткрывать не должна, если это не указано в ТЗ. [/qout]Если в продакшене на 100 клиентов глюк появляется всего несколько раз в день у разных клиентов (каждый из них цепляется к базе напрямую), то, думаю, на тестовом стенде вопроизвести проблему просто не получиться. По поводу переоткрытия сессии - а это мысль! Мы можем внести этот пункт в тз на доработку в ближайшее время =) [qout] протестируйте наконец - выдерните сетевой кабель и посмотрите реакцию проги :))[/qout]Ошибку сети выдаёт, зараза.. В общем пойду пока с договором ознакомлюсь, диагностику будет возможно не раньше, чем через месяц выполнить ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 12:40
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
Оу, прошу прощения за сбитое цитирование, но кнопку редактирования не вижу совсем ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 12:47
|
|||
---|---|---|---|
Как грамотно составить претензию разработчику? |
|||
#18+
SchastlivyНу, глюкнула сеть, оборвалась сессия - почему ошибку или предупреждение не выкинуть?? Вы недостаточно полно для этого обрисовали ситуацию. Потому что действительно могут быть глюки, о которых клиентское приложение даже и не узнает. Конечно это не отменяю необходимости в адекватном таймауте, вместо глухого зависания ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 13:51
|
|||
---|---|---|---|
Как грамотно составить претензию разработчику? |
|||
#18+
Schastlivy, В ТЗ где-нибудь был прописан пункт о количестве одновременных пользователей? Попробуйте провести нагрузочное тестирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 20:45
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
> выбор FB ничего не иллюстрирует СУБД для информационной системы? Более, чем странный выбор. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 22:05
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
guest_20040621> выбор FB ничего не иллюстрирует СУБД для информационной системы? Более, чем странный выбор. Это пять! В цитатник! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.11.2011, 22:24
|
|||
---|---|---|---|
|
|||
Как грамотно составить претензию разработчику? |
|||
#18+
> Это пять! В цитатник! Вам полезнее было записать это на лбу. Чем-нибудь ярким. Проснулись утром, посмотрели в зеркало, вспомнили, осознали. Поделки в качестве СУБД, дружище, информационным системам противопоказаны. По определению. Не понимаете - просто запомните. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=33&mobile=1&tid=1547947]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 158ms |
0 / 0 |