image

Примечание от переводчика:

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



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

За последние несколько лет стало ощущаться, как качество программного обеспечения и услуг по всей отрасли стало падать, а не расти. Все и всегда находится в стадии Беты (как исходя из названия, так и из качества). Товары отправляются потребителям тогда, когда этого хотят маркетологи, а не когда они реально готовы к продаже, а все потому, что «мы всегда сможем легко все пофиксить». Конечный потребитель превратился из покупателя в бета-тестера, но это уже норма, потому что в разработке используется Agile. В программировании мы стали считать, что ошибки и неудачи — это нормально, поэтому нам теперь не нужно прикладывать так много усилий для их избежания. Поддержка миллионов клиентов — вещь сложная, поэтому волноваться не стоит. Зачем вообще тратить время на ознакомление с фидбеком и репортами от пользователей, если их просто можно отправить в бесконечный лабиринт под названием «саппорт» и «обратная связь»?

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

Ниже я предлагаю вам ознакомиться с рядом скриншотов, на которых запечатлены «косяки» наших коллег только за последний месяц. Или я такой «везучий», что только и делаю, что натыкаюсь на подобное? Или же это видят все, но только мне приходится сдерживаться, чтобы не начать орать?

Нередко можно столкнуться с тем, что данные не защищены или плохо зашифрованы, но не так часто можно увидеть подобное:

image

Как-то раз я гуглил одну проблему для своего друга и наткнулся в выдаче на страницу сайта ASUS, описание которой идеально подходило под описание проблемы. Однако, когда я перешел на нее, я получил пустую страницу с формой, в которой меня просили указать, была ли решена моя проблема:

image

Как-то мне пришло письмо от IKEA, в котором напоминалось, что я не закончил свою сессию опроса (обзора) и предлагалось пройти по ссылке, чтобы сохранить результат. Когда я перешел по ней, мне вернулось окно, в котором говорилось, что я-то уже все закончил:

image

Сегодня я получил письмо от Coursera с не замененным заголовком:

image

Антивирус, которым мы пользуемся на работе, уже второй раз за месяц заблокировал нам доступ к большей части Интернета. В твиттере бурлило обсуждение на эту тему и у всех была одна и та же проблема. Я считаю это просто поразительным: неужели нельзя все протестировать перед тем, как выкатывать обновление в свет? Причем, были заблокированы многие крупные ресурсы, например, Google и сайт BBC!

image

И я не совсем понимаю, что вообще значит это сообщение при выключении моей Raspberry Pi!

image

Тут я попытался посетить сайт HTC Vive, но получил ошибку соединения MongoDB, которая вывалилась, ко всему прочему, на весь экран. Я быстро отписал об этом через твиттер, так же быстро получил остроумненький ответ, но ошибку выбивало вплоть до следующего дня:

image

Еще я попытался поднять Ubuntu MATE на моей Pi. Я записал совместимый с Pi образ на SD-карту, а в итоге получил вот это при первой загрузке. И я не уверен, что понимаю, в чем проблема:

image

Сегодня я пытался скачать ISS Log Parser, но не похоже, чтобы он качался. Открыв Dev-панель я увидел ошибку “jQuery not defined”, повторяющуюся с завидным упорством:

image

Я попытался связаться с моей коммунальной компанией NPower (занимаются газом и электричеством). Они прислали мне письмо с уведомлением, но когда я нажал на ссылку для перехода на их сайт мне вывалилось огромное предупреждение браузера о SLL. Оказалось, что имел место быть подменный сертификат (* .npower.com), но в теле письма электронной почты указано npower.com. Я сообщил об этой проблеме, по крайней мере, пяти разным людям из этой компании, но никто, как казалось, не отнесся к этому серьезно. Или они вообще не поняли, что я пытался до них донести. А мне, конечно, не хотелось бы получать еще уведомления от браузера, что кто-то пытается угнать мои персональные данные:

image

Окей, у вас уже есть одна дыра в безопасности, но блин, парни, ошибка сертификата на странице live-чата!

image

Вчера я попытался получить выписку со своего paypal и после входа в систему получил сообщение ниже. Конечно, было бы неприятно столкнуться с подобным в момент оплаты чего-то, но эта страница особенно бесполезна. Потому что там нет никакой информации, чтобы помочь мне. Вообще. Ни номера технической поддержки, ни каких-либо «знаков», что мне делать дальше.

image

Много лет назад Microsoft устроили целый «артиллерийский залп» по подкастам для Windows Phone на территории США. А теперь, вот, спустя всего пару лет, как мне кажется, Google занимается тем же. Причем, я не вижу каких-либо оснований для подобного отношения к бесплатным аудиофайлам. Что еще более удивительно, все остальные музыкальные сервисы Google Play, например, в Великобритании, вполне себе работают. Так в чем причина?

image

Podomatic услужливо добавляет к вашим iTunes-URL приставку «http://». Это происходит даже если вы используете HTTPS, что, кстати, и так включено по дефолту (HTTP автоматически редиректится на HTTPS). В итоге, перед сохранением надо убить кусок времени, чтобы все поправить вручную:

image

А вот это просто прекрасно. Кто-то добавил мой email-адрес в рассылку на услугу, используя имя «Pro_Hacking». Я сообщил об этом, потому что волновался, что, возможно, в итоге что-то может произойти с моей учетной записью, привязанной к этому ящику. Но даже когда я связывался с технической поддержкой, и объяснял им, что я не «Pro_Hacking» каждый раз ответное письмо начиналось со стандартного «Hello pro-Hacking»!

image

Но вернемся к ЖКХ. Как оказалось, по каким-то «таинственным» причинам, NPower были неспособны поставлять мне газ, поэтому мы договорились, что я перейду к SWALEC. еще неделю я потратил на переписку с последними, потому что при попытке входа в личный кабинет через отправленный на почту код авторизации, мне возвращало страницу, с информацией, что что-то пошло не так:

image

А вот этот веб-сайт обвинил меня в использовании блокировщика рекламы и не позволил прочитать статью. Из скриншота ниже совершенно очевидно, что я не пользуюсь блокировщиком, так как прекрасно понимаю необходимость монетизации для площадок и откладываю установку адблока. Но если сайты собираются использовать подобные методы, то пусть хотя бы тестируют свои решения! А то получается, что меня обвиняют в краже еды у их детей, когда я тут, вроде как, и не при чем вовсе. Но давайте! Гоните меня!

image

Тут я попытался поднять VNC на моем Pi. Он был закрыт фаерволлом, так что для удобства я поставил короткий пароль. Мне ругнулось, что пароль слишком короткий. Окей, я добавил пару символов, после чего мне вернуло сообщение о том, что пароль должен состоять из восьми знаков.

image

При установке апдейта Visual Studio, мне предложило участвовать в программе улучшения продукта (Visual Studio Improvement Program). Там же было написано, что «галочка» согласия на участие является опциональной. Но, что-то не похоже:

image

В Visual Studio 2015 Update 2 утверждалось, что были решены куча проблем со стабильностью и работой, но как только я запустил VS, он сразу же упал. Причем я уверен, что у меня нет каких-либо не-майкрософтовских расширений и прочего.

image

Каждые несколько недель мои часы Moto 360 Android Wear рандомно начинают выжирать батарею, пока она, либо полностью не иссякнет, либо часы не перезагрузят. Я писал об этом репорт, на что Google мне ответили, что «такое поведение характерно после получения обновления». Но у меня не было никаких обновлений и даже если бы и были, согласитесь, как-то все это тупо.

image

При подготовке этой публикации я начал поиск инструментария командной строки для оптимизации изображений. Я наткнулся на этот пост, но каждый раз, когда я пытался проскроллить страницу вниз, ее отбрасывало вверх. Примерно через 40 секунд появилась причина этой беды: всплывающая реклама во всю страницу. Ладно.

И все описанное выше произошло буквально за один месяц. Я бы мог написать намного больше, если бы у меня были скриншоты на все случаи. Я не могу ничего исправить, но я чувствую, что вся наша отрасль просто не делает для пользователей то, на что может быть способна. Даже компании, которые раньше славились своим уровнем качества и тестирования, кажется, стали сливаться в сортир. Мне не привыкать к маркетингу и тому, что продукт можно скачать еще до того, как он будет готов, но, ведь, есть же место совершенству?

Или, может быть, вина лежит на конечных потребителях? Может быть, мы недостаточно жалуемся на низкое качество продукта, поэтому у компаний и мотивации для их улучшения нет?

Комментарии (191)


  1. Fen1kz
    05.05.2016 16:50
    -55

    Нередко можно столкнуться с тем, что данные не защищены или плохо зашифрованы:

    Просто не включаются в план менеджерами. Без учета обсуждений, зачем вообще шифрование везде.
    Или разрабы должны это овертаймом делать?


    Как-то раз я гуглил одну проблему для своего друга и наткнулся в выдаче на страницу сайта ASUS, описание которой идеально подходило под описание проблемы. Однако, когда я перешел на нее, я получил пустую страницу с формой, в которой меня просили указать, была ли решена моя проблема:

    Это задача разработчика писать этот документ?


    Как-то мне пришло письмо от IKEA, в котором напоминалось, что я не закончил свою сессию опроса (обзора) и предлагалось пройти по ссылке, чтобы сохранить результат. Когда я перешел по ней, мне вернулось окно, в котором говорилось, что я-то уже все закончил:

    Не понятно, то ли и правда баг, то ли такой бизнес процесс.


    Сегодня я получил письмо от Coursera с не замененным заголовком:

    Мало времени на тестирование?


    Антивирус, которым мы пользуемся на работе, уже второй раз за месяц заблокировал нам доступ к большей части Интернета. В твиттере бурлило обсуждение на эту тему и у всех была одна и та же проблема. Я считаю это просто поразительным: неужели нельзя все протестировать перед тем, как выкатывать обновление в свет? Причем, были заблокированы многие крупные ресурсы, например, Google и сайт BBC!

    Опять же. Менеджер ставит n часов. Тестировать овертаймом?


    И я не совсем понимаю, что вообще значит это сообщение при выключении моей Raspberry Pi!

    И виноваты разрабы, ага. Прохладная история.


    Тут я попытался посетить сайт HTC Vive, но получил ошибку соединения MongoDB, которая вывалилась, ко всему прочему, на весь экран. Я быстро отписал об этом через твиттер, так же быстро получил остроумненький ответ, но ошибку выбивало вплоть до следующего дня:

    Пустили фигню в продакшен.


    Еще я попытался поднять Ubuntu MATE на моей Pi. Я записал совместимый с Pi образ на SD-карту, а в итоге получил вот это при первой загрузке. И я не уверен, что понимаю, в чем проблема:

    Ubuntu open-source. Иди и помоги им.


    Сегодня я пытался скачать ISS Log Parser, но не похоже, чтобы он качался. Открыв Dev-панель я увидел ошибку “jQuery not defined”, повторяющуюся с завидным упорством:

    Через ИЕ. Мсье знает толк.


    Я попытался связаться с моей коммунальной компанией NPower (занимаются газом и электричеством).

    Опять таки — это разрабы игнорировали? Нет. Менеджеры.


    Дальшле мне надоело, бла бла бла "А вот этот веб-сайт обвинил меня в использовании блокировщика рекламы" — виноваты разработчики, ага. Конечно.


    Багованная всплывающая реклама… Это разработчик решил её туда поместить? Или спланировать тестирование без нее?


    В общем автора в биореактор, типичный подход "тыж программист, тыж во всем виноват"


    1. kaljan
      05.05.2016 17:38
      +59

      я считаю, показательный комментарий


      1. MikeLP
        05.05.2016 18:57
        +8

        Меня аж в жар кинуло.


      1. Fen1kz
        05.05.2016 19:19
        +1

        Ок, ок, всё, был не прав, не сливайте совсем :(


      1. jMas
        05.05.2016 22:38
        +7

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


        1. SuperNovaWS
          06.05.2016 00:45
          +14

          Проблема еще круче. Как себя позиционирует автор статьи?

          > Я разработчик программного обеспечения и я создаю баги и ошибки.

          Ладно, вторую часть откинем и оставим на его совести. Но по первой части — он, вроде бы, разработчик. При этом в самой статье лажается и путает баги программы с:
          — недостачей контента;
          — проблемой инфраструктуры;
          — своим низким скиллом, когда ему не хватает квалификации понять смысл диагностической ошибки;
          — завышенными требованиями к free software;
          — закидонами маркетологов, которые заставили сделать галочку неотключаемой;
          — ошибками в стороннем ПО, а не в системе;
          — проблемами с локальной конфигурацией;
          — итд, итп

          Так же он пытается оценить качество ПО В ЦЕЛОМ по своим локальным глюкам — т.е. очень вольно обращается с кванторами общности: «Если у меня ПО не работает — значит ПО плохое в принципе».

          В общем — типичнейший наброс на вентилятор.


          1. Terranz
            06.05.2016 09:37
            +2

            >Так же он пытается оценить качество ПО В ЦЕЛОМ по своим локальным глюкам — т.е. очень вольно обращается с кванторами общности: «Если у меня ПО не работает — значит ПО плохое в принципе».
            вы не поверите, но именно так оценивает ПО обыватель — что-то ему критичное не работает -> не работает ничего вообще
            как утрированный пример приведу gmail — пользователь набирает и отсылает почту, и тут у него вместо кнопки отправить появляется текст
            nbspa href=awdawdawd>отправить и он не может отправить почту — пользователь закрывает окно браузера и решает, что почтовый клиент не работает вообще
            хотя, например, функции фильтрации, приёма и так далее работают хорошо


            1. khim
              06.05.2016 13:34

              Обыватель может считать о себе что угодно и как угодно, но разработчик не должен забывать что пользователь — это «это не только ценный мех, но и 3–4 килограмма легкоусвояемого мяса», а если точнее — доход (не прибыль!) в районе $10 в год (ну или если учесть эффект «один выведенный из себя потребитель уведёт в среднем ещё 10 друзей», то $100 в год) — и это, напомню, самый-самый ужасный случай, когда ошибка настолько кошмарная, что пользователь «развернулся и убёг».


            1. SuperNovaWS
              07.05.2016 00:03

              Еще раз — автор статьи позиционирует себя как девелопера. Т.е. он должен быть в курсе разницы между контентом и кодом, а так же между «девелоперы сдались» и «менеджеры закусили удила».

              А если он не в курсе всего этого — значит он не имеет морального права наезжать на других девелоперов.

              Да, я в курсе, что не нужно быть поваром, что бы оценить качество блюда.

              Но я так же в курсе, что если тебе дали тухлые яйца и приказали приготовить омлет — то что ты с этим не делай, то получится говно. И да — при этом маркетинг может преподнести это как «изысканное исключительное кушанье для гурманов, сделанное из столетних яиц». Но это — уже маркетинг. По факту — это будет говённый омлет из протухших яиц.


          1. PHmaster
            06.05.2016 22:21

            Так речь и идет о сфере разработки ПО в целом:

            Я считаю, что у нашей сферы есть серьезные проблемы с качеством выполняемых работ и я не вижу этому конца.

            Нигде и не утверждается что «кодеры во всем виноваты». И здесь я согласен с автором: качество ПО, по моим личным субъективным ощущением, все больше и больше ухудшается. Взять те же игры — идешь в стим, платишь ощутимую сумму денег за какую-ниубудь новинку, которую все ждали несколько лет — и получаешь зависания и вылеты чуть ли не со старта. Или релизят игру, котрая несколько лет была в бете или раннем доступе — а там откуда-то багов и глюков больше, чем было в бете, а половина функционала урезана. С неигровыми приложениями в том же эпл аппсторе, например, — та же беда. Новые версии выпускаются с неимоверным количеством багов, с урезанным или перекроенным до неузнаваемости функционалом, и часто — без возможности откатиться к старой версии. Просто современный менеджмент где-то в своих учебниках прочитал, что релизнуть бажную версию в установленный срок — это гораздо лучше для бизнеса, чем подождать фиксов хотя бы критических багов и релизнуться попозже. А в результате можно с удивлением наткнуться на свежий баг и получить в ответ что-то вроде «мы уже в курсе этой проблемы, наша команда уже работает над ее устранением», хотя версия вышла буквально пару минут назад, и в предыдущей версии проблемы не было. То есть, про баги известно еще до релиза, но никого это не волнует, кроме страдающих в результате конечных пользователей.


            1. SuperNovaWS
              06.05.2016 23:57

              При чём тут девелоперы — хочется спросить?


              1. PHmaster
                07.05.2016 02:39

                Заходим еще на один круг?

                речь и идет о сфере разработки ПО в целом:

                «Девелопер» здесь — это обобщенное понятие. Можно читать как «компания-разработчик программного обеспечения». Девелопер — не единичный персонаж, не один человек, который сидит и занимается софтом, начиная с изучения спроса на рынке, и заканчивая продвижением и рекламой. Более-менее сложный софт уже давно не разрабатывается программистами-одиночками, чаще всего это как минимум команда, состоящая из специалистов в различных областях. Это как о строительной отрасли можно обобщенно сказать «строители» — туда относятся все: и менеджмент, и проектировщики, и конструкторы, и архитекторы, и укладчики кирпича, и разнорабочие на стройке, и даже инвесторы и держатели акций строительных компаний. Просто автор оригинальной статьи — сам «девелопер», то есть один из винтиков, принимающих участие в сложном процессе создания программного обеспечения, поэтому возникает ложное ощущение, что речь идет о профессии «программист». А тут скорее о падении качества софта в целом, а не о том, что именно программер на фирме виноват в этом.


                1. SuperNovaWS
                  07.05.2016 02:48
                  +1

                  Вот не надо, пожалуйста, обобщенных понятий. Автор себя отпозиционировал как «Девелопера». Не как сисадмина. Не как техсуппорта. Не как девопса. Не как менеджера ИТ-компании. Как «Девелопера». Соответственно — и спрос с него, как с девелопера. Т.е. он как минимум должен понимать разницу между «девелопером» — сиречь «программистом» — и остальными звеньями цепочки.

                  Иначе в угаре обощений можно докатиться до того, что «Сгорел утюг? Так эта Ванятка из второго подъезда виноват — вечно он чё-то с компутерами мутит!».

                  Соответственно тогда и накал статьи… того — поутухнет. Потому что ВДРУГ окажется, что виноваты-то по большей части не девелоперы, а… см. https://habrahabr.ru/company/ua-hosting/blog/283022/#comment_8882704

                  А про ложное ощущение вины Ванятки из второго подъезда — это, пожалуйста, к бабкам у подъезда (при чем — не второго).


                  1. PHmaster
                    07.05.2016 12:27
                    +1

                    Какая разница, как он себя отпозиционировал? Рассуждает он вообще с точки зрения пользователя, он же не критикует собственный софт, который сам, как девелопер, разработал. Он позиционирует себя как девелопера, чтобы стало понятно, что он разбирается в вещах, о которых пишет. Он вроде и «по эту сторону баррикад», но «вышел прогуляться на ту», окинуть взглядом общую картину. А обобщение про Ванятку как раз и получилось: раз ты, чувак, девелопер, — то значит винишь во всем девелоперов, поэтому виноваты программисты. Странный вывод. Еще раз аналогия про строителей: если бы кирпичеукладчик Ваня написал статью, что здания нынче не те пошли — это бы не значило автоматом, что Ваня обвиняет в этом всех кирпичеукладчиков.


  1. awMinor
    05.05.2016 16:56
    +14

    В целом согласен со статьей и сам принадлежу к тем разработчикам кто выкатывает не протестированные и баженные решения. И я вижу две причины почему это происходит:

    1. Низкий порог вхождения в программирование. Сейчас стало очень много программистов, научится программированию по курсам (с++ за 21 день) и пойти работать за копейки. Рынок сейчас такой, что есть много программистов у которых мало опыта, но стоят они дешево.
    2. Заказчика не волнует качество, важно быстрее чем конкурент и скорее начать грести деньги. Началась эра стартапов, а в стартапе делается MVP выкатывается, собираются фидбэки и дальше делается. Либо стартап сразу продается. Короче как можно грести деньги.

    Реалии такие, что даже компании сейчас работают по принципу как всегда работал фриланс. Решение нужно вчера. А ещё достаточно часто встречается, что на вчера нужно не один, а два или три проекта. И разработчик уже начинает разрыватся между ними, потому как вроде и домой хочется (да можно было бы уволится с такой работы, но эта проблема возникает во многих фирмах). Ну и бонусом ко всему этому стало не модно держать отдел разработки в штате. Зачем? На саппорт можно посадить индусов, а разработчиков тоже можно взять где нибудь по дешевле в удаленной фирме. Тот же HipChat для Atlassian разрабатывают на Украине аутсорс компания.

    UPD: Да и стоит признать, что работа программиста перестала быть фаном когда хотели сделать как можно лучше и круче. Теперь это просто работа от звонка до звонка. Поработать дольше? Мне за это не платят. Так что не буду. В этом проблема.


    1. MikeLP
      05.05.2016 19:10
      +7

      Еще одна из причин — время на разработку. Обычно все скатывается в

      Ну а че, чего так много часов. Тут же работы на 5 минут. Ты ж опытный программист. Здесь не должно возникнуть никаких проблем.

      Ага… щас…

      Или когда вы работаете в команде с человеком, который за многие годы привык использовать какой-нибудь устаревший инструмент или подход и не собирается его менять.
      Например вместо того, чтобы использовать миграции — продолжает по старинке писать вручную sql файлики. И конечно же в самый неподходящий момент поле которое было такое малюсенькое, незаметненькое, пропадает и бац — то что видит автор.

      Или человеку лень потратить 5 минут на настройку дебаггера, только потому что просто привык делать var_dump, console.log, print, println по всему проекту…


      1. AlanDenton
        05.05.2016 19:13

        чтобы использовать миграции — продолжает по старинке писать вручную sql файлики

        Вы имеете ввиду миграции в рамках EF? Или какие-то другие?


        1. mayorovp
          06.05.2016 08:54
          +1

          Можно использовать любую систему управления схемой БД. Тот же FluentMigrator, если стандартные миграции EF не нравятся. Или что-нибудь самописное, если в используемом языке нет подобного инструмента.

          Суть в том, что должен быть способ убедиться, что используемая БД — «свежая» не дожидаясь пока ошибка вывалится в самом неожиданном месте.


      1. nemesis1980
        06.05.2016 08:06
        -1

        В точку!


    1. Antervis
      06.05.2016 08:06

      со временем менеджеры поймут, что как девять женщин не родят ребенка за месяц, так и не получится сэкономить на программистах, «освоивших с++ за 21 день». Что рефакторинг может быть экономически обоснован, и чтобы «добавить фичу А» может потребоваться в 20 раз больше времени, чем на «добавить фичу Б», даже если они формулируются похожим образом.


  1. duzorg
    05.05.2016 16:57
    +17

    Я понимаю, что мы принадлежим к молодой и еще неопытной сфере производства, что нам не хватает квалифицированных разработчиков для того, чтобы все делать правильно, но в последнее время возникает чувство, что мы даже и не пытаемся.
    К сожалению, это проблема существует не только в «нашей» сфере.
    • Я вот в прошлом году сделал капитальный ремонт двигателя, и поехал отдыхать на Горный Алтай. На обратном пути прожгло один из клапанов, из-за того, что его плохо притерли, в итоге возвращался домой с «троящим» двигателем.
    • Кто-то менял трубы отопления, плохо проварили и при нормальной подаче отопления затопили соседей.
    • На Автовазе двери для «классики» делают разных размеров. Покупаешь новую дверь, а она на сантиметр длиннее/короче.


    «Не мы такие — жизнь такая...»


  1. napa3um
    05.05.2016 17:00
    +8

    «Кремниевая долина», сезон 3 серия 2 — как раз про маркетологов, бегущих вперёд разработки, и об экономическом пузыре, который заставляет их это делать.


    1. ainu
      06.05.2016 11:05
      +2

      «Наш продукт — это не алгоритм, не инфраструктура, и не сервис. Наш продукт — это наши акции.»


      1. aezhko
        06.05.2016 11:21

        Но постойте, может быть, наш продукт — это я?..


    1. smartello
      06.05.2016 16:55

      Великолепная серия, которая показывает всю суть отрасли, при этом показывая мотивацию сторон.


  1. maxzh83
    05.05.2016 17:06
    +5

    Ошибки были есть и будут всегда. В современном мире, все ускоряется и неудивительно, что не все справляются с таким ритмом. И тут проблема не только в том, что разработчики обленились, но и в том, какие им ставят задачи. Если ставится задача «выпустить завтра во что бы то ни стало», то с большой вероятностью, получим один из примеров в посте. В любом случае, стоит рассматривать проблему более комплексно.


    1. Pakos
      06.05.2016 15:18
      +1

      Да, «сделать „хоть что-то“ за 3 дня вместо 2х недель, иначе конкурентысожрутпаникапаника», а потом вместо 2х недель тратится месяц чтобы это работало более-менее и было совместимо с тем, что сделано за 3 дня и уже запущено.


      1. SuperNovaWS
        07.05.2016 00:53

        Я тоже хочу жить в стране Программии! Где у программистов есть ровно столько времени, сколько нужно, что бы написать красивый, быстрый, логичный, рабочий код да еще и покрыть его юнит-тестами. И где за всё это программистам платят такую зарплату, что им хватает на всё, чего бы они не захотели.

        Но, увы — я живу в реальном, жестоком мире, где у меня есть сроки и ТММ надо мной. Я стараюсь изо всех своих программерских сил, что бы у меня получался красивый, быстрый, читабельный и безбажный код. Но если не успеваю — пишу так, что бы код как минимум не глючил. Всё остальное — опции.

        В противном случае я, конечно, могу писать код любой красоты и охрененности — но платить мне за это не будут. И как-то на горизонте не видеать миграционных агентов из страны Программляндии…


    1. FlameStorm
      10.05.2016 22:16

      Ошибки в системах типа «Периметр»…


  1. vovochkin
    05.05.2016 17:07
    +6

    Сразу вспомнилась целая книга — "Софт — отстой! И что с этим делать?".
    И как я в процессе написании рецензии на эту книгу увидел чудное сообщение 7-zipa:

    Посмотреть картинку
    image


  1. kamilgarey
    05.05.2016 17:08
    +10

    Автору-то, прямая дорога в тестировщики.


    1. Jef239
      06.05.2016 08:06
      +2

      Автор уже тестер. Причем приличный. Карма у тестеров такая — есть ли в тексте размером на страницу есть опечатка — то глаз прежде всего зацепится зап неё. И в реальной жизни тестеры чаше в разные ситуации попадают. Особенно гадостно это с банкоматами — то карту съедят, то деньги… :-)) Ну что поделать, скил такой — вляпываться в ошибки.


      1. Wesha
        06.05.2016 08:31
        +24

        Первым кандидатом оказалась симпатичная девушка в джинсах и свитере. Я пропустил мимо ушей ее резюме, обратив внимание лишь на упоминание какого-то сертификата Quality Assurance Engineer. Во время собеседования девушка вела себя довольно-таки уверенно, то и дело поминала Transition Phase, CMM, ISO9000 и трехлетний опыт работы. Все это время я смотрел в окно и думал о том, что сидеть она будет в комнате через коридор, и что я не смогу использовать обычный лексикон при объяснении тонких моментов тест-плана.

        Вторым был парень-студент, во взгляде которого читалась острейшая нужда в денежных средствах. На этот раз я принял участие в собеседовании и узнал, что он – гениальный программист и веб-дизайнер, что у него даже есть свой сайт, и что он сейчас пишет IDE для PHP на MAC. Я бы выяснил, почему он предпочитает MAC, но поймал взгляд технического директора и свернул беседу.

        После ухода кандидатов мы несколько минут поспорили о проблемах девушек в чисто мужских коллективах и проблемах излишней амбициозности читателей журнала ксакеп, и сошлись на том, что «теперь хоть матов будет меньше», — девушка была очевидным выбором. Мы уже направились к выходу, когда у технического зазвонил мобильник. Обменявшись парой реплик со своим собеседником, технический зажал микрофон рукой и шепотом известил нас о том, что у входа в офис ждет еще один кандидат. Мы переглянулись. Решение было уже принято, но как-то неудобно было давать от ворот поворот человеку, не поленившемуся притащиться к нам на окраину. Технический велел охране впустить, и мы вернулись в конференц-зал.

        Третий кандидат выглядел немного моложе моих лет. Улыбнувшись, он представился и сел в кресло, бросив папку на стол. Маркетинговый директор порылся у себя в бумагах и спросил:

        — Извините, я что-то не вижу вашего резюме. Вы не присылали его нам?

        — Присылал, — ответил кандидат, с интересом оглядываясь вокруг, — Но у вас почтовый сервер глючит.

        Это было не очень хорошее начало. Мы все-таки IT-компания, и достаточно тщательно следим за тем, чтобы у нас все работало. Если у него нет резюме – пусть так и скажет и не тратит наше время. Технический директор с некоторой даже обидой спросил:

        — Может быть, проблема все же не в сервере? Со связью что-нибудь, или почтовый клиент не сработал? Вы, кстати, не с мейл.ру отправляли?

        — Нет, — ответил кандидат, продолжая оглядываться. Его внимание привлекла настольная лампа. Щелкнув пару раз выключателем, он сказал: «Смотрите-ка!» – и полез под стол. Лампа вспыхнула и перегорела. Кандидат вылез из-под стола и продолжил:

        — Если оставить выключатель в промежуточном положении, а потом включить шнур в розетку, лампа перегорит!

        — Спасибо. Может быть, вы принесли резюме с собой? — поинтересовался я.

        — Да, конечно, вот оно, — он подал лист А4, — а вот это — распечатка ответа вашего почтового сервера, — он подал еще один лист.

        Сисадмин с интересом взял его из моих рук и пробежал глазами:

        — Но!.. А как?.. Странно… Я сейчас! — с этими словами он почти выбежал из комнаты.

        Директора тем временем изучали резюме. Я смотрел на кандидата. Он повернулся назад, и что-то настраивал в кресле. Это было обычное пятилапое офисное чудовище на колесиках, распространитель сколиоза и отложения солей. Наконец в кресле что-то щелкнуло, и потенциальный тестер оказался на полу. Это, казалось, ничуть его не расстроило:

        — Я так и знал! Дефект в системе регулировки пневматического амортизатора. Если отогнуть ручку вверх, а потом вбок…

        — Принеси ему стул, — попросил меня технический директор, и я вышел из комнаты.

        В коридоре я встретил сисадмина. На его лице было такое выражение, как если бы он обнаружил пиво в одной из бутылей для кулера.

        — Что там с почтовиком? — спросил я.

        — Ты будешь смеяться. В его письме MIME-boundary нарушает RFC 2046. Ничего страшного, но наш сервер падает при приеме такого текста! Измени хотя бы один символ – все пройдет нормально. Я посмотрел в логи – сервер падал четыре раза в понедельник. Судя по всему, именно из-за этого товарища.

        Вернувшись, мы застали технического директора за попытками задвинуть жалюзи. Кандидат увлеченно объяснял, каким именно способом он сумел их заклинить. Маркетинговый директор смотрел на него уже почти с ненавистью. За какие-то пять минут это чудо сумело сломать лампу, кресло, жалюзи и продемонстировать багу в нашем почтовике.

        — А вот стол у вас хороший, основательный! — сказал кандидат. Как говорил Оззи Осборн, «я начал понимать, что приходит время прощаться».

        — Мы с вами свяжемся, до свидания.

        — Можно, я от вас позвоню? — спросил этот демон разрушения.

        — НЕТ! — ответил технический директор таким голосом, что кандидат мгновенно исчез.

        Налив себе еще немного кофе, мы обсудили результаты собеседования. Увы, девушка не прошла.

        Сертификат QA Engineer не заменит природного таланта — с таким парнем в команде нам просто не удастся сдать софт, если в нем будет хотя бы один баг.

        Завтра пятница, значит – знакомство с новым членом коллектива. Пиво и бильярд в Потерянном Кластере. Пожалуй, я лучше пойду в Пива.NET — пусть попса, но мало ли что он захочет протестировать в баре...


  1. Klaster
    05.05.2016 17:08
    +2

    Статья конечно подборка мелких багов из серии — «Гавно случается» и реагировать как автор наверно глупо. Сказать, что тут всегда виноваты разработчики нельзя, как нельзя сказать и обратное, что они тут не при чем. Наверно 50 на 50. Проблемы точно есть, но когда их не было? Это просто старческое брюзжание «Вот все стало хуже, вот в наше время!!!»


    1. AlexanderG
      06.05.2016 10:04
      +3

      С другой стороны, когда «говно случается» на каждом шагу, при выполнении почти любого действия (причем в рамках нормального потока работы с системой), невольно начинают появляться мысли о том, что в консерватории все-таки что-то не так.


      1. Klaster
        06.05.2016 15:14

        Но в статье речь не об этом. В статье придирки к каждой мелочи, было бы если так: Зашел на сайт асус — тут баг, нажал сюда — ошибка 500, запросил пароль — не пришло письмо, то есть на каждом шагу и везде, в рамках определенного проекта, это был бы разговор. А так… вокруг автора каждую секунду выполняются миллионы строк иногда очень сложного кода и вот он поймал несколько багов в разное время, в разных проектах, о да бида, бида мы все умрем, какой кошмар. Но самая прелесть, что начинается все со слов, «да я тоже делаю ошибки». Видимо те ошибки на которые он напоролся у других разработчиков от лени, а его ошибки это совершенно другой случай и поэтому его не бесят.


  1. maxru
    05.05.2016 17:19

    Автор в целом не понимает разницу между сисадминами, разработчиками и product owner's, потому что вышеописанные проблемы — это смесь ошибок из всех трёх областей (а на первом скриншоте — «перебдели» + контент-менеджер был не в курсе экранирования заголовков, т.е. тут вообще комплексная проблема)


    1. mayorovp
      06.05.2016 09:08
      +1

      Вот как раз там системная проблема именно у разработчиков — нет правильного подхода к экранированию, экранирование делается по принципу «на всякий случай, чтобы ничего не случилось».

      Для сравнения: в движке Razor из ASP.NET MVC экранирование делается при вставке строк в текст. Любая строка будет экранирована автоматически — и ровно один раз. Поэтому на ASP.NET MVC никто не занимается экранированием входных строк «на всякий случай».

      Нормальные библиотеки для клиентской шаблонизации вообще работают напрямую с DOM, пропуская фазы формирования разметки и последующего разбора этой разметки браузером. Там тоже не надо ничего экранировать.

      Или, скажем, json-сериализация: формально там тоже присутствует экранирование спецсимволов в строковых константах. Но все нормальные сериализаторы делают его самостоятельно.


  1. geekmetwice
    05.05.2016 17:23
    +9

    В нашей отрасли стало слишком много «индусов» (в прямом и переносном смысле, но больше — в прямом). Двухнедельные курсы «С++ для идиотов» уже повод писать о себе «сеньор» (высшая квалификация программиста). Отдел кадров занимается наймом программистов, при этом не отличая IE от Интернета. Компании не только выкатывают нетестированный софт, но даже самих тестеров не имеют в штате. Так чему удивляться-то?

    Тут в пору создавать стартап «пенсионер Козлов», занимающийся тем, что заваливает саппорты нерадивых компаний сообщениями. Штук так по тысяче в день. Глядишь — уволят пару клоунов из менеджмента и начнут думать о качестве!


    1. maxru
      05.05.2016 17:39

      Да у нас и рынка тестеров нет по большему счёту (если откинуть ручных, с которыми ситуация чуть лучше)


    1. duzorg
      05.05.2016 18:52

      Да какие там тестировщики. У нас сайт администрации весь сплошником в багах. Там буквально ничего не работает… Работают по-моему только ссылки на другие сайты ))… С 2014 года на него вообще забили… Почту никто не читает, а форма «обратиться к главе» при посте также выкидывает ошибку :) Зато доменов 3 штуки и уверен денег было с бюджета смыто не мало…
      http://admnkz.info/
      Уж думал было пройтись вручную по ошибочкам, но только непонятно куда их дальше девать… Больше всего печалит, что реально нужна некоторая информация с данного сайта ((…


    1. maydjin
      06.05.2016 00:50

      слишком много «индусов» (в прямом и переносном смысле, но больше — в прямом).

      А можно раскрыть суть обоих смыслов? Ибо лично у меня складывается впечатление, что после событий с курсом рубля, как минимум Россияне и есть те самые «индусы», тогда, как те же Индусы уже давно отдают кучу софта (и не только) на аутсорс.

      Как минимум, я наблюдал не кислый приток проектов (сам работаю в аутсорсинговой конторе), после вышеозначенных изменений на мировом валютном рынке.

      Я уже молчу про то, что свежие выпускники, довольно крутых ранее, факультетов самых крутых заведений в моём городе, унылые клоуны по сравнению с американской и японской школотой тусующейся на гитхабе. Не все конечно, но субьективно и смотря на инженеров урождённых в ссср, инженерией во многих случаях даже и не пахнет люди «что то делают и оно как то работает». Метод научного тыка через гугл и so.


      1. Fedcomp
        06.05.2016 12:44

        Вы хотите сказать что нет тех самых американских индусов и все сразу кодят правильно и на гитхабе сидят? дело в том что вы видите только их. Тех кто обладает плохой квалификацией как правило на том гитхабе и нет, от чего у вас и создается ложное впечатление. На том же SO часто как раз пишут ПОЧЕМУ это не работает и как поправить.


  1. Orion
    05.05.2016 17:32
    +7

    Проблема не в том, что в отрасли много индусов и идиотов, а то, что и с индусами и с идиотами кадров все равно мало.


  1. kaljan
    05.05.2016 17:39

    Судя по всему, проблема системная, недавно были статьи, человек пытался создать веб-приложение, у него это не удалось, до этого была статья «Ничего не работает. но всем все пофигу», и что делать с этим — совершенно неясно. Перевод ведь из Америки, но статья актуальна и для Евразии


    1. Enam
      05.05.2016 18:21

      Судя по тексту, перевод из Англии.


  1. megaalli66
    05.05.2016 17:49
    +8

    Есть проекты, которые стабильны и достаточно надежны и это является их мощным преимуществом, которое позволяет им зарабатывать хорошие деньги. Один из таких примеров — Sqlite. На мой взгляд достаточно интересный случай, когда без привлечения маркетологов, пиарщиков и рекламы(возможно и была, не находил), проект приносит хорошие и стабильные деньги.

    Многие в свое ПО засовывают кучу того, чего вам не нужно(кто помнит древние версии Nero, а?). А сейчас, чуть ли не в блокнот засунут вебкит, чтобы в случае чего, показать вам, как будет выглядеть ваш текст в блокноте в записи на вашей страничке социальной сети, доступ к которой потребуется вам для нормальной работы блокнота…

    К сожалению многие забывают принцип, что «программа должна делать что-то одно, но делать хорошо». И еще к большему сожалению, это не нужно широкой массе потребителей.


    1. Seekeer
      06.05.2016 09:32
      +1

      >проект приносит хорошие и стабильные деньги.
      Он же бесплатен. Каким образом его монетизируют?


      1. megaalli66
        06.05.2016 14:17

        1. На поддержке. И клиентов у них немало.
        Sqlite параноидально покрыт тестами. На разных платформах, системах, архитектурах, причем даже экзотических. В промышленном оборудовании. Банальный список https://www.sqlite.org/famous.html — клиенты из этого списка не обломаются заплатить большие деньги за надежность. Особенно если sqlite используется в критически важных местах. Понятно что тут немного клиентов, а самые «на слуху» у всех.
        Не забываем, что sqlite — это хранилище информации. И потеря этой информации может иметь очень серьезные последствия. Это и объясняет, почему они так парятся за надежность. Да и цены не такие страшные для такого уровня ответственности — http://www.hwaci.com/sw/sqlite/prosupport.html

        2. на спонсорстве с участием в консоциуме. https://www.sqlite.org/consortium.html
        3. «крипторешения». http://www.hwaci.com/sw/sqlite/prosupport.html

        Для всего этого, разработчиками(а конкретно Ричардом Хиппом) была создана компания Hwaci.

        Вообще достаточно зайти на sqlite.org — там полно информации.


    1. AlexanderG
      06.05.2016 10:06
      +5

      А сейчас, чуть ли не в блокнот засунут вебкит

      atom.io, лол.


      1. Orky
        06.05.2016 16:47

        Komodo IDE/Edit работает на движке фаерфокса (


        1. megaalli66
          06.05.2016 18:43

          Меня к сожалению не правильно поняли. То что используется монструозный движок — еще ладно, обосновать это вполне возможно.

          Представим ситуацию(далее Р — разработчики, М — оказывающий влияние на разработчика менеджер)
          Разработчики пилят свой блокнотик, вроде бы всем все нравится, везде пони и ромашки.

          М: Нужно вчера добавить в нашу незаменимую программу новый функционал, чтобы во вконтакте на стене отображался текст с блокнотика.
          Р: Нафиг?
          М: Премия лишняя?
          Р: Ясно.

          Р: Добавляется работа с сокетами, криптографией(https ведь). Ну и т.к. времени немного, для работы с json, поставим библиотеку libsuperjson. Правда она работает на регулярниках, поэтому поставим еще libultrapcre.
          М: Ничего страшного, компы дешевые, для нашего незаменимого блокнотика доступно много ядер. Видеокарты вон все стали использовать.

          Прошло пару дней.
          М: Ребята, жизненно необходим для моей прем… для нас, чтобы можно было наблюдать за комментариями на наш текст из блокнотика, модерировать их, ну и отвечать.
          Р: Нафиг?
          М: Летний отпуск лишний?
          Р: Ясно.

          Р: Добавили в наш проект bhromium. Прошлые библиотеки приходится оставить, т.к. добавляли в спешке и никто не понимает, что там за бурда.
          М: Замечательно! Можно считать, мы в продукте используем проверенные решения! Отличная реклама.

          Прошло еще немного дней.
          М: Ребята, спасибо вам искреннее за ваши старания. Благодаря им я получил свой процент с продаж. Жаль, что вы премию не заслужили. Но у вас выпал шанс! Крайне нужно добавить в наш блокнотик, чтобы рядом с текстом отображался аватар пользователя, причем в 3Д. Ну а т.к. наш клиент хочет играться с ним, надо добавить возможность катать этот аватар на виртуальной гоночной машинке по трассам, с чемпионатами и статистикой.
          Р: Что за #$^&^% !?
          М: Так требуют наши потенциальные будущие, в большом количестве, покупатели.
          Р: Какие-какие покупатели?
          М: Те, которые нам гарантирует инновационная Нигорийская система продаж, методологии которой непобедимы и в семинары которой мы уже вложили ваши премии и разумеется ждем от вас результата.
          Р: Какого конкретного результата?
          М: Денег конечно. И вообще у вас ипотеки, блестящие карьеры технического директора нашей будущей наверное корпорации, не портите её. Да и нашим инвесторам я обещал показать через три часа.
          Р: А Тех. задание, письменное согласование?
          М: О да, спасибо. В туалете бумаги нет, пригодилось. Короче жду через два часа.
          Р: #:?*%?%#
          Р: Интегрировали Ubity3D, систему обновлений, интеграцию с 1Ж(на всякий случай). Правда не знаем, работает это или нет.
          М: Отлично? Вы суперспециалисты. И продукт супер. Осталось всего ничего до идеала. Мы уже пустили пару миллионов рекламу, где предупредили о релизе аналогичной мобильной версии.
          Р: А нас почему не предупредили?
          М: А вы сами почему не догадались? Утром будем презентовать… Ребята, в общем времени у вас полно… ребята… ребята вы куда? Эх жаль… Ладно наймем новых. Напишем как у всех, что мы супер блокнотико-стартап, перспективы развития, крайне адекватные сроки и большая зарплата. В общем РАЙ.


          1. Orky
            06.05.2016 22:03

            Ирония в оригинальном комментарии была легко считываема )
            Но самая большая проблема, что даже описанная в этом комментарии ситуация — стандартная ситуация.
            Я с грустью смотрю на современные веб-сайты и на старенький .kkrieger


  1. schetilin
    05.05.2016 17:50
    +7

    Основная причина — отсутствие ответственности. Прочитайте любое лицензионное соглашение к софту, половина его будет посвящена тому, что компания не несет ответственности за глюки. Когда такое заявляется в бесплатной программе, это понятно «Делал для себя, но решил поделиться с народом. Осторожно могут быть глюки». Но когда за программу требуют деньги, а в соглашении написано «вроде работает, но мы ничего не гарантируем», это напрягает.


    1. owniumo
      06.05.2016 12:10
      +1

      Рынок же.
      Софт, обложенный слоями сертификаций тоже существует.
      В медицине, авиации и пр. Порядки цен совсем другие.


      1. Areso
        06.05.2016 20:31

        Сертификация сертификации рознь. В банковской сфере сертификация может еще ничего не значить. Будут треш и угар и глупые ошибки, но и бумажка о сертификации тоже будет. Ровно как и ответ — мы сертифицированы имя_бумажки, значит у нас все хорошо. Ваше обращение автоматически закрыто.
        Тоже самое встречалось и в промышленности. Бумажки есть — качества нет.


        1. SuperNovaWS
          07.05.2016 00:59

          Если сертифицированная программа не удовлетворяет неким критериям качества — это почти ничего не говорит о качестве программы, а говорит лишь о низком качестве процесса сертификации, который не включает основные критерии качества.


          1. encyclopedist
            11.05.2016 15:37

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


            1. Saffron
              11.05.2016 17:04
              +2

              Фольцваген замечательно продемонстрировал эту методологию.


              1. khim
                12.05.2016 15:34

                Фольцваген как раз о другом парился: ему и сертификацию пройти хотелось и то, что пользователей волнует (потребление топлива) сделать хорошо хотел.

                То есть нельзя сказать, что он про «делать хорошо» забыл. Он просто «и нашим и вашим» одновременно угодить не сумел…


  1. kroshanin
    05.05.2016 17:52
    -2

    Я наверное вновь буду «белой вороной», но все же выскажу мнение, что между скоростью и качеством выбирать лучше все-таки первое. Мир ускоряется, и сейчас реалии таковы, что основным фактором является вовсе не качество, и даже не стоимость, а именно время разработки.
    Для заказчика лучше иметь хоть какую-нибудь, пусть сырую и с багами, но работающую систему/проект сегодня, нежели красивенькую и стабильную, но не пойми когда в будущем. Особенно это характерно для стартапов, когда еще совершенно неясно «работающая» у вас идея или ерунда полнейшая.
    Хотя, признаюсь честно, когда в штате есть свой тестировщик работать одно удовольствие.


    1. Artistarc
      05.05.2016 19:17
      +2

      Очень и очень неоднозначный выбор. Если компания работает в условиях конкуренции, то лучше ставить на качество потому что все фичи, которые вы пытаетесь так быстро запилить уже есть у кого-то. Возможно, эти фичи уже даже работают лучше(или просто работают).
      Если компания — стартап, то ставить на быстрый выпуск дешевого и не очень качественного продука тоже не очень: подтянутся конкуренты, потратят чуть больше времени и отобьют у вас людей. К тому же, что делать после спада «хайпа»? Продукт-то кривой.


    1. ZXSi
      05.05.2016 19:48
      +2

      Это можно несколько перефразировать. Разрабатывать бажный и сырой софт легально? Легально. Есть люди, готовые разрабатывать такой софт? Есть. А есть люди готовые за это заплатить? Тоже есть. Добавим сюда тенденцию к ухудшению качества. Можно делать смелое заявление, что сейчас как никогда востребованы проекты написанные быстро и некачественно, и этот спрос продолжает расти. Потребителей устраивает такое качество и они готовы за это платить. То есть всех всё устраивает, отрасль развивается, всё хорошо.


    1. AdeptMech
      06.05.2016 10:29

      Делать быстро (выпускать раньше) и делать говно — это о разном.


      1. khim
        06.05.2016 14:05

        Не совсем так. Вы правы в том смысле что возможны не две коммбинации, а три (можно делать говно — и делать его долго).

        К сожалению комбинация «сделать быстро и хорошо» в реальном мире не реализуется — и об этом, собственно, kroshanin и пишет.


    1. vlivyur
      06.05.2016 11:22
      +1

      между скоростью и качеством выбирать лучше все-таки первое
      Это ко всему относится? Ремень безопасности? Автомобиль? Самолёт? А если не ко всему, то с чего б для ПО такие привилегии? AutoCAD'у или SolidWorks'у тоже можно делать ошибки?


      1. Rasifiel
        06.05.2016 13:19

        Можно. Главное посчитать ожидаемый ущерб и затраты чтобы ущерба избежать и сравнить.


      1. khim
        06.05.2016 14:14

        Это ко всему относится?
        Да, разумеется.

        Ремень безопасности?
        Изобретён в XIX веке, начал появляться в автомобилях в 60е, обязателен к применению с 70х-80х годов прошлого века.

        Автомобиль? Самолёт?
        Что конкретно вы имеете в виду? Первые автомобили и самолёты таки напоминали по многим показателям современные сайты — и по степени удобства и по надёжности. Или вы о чём-то другом?

        AutoCAD'у или SolidWorks'у тоже можно делать ошибки?
        Нельзя — но ведь они их делают. Историю о CATIA слышали? Имею в виду одну попытку перейти версии 4 на версию 5


        1. vlivyur
          06.05.2016 16:15

          Вопрос был про что выбираем, быстро (выбирать лучше всё-таки первое) сделанный ремень (автомобиль, самолёт) или качественный.


          1. khim
            06.05.2016 16:52

            А стоит ли так вопрос? Обычно вопрос стоит: выбираем ли мы уже продающийся самолёт — или ждём пока доделают «самолёт мечты».

            И выбор — весьма часто оказывается в пользу уже существующего самолёта. А вот когда у вас уже есть куча заказчиков и нормальное поступление денег от них — можно и на Dreamliner замахнуться.


    1. kasperos
      06.05.2016 15:52
      +2

      «Билл, перелогинся».

      В свое время в книжном, проходя в компьютерный отдел мимо полок «мысли выдающихся людей», зацепился за фейс Билла Гейтса на обложке.
      Книжка оказалась его, не помню точно названия но что-то про «как развить свой бизнес». Открыв наугад попал на его слова: «если у вас стоит выбор доработать продукт до отличного качества или выпустить сырую версию с ошибками, выбирайте второе, это позволит вам начать завоевывать клиента пока на рынке еще нет других предложений, а в процессе вы доработаете свой продукт заодно получая деньги» (цитирую на память, особо не зубрил но смыл примерно передан, у кого есть книжка в наличии исправьте меня).
      Так вот, беда в том, что некоторые не занимаются особо доработкой и исправлениями, ведь «поток» уже пошел, и уж если тендер «выигран» то конкурентов не будет.


      1. SuperNovaWS
        07.05.2016 01:14
        +1

        Так БГ — не программист. БГ — менеджер. И даёт советы с точки зрения менеджера.


        1. khim
          07.05.2016 12:31
          -1

          Билл — таки именно программист. И программы он писал, по слухам, чуть не до самого ухода.

          Вот когда во главе стал менеджер — Microsoft полетел под откос (сатья этот процесс приостановил, и, похоже, сможет и весь Microsoft развернуть).

          Это, кстати, типичная история: приход менеджеров, как правило, обозначает что «скоро у компании будут проблемы».

          Не всегда, впрочем: классический пример — Лу Герстнер, «человек, который спас IBM» — при этом мало что понимая в IT.


  1. Pilat
    05.05.2016 18:04
    +7

    Есть другой взгляд на проблему.
    Посмотрим на рынок одежды. Есть ширпотреб, он покрывает 99% потребностей. Ширпотреб дешёвый, качество низкое но населению хватает.
    Есть просто качественная одежда, цена в разы выше. Вроде разница небольшая — ткань покрепче, швы поровнее… Но цена не на 10% поднимается а в разы.

    Почему же в программировании должно быть иначе? Мы и видим результат.

    Чтобы улучшить продукт, надо нанять тестера. Чтобы этот тестер нашёл проблемы, он должен быть и программистом, и администратором, и пользователем высокого уровня. Таких мало и они дорогие. Но такой найдёт 1% ошибок. Зачем тратить в разы больше на поиск одного процента, чем остальных 99%? Чтобы работало оборудование, анализировались логи, надо нанять штат администраторов, которые круглые сутки следят и готовы исправлять. Чтобы исправлять программистские ошибки, нужны круглосуточно работающие программисты. И так далее. Идёт гонка за удешевлением.

    Не при чём ни ответственность, ни квалификация программистов. Дело в деньгах. Если делать качественно, это будет неконкурентно, так как 99% заказчикам нужен именно ширпотреб.


    1. avalak
      06.05.2016 00:50
      -2

      Забавно. Когда айтишники приводят аргументы в защиту «пиратства» они аппелируют к тому что это не кража, так как происходит копирование и оригинал никуда не исчезает (как было бы в случае с булкой хлеба или одеждой).

      Так вот тут те же яйца, только в профиль. Произвести одежду (пусть даже ширпотреб) трудозатратно и ресурсоёмко, а вот писать софт — нет (программисту же не нужно создать миллион экземпляров приложения, достаточно всего одной). Про дорогое оборудование речи вообще нет — достаточно ноутбука). Готовых фреймворков и библиотек — тьма тьмущая на все случаи жизни (это не большое преувеличение).

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

      Если Дядюшка Ляо шьёт «абибас» в подвале, то он просто дядюшка Ляо который шъёт ширпотреб, а вот если «Рога и Копыта Soft» делают ширпотреб, то они почему-то IT-компания с CEO, менеджерами, сеньёрами-программистами, тестировщиками и наполеоновскими планами потеснить Google.

      Очнитесь, вы не интеллектуальная элита и надежда человечества. Просто наёмные рабочие в модной нынче сфере (с хорошей раздутой зарплатой) которые пытаются оправдать низкое качество продукта любыми средствами.

      Проблема именно в некомпетентных ленивых погроммистах и «эффективных» менеджерах которых по хорошему нужно ссаными тряпками гнать из профессии. Есть ведь множество примеров великолепных приложений которые создаются на энтузиазме (без сотен денег) и своими силами (без толпы страхующих).


      1. Rasifiel
        06.05.2016 01:25
        +2

        А есть еще больше множество приложений которые не создаются, проваливают процесс разработки, бросаются и т.д. и т.п.


      1. 0xd34df00d
        06.05.2016 01:34
        +4

        Я пишу софт, который требует ядер так штук 20-40, да памяти гигабайт под сто. Какого ноутбука будет достаточно?

        В этом софте есть алгоритмы, часть из которых пишется по статьям 2015 и 2016 года, а по части которых можно писать статьи. Какие библиотеки и фреймворки мне использовать?

        А вообще дело в том, что кроме стоимости ресурсов вроде компьютеров есть стоимость человеческой силы. И рынок решает, сколько зарплаты платить.


        1. avalak
          06.05.2016 02:40
          -3

          Я вполне уверен что для написания этого кода ядер так 20-40 и памяти под сто гагабайт не требуется (несмотря на всё растущие аппетиты софта), так что любого ноутбука будет достаточно (в теории), ну или средненького для вполне комфортной разработки, ну или любого согласно Вашим представлениям об удобстве и доступным средствам.

          Где этот софт будет выполняться — другой вопрос.

          >> это не большое преувеличение
          > Какие библиотеки и фреймворки мне использовать?
          Я надеялся обойтись без явных уточнений, так как из контекста следовало что речь идёт о решении типовых задач. Вы ведь не будете спорить с тем что для решения типовых задач библиотек и фреймворков хватает с избытком?
          Разумеется, может статься так что готовых библиотек нет, но в таком случае речь, наверняка, идёт не о типовой задаче.

          > И рынок решает, сколько зарплаты платить.
          Рынок ничего не решает, это скорее крайне неточная оценка склонная к изменениям. Позавчера доткомы стоили миллионы и миллионы, а вчера обесценились. Изменилось ли что-нибудь качественно за ночь? Нет.
          Быть программистом стало стильно-модно-молодёжно и зарплаты начали пухнуть без веских причин (зато как в лучших домах Европы США. Вот уж где культ карго благоденствует). Если бы рабочие на заводе делали гвозди столь же качественные сколь надёжен средний софт в наши дни цивилизация бы уже развалилась. Ну или рабочих бы выгнали (что более вероятно).


          1. Rasifiel
            06.05.2016 03:03
            +5

            Рабочий на заводе не сталкивается с постоянными изменениями спецификаций и требований. Рабочий на заводе не должен придумывать как сделать что-то новое соответствующее текущим требованиям каждый день. Это скорее как строить летящий самолет.
            И программисты просто нужны всем в огромном количестве, поэтому и получают хорошие деньги. И те, что получают действительно хорошие деньги чем-то отличаются от остальных. Иначе бы у нас каждый стал программистом. Весь мир на всех уровнях (от простых пользователей, то гигантских корпораций) пользуется кучей информационных систем огромной (и растущей, потому что они все зависят друг от друга а систем больше и каждая сложнее) сложности с все растущими темпами развития.


            1. Wesha
              06.05.2016 03:37
              +3

              Рабочий на заводе не сталкивается с постоянными изменениями спецификаций и требований.

              @search: Программисты очень часто занимаются производством велосипедов, которые, возможно, полетят в космос, а, возможно, отправятся исследовать дно океана.


              Это скорее как строить летящий самолет.

              Забавно, что Вы не первый, кто эксплуатирует эту аналогию:



              1. Rasifiel
                06.05.2016 03:51

                Ну я ее с этого ролика и стянул. Как и все аналогии из реального мира она не соответствует действительности, но все же лучше чем аналогия с рабочим с завода.
                А насчет полетов в космос — я скорее не про создание универсального решения всего, а про возможность поменять метод решения/детали реализации быстро и с наименьшей болью (не выкидывая все на свалку), когда поменяются условия окружения, вскроются какие-то еще особенности работы или обнаружат фатальные недостатки в изначальном решении.


          1. 0xd34df00d
            06.05.2016 03:38
            +1

            Я вполне уверен что для написания этого кода ядер так 20-40 и памяти под сто гагабайт не требуется (несмотря на всё растущие аппетиты софта), так что любого ноутбука будет достаточно (в теории)

            А вы при разработке софт не запускаете, что ли?

            Я надеялся обойтись без явных уточнений, так как из контекста следовало что речь идёт о решении типовых задач.

            Если бы у вас вместо «вы не интеллектуальная элита и надежда человечества» было бы «большинство программистов» или вроде того, я бы не придрался. Так что нет, из контекста это было неочевидно.

            Изменилось ли что-нибудь качественно за ночь? Нет.

            Да. Изменились ожидания, опасения и прочие эмоции. Рынок — это такая штука, она из людей состоит, со всей их иррациональностью.

            Быть программистом стало стильно-модно-молодёжно и зарплаты начали пухнуть без веских причин

            Причины, наверное, всё-таки есть, деньги ж не на станке печатают.

            Если бы рабочие на заводе делали гвозди столь же качественные сколь надёжен средний софт в наши дни цивилизация бы уже развалилась.

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

            А программистов держат.


        1. warlock13
          06.05.2016 22:06
          +1

          А я пишу софт, которому достаточно 1 ядра и 1 гигабайта памяти. Но мне нужны: система контроля версий; система непрерывной интеграции; ферма, где всё будет собраться и тестироваться (не меньше чем в 5 конфигурациях). Это гораздо больше, чем один ноутбук. А ещё мне нужны в меру квалифицированные коллеги — не говнокодеры (говнокодеры тоже нужны, но меньше и их проще найти). Нужна хотя бы десятая часть менеджера, иначе мне будет некогда писать код. Нужны те. кто будет поддерживать работу багтрекера. И сам багтрекер должен где-то крутиться. И сайт. И те, кто будет делать и поддерживать сайт. И те, кто будет писать блоги и документацию. А чтобы делать реально качественный продукт (а не просто качественнее конкурентов) нужно раз так в 5 больше народа и ферма раз в десять помощнее (а если с гейтед-чекинами то и ещё больше).


      1. bingo347
        06.05.2016 03:04
        +2

        Готовых фреймворков и библиотек — тьма тьмущая на все случаи жизни (это не большое преувеличение).

        Как раз таки, на готовых фремворках и библиотеках «на все случаи жизни» и пишется ширпотреб. И проблема даже не в самих фреймворках…

        Недавно потребовался в команду фронтенд разработчик, больше половины собеседуемых, позиционировавших себя middle-разработчиками не могут что-то сделать за пределами ангуляра, очень многие не в состоянии сделать ajax запрос на нативном апи браузера (а зачем, подтянем jquery ради одного только ajax), многие не в состоянии написать deapClone (а зачем, есть underscore/lodash), с заданием напишите простейший переключатель как в примере без использования js не справился вообще никто.
        И это middle разработчики с опытом в фронтенде от 2х лет… Что они смогут написать?


        1. vintage
          06.05.2016 10:04
          +7

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


          1. bingo347
            06.05.2016 16:23
            -1

            Иногда заказчик хочет именно подобную фигню, и ему до лампочки на юзабилити, если возвращаться к теме статьи — то это еще одна проблема, которая есть…
            Ну а насчет задания, нужно было что-то, что можно было бы сделать быстро с одной стороны, с другой увидеть владеет ли кандидат css.
            А так согласен с Вами, неудобно


  1. olku
    05.05.2016 18:06
    +5

    В статье не хватает второго параметра для оценки приемлемого качества — денег.


    1. ragequit
      05.05.2016 18:07
      +8

      В защиту первоисточника хочется сказать, что у ESET и Microsoft уж точно есть деньги на тестировщиков, например.


      1. napa3um
        05.05.2016 19:11
        +9

        У них есть деньги потому, что они экономят время. «Копроэкономика» требует «лучше хуже, но раньше». Продают не продукты, продают акции компаний, которые «вот-вот сделают что-то грандиозное и качественное раньше других, поверь».


        1. ComradeAndrew
          05.05.2016 20:03
          +1

          Многие говорят, что сериал совсем не про айти, но там действительно дельные вещи показывают ;)


          1. napa3um
            05.05.2016 20:20

            Не на тот комментарий ответ, но да, согласен, «Силиконовая долина» — самая документальная комедия про IT-бизнес, гротескное описание «инновационной экономики», рынка венчурных инвестиций и стартапов. А учитывая, что это американское состояние дел, и на нас оно проецируется через ещё более ужасные призмы карго-культа и коррупционных схем, становится совсем грустно, а не смешно. «У нас очень много денег. Их просто вот совсем много. И именно поэтому у нас появилась возможность не просто ворочать большими деньгами, а еще и вложить их в нашу долгосрочную стратегию.»


      1. olku
        05.05.2016 20:51

        О, было бы здорово глянуть на бюждеты отделов тестирования различных продуктов этих компаний. Ну… раз Вы точно знаете.
        На первоистчник никто не нападал, статья — точка зрения инженера, а не бизнесмена, на которого он работает.


      1. Miraage
        05.05.2016 23:45

        И я более чем уверен, что у них огромные QA отделы.
        /shrug


      1. SuperNovaWS
        07.05.2016 01:22

        Вестимо, это должно заставлять ESET и Microsoft тестировать свои продукты на конфигурациях, которые составляют 0,0001% от их базы.

        И обязательно — включать всё возможное установленное ПО всех версий во всех конфигурациях, все возможные варианты поврежденной системы (понятно — всех версий со всеми возможными повреждениями всего существующего ПО во всех возможных конфигурациях).

        Фигли — деньги-то есть?


  1. Cyrus
    05.05.2016 18:19
    +3

    Могу судить за последние 10 лет — субъективно качество улучшилось. Повсеместное тестирование, осознание того что среда исполнения может быть любая, open source модули, которые у всех на виду, человекопонятные ошибки и все это с учетом многомиллионного масштабирования.


    1. AlexanderG
      06.05.2016 10:09

      В абсолютном отношении — бесспорно, но вместе с тем и значительно усложнились сами системы.


  1. sergyx
    05.05.2016 18:19
    +1

    Причем здесь разработчики? Если бы все зависело только от разработчиков, то программы пилились бы годами, и не факт, что большинство из них вообще когда либо увидели бы свет. А реальность такова, что сегодня вечер пятницы и нам необходимо пойти туда — не знаем куда, сделать то — не совсем понимаем что, на когда — на вчера.


  1. habradante
    05.05.2016 18:19
    +4

    Проблема не только в качестве продукта, но и в возможности его оценки. Простой потребитель не может объективно измерить качество продукта. Возьмем простой пример, почтовый сервер. Для его пользователя, критерием качества будет то, что сервер отправляет и получает письма (а что еще пользователю надо?). Если заказчиком выступает именно пользователь, то критерии очень простые.

    Второй вариант, заказчиком является хостер, который будет обслуживать почтовый сервер. Тут на первое место выходит удобство настройки и стабильность, ну и, конечно же, подразумевается, что письма будут уходить и приходить.

    Третий вариант, заказчиком является компания, которая заказала разарботку почтового сервера для своих внутренних нужд. На первый план вхыодит удобство доработки и поддержки этого сервера, потом, возможно, удобство администрирования (но этим же будут другие заниматься, может быть) ну а если вдруг отправка и получение не работают так как надо, то либо допилим, когда баг произойдет, либо забьем, если никто не обнаружит.

    Таким образом, получается что качество продукта сильно зависит от того кто будет его принимать и для каких целей он будет использоваться. Газовая компания, думаю, чихать хотела на то что у какого-то пользователя браузер красненьким что-то рисует, потому что сайт свою функцию выполняет (с их точки зрения).

    Можно, конечно, шлифовать продукт до идеала, но вот только конечный пользователь не оценит. А если два решения делают одно и то же, но одно стоит дешевле, то выбор очевиден.

    Внимание к мелочам и вылизанность, это признаки товара из категории «люкс», к коим софт никак не относится. Можно купить себе Бентли и испытывать эстетический оргазм от того насколько вылизанно и аккуратно автомобиль сделан, но никто не купит себе почтовый сервер чтобы потом хвастаться им в кругу друзей «глядите, тут даже строчки в конфиге выровнены по фэншую, а уж сорцы вообще эталон».


    1. terryP
      05.05.2016 20:02
      +2

      Внимание к мелочам и вылизанность, это признаки товара из категории «люкс», к коим софт никак не относится.

      Зависит от софта, есть огромные энтерпрайз порталы для внутреннего пользования бешенной ценой, есть банковский софт, есть софт для ракет, самолетов, автопилотов для машин.

      Можно купить себе Бентли и испытывать эстетический оргазм от того насколько вылизанно и аккуратно автомобиль сделан, но никто не купит себе почтовый сервер чтобы потом хвастаться им в кругу друзей «глядите, тут даже строчки в конфиге выровнены по фэншую, а уж сорцы вообще эталон».

      Почему никто? В корп. секторе это сплошь и рядом, когда и конфиги выравнивают по фэншую и в сорцах в комментах пишут войну и мир и траву красят лишь бы Клиент с большой буквы был доволен. Тут вопрос просто количество желающих получить супер-пупер люкс продукт за Овер кучу баксов, где все вылизано вплоть до исходного кода (такие Клиенты тоже есть).


      1. VovanZ
        06.05.2016 08:07
        +3

        > огромные энтерпрайз порталы для внутреннего пользования

        … как правило хуже всего выглядят изнутри.


  1. aezhko
    05.05.2016 18:34
    +4

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


    1. Saffron
      05.05.2016 21:02
      -1

      У разбойника есть выбор — оставить свидетелей в живых и рисковать тем, что те донесут в полицию. А можно их догнать и убить, и спать спокойно. И не совсем правильным будет их осуждать за этот выбор. Не они такие, жизнь такая.

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


      1. Suvitruf
        05.05.2016 21:43
        +4

        Просто очень много людей идут работать за большую зарплату, а не на интересный проект. Поэтому, им не важны эти баги, тестирование и т.п., важно лишь отработать норму и получить з/п. Они себя утешают чем-то вроде: «Я скоро уволюсь, найду нормальную работу, и буду всё делать правильно».

        Но мы то знаем…


        1. aezhko
          06.05.2016 11:01

          Мне кажется, тут вопрос приоритетов конкретного Василия. И если у Василия семья, которую надо свозить в отпуск, дети, которых надо собрать в школу и ипотека, которую надо платить, то его предпочтение в пользу премии легко понять. Правда думаю, что и такого разработчика можно мотивировать делать более качественный продукт: например, сделать KPI для премии не соблюдение сроков, а уменьшение количества багов, обнаруженных на тестинге/в проде.


      1. khim
        06.05.2016 14:26

        Если ты получаешь деньги за имитацию работы, за кривой и глючный продукт, то не удивляйся, когда, например, чиновники станут исходить из тех же предположений, и предоставлять за свою зарплату глючный и неполноценный сервис.
        Вы уж конечно, извините, но между чиновниками и «конкретным Василием» есть небольшая, но принципиальная разница: возможность выбора. Продукцию «Василия» заказчик (или покупатель) может использовать или не использовать — по своему желанию. Отказаться от «сервиса» чиновника — увы, нельзя.

        P.S. Предупреждая очевидное возражение: да, если компания становится где-то монополистом, то требования к ней меняются и с неё начинают спрашивать гораздо серьёзнее. По, в общем-то, понятням и разумным причинам.


  1. MikeKosulin
    05.05.2016 19:17

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


    1. kekekeks
      05.05.2016 20:04

      Там проблема не сколько студии, сколько сторонних утилит и дополнений (а в ряде случаев ещё и скриптов сборки какого-нибудь пакета из npm), в которых пути к студии и её утилитам захардкодены.


      1. MikeKosulin
        06.05.2016 16:16

        т.е единственное решение — перенести и сделать псевдопути? Или как еще?
        Просто на ноутбуке с двумя небольшими SSD не так просто жить.


        1. kekekeks
          06.05.2016 16:27
          +2

          Через mklink /D сделать симлинк на другой диск.


  1. salkat
    05.05.2016 19:17
    +3

    Если продуктом пользуются, значит его соотношение «цена/качество» выше доступных альтернатив. Или выше выбора «не пользоваться вообще»
    Всегда есть, как минимум, пожелания к качеству. Но все ли готовы заплатить за него более высокую цену? Если уверен, что желающие есть и их много — создавай стартап, который выкатит аналог высокого качества задорого


  1. khabib
    05.05.2016 19:32
    +3

    Одна из причин — здравая мысль сделать все рутинное и повторяемое тестирование автоматизированным выродилась в «мануальное тестирование не нужно, только автоматизированное». Очень часто, тестировщиков вообще не нанимают — программисты сами способны написать автотесты… В итоге качество здорово просело.


    1. aezhko
      05.05.2016 19:45
      +6

      А зачастую нет ни ручных тестировщиков, ни автотестов.


  1. Idot
    05.05.2016 19:37
    +1

    Имхо, это последствия не лени, а моды на аутсорсинг, который делают индусские программисты.


  1. pyrk2142
    05.05.2016 20:14
    +6

    Есть очень важный момент, который упоминался только вскользь в этой статье. Это безопасность данных.
    Если из-за низкого качества разработки не получается скачать нужный файл, заполнить заявку или прочитать статью на сайте, то это очень плохо, но не слишком критично. Реально критично то, что из-за низкого качества кода стали появляться серьезные ошибки в безопасности.

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

    Но недавно я получил чудесный ответ на сообщение об уязвимости.
    «Мы сознательно пошли на игнорирование проблем в безопасности, чтобы ускорить процесс разработки».


    1. khim
      06.05.2016 14:30

      Но недавно я получил чудесный ответ на сообщение об уязвимости.
      «Мы сознательно пошли на игнорирование проблем в безопасности, чтобы ускорить процесс разработки».
      Интересно кто таким честным оказался.

      Ведь это то, что делают 90% (если не 99%) разработчиков, но при этом мало кто готов об этом вот так просто сказать…


  1. EmmGold
    05.05.2016 20:14
    +2

    Мы все в сети, и даже прямо сейчас. Гораздо прибыльнее выкатить продукт, который потом возможно допилится. НО, выкатить его прямо сейчас и раньше конкурентов, и начать зарабатывать деньги. Нет смысла всё отлаживать и вылизывать.

    Я не разработчик, я связист сетевик. И да, приходится ковыряться в старых многослойных паутинах. И да, заказчики часто просят просто кинуть провод или поставить точку доступа просто так, а потом они сами когда-нибудь это всё приберут. Но по факту, следующая группа аутсорсеров так же будет плеваться и разгребать паутины пытаясь понять, как это всё работает и как это всё починить.


  1. michael_vostrikov
    05.05.2016 20:55

    Большинство ошибок из разряда «ой, мне так не нравится». При этом почему-то не учитывается, что некоторые программные продукты довольно большие, и в них много функций, которые работают, и для выполнения которых они и создавались. NPM, PayPal, Visual Studio. Амперсанд 2 раза проэкранировался, ай-яй-яй)


  1. ikormachev
    05.05.2016 21:02
    +9

    Проблема не уникальна и применима к любой деятельности, т.к.:
    image


  1. tmteam
    05.05.2016 21:36
    +3

    Был в одном проекте показательный момент. Мощный кусок безумного говнокода (оставшегося с прототипа), в котором, изнутри вложенных вью моделей писались обновления в базу данных. Ошибки стреляли то там, то здесь. В рамках спринта они латались, затем вываливались новые. Раз в спринт вопрос этого бага поднимался — и мы были готовы голой грудью кинуться на амбразуру, и со своим овертаймом тоже… Но. Это несколько рабочих дней программиста и несколько дней тестирования (ком и в правду большой разросся). А значит — полусорванный спринт. Инвесторы будут злы. Манагеры вопрос заворачивали. Вопрос: что может сделать программист, в не зависимости от его квалификации, чтобы починить это?


    1. vintage
      05.05.2016 23:48

      Посчитать сколько уже было потрачено денег на латание дыр и экстраполируя показать через сколько рефакторинг окупит себя.


      1. niklisto
        06.05.2016 10:29
        +2

        Посчитал, показал, рассказал. Покивали, похвалили, но делать отказались. Потому что «это мы заказчику не продадим». А открыть небольшой инвест в рамках текущей разработки это же надо рискнуть. «А вдруг мало ли что?» Зато очень эффективные менеджеры. На очень хорошем счету у акционеров компании. А проблемы же не на месте стоят: они нарастают.


      1. smartello
        06.05.2016 17:34

        Экстраполяция не всегда работает: я перенял у индусов (настоящих, стереотипных) разработку три года назад. Сначала, когда я ещё толком не понял что к чему, на меня свалилась гора ошибок, при этом индусы сказали «ну тут мы не знаем, мы уже всё передали». Ошибки нужно исправлять срочно, клиенты могут понести финансовые потери, а значит и мой работодатель может попасть на штрафы или даже лишиться клиента. Баги исправил, потом нужно было править свои исправления, потому что где-то они выпали из общей архитектуры и привели к новым багам. Сейчас приходит пара сообщений об ошибке в квартал, трачу по полдня на правку, попутно вынося функциональность с ошибкой в отдельные модули, покрываемые тестами. Продукт с точки зрения разработчика — полный ужас, поддержка дорогая, развивать невозможно… но он стабилен! Мне два года не давали возможность его отрефакторить, а теперь я уже и сам не хочу: развивать не нужно, говнокод из костылей работает как надо. Сейчас мы сделаем рефакторинг и снова будет период стабилизации с затратами на поддержку. А если сделать сразу качественно (привет топик-стартеру), то это просто невероятно дорого.


  1. jMas
    05.05.2016 22:44

    Нет, просто стало больше дешевых программистов.


  1. ZaEzzz
    05.05.2016 22:59
    +9

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


    1. michael_vostrikov
      07.05.2016 06:37

      А вы, конечно же, работаете ради конечного потребителя и всегда выпускаете хороший качественный код, в котором нет ошибок?)


      1. ZaEzzz
        07.05.2016 11:18

        Прямо сейчас, в данный момент времени да, работаю ради конечного потребителя за бесплатно (в минус), заглянул сюда на чаек :)
        За деньги делаю по ТЗ. Но все равно, к примеру, если я верстаю, то не использую бешеное количество фреймворков для отображения одной более-менее статичной странички и на мобильниках аккум не жрется неистово.
        Насчет качественного кода не могу сказать — все мы люди и нам свойственно ошибаться.

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

        Посмотрим, какое у меня будет суждение, когда я буду ПМом…


  1. kumbr_87
    05.05.2016 23:11
    +1

    К сожалению широко практикуется — менеджеры зачастую продают продукт лишь бы продать, обязуются что будет море новых и стабильных фич и что это будет сделано к моменту наступления вчера, а разрабов ставят уже перед фактом. Готов поспорить что так делается в большинстве компаний. Я даже уверен что часть кодеров хотела бы сделать все как надо, но делать все как надо каждый день в свой овертайм только для того чтобы менеджер и топы каждый раз получал плюсики, хорошая попытка но нет.


  1. QtRoS
    05.05.2016 23:27

    Абсолютно согласен с автором. Я, например, уже полгода наблюдаю в стандартной программе MIUI (форк Android от Xiaomi) для регулярной чистки устройства такую фразу «Файлов кэша: %d». В продакшн ушла неотформатированная строка, и она не спрятана где-то в настройках, а в самом основном экране, посередине.


    1. grieverrr
      06.05.2016 11:47
      -1

      ну для китайской наколеночной поделки еще не так плохо


  1. maydjin
    06.05.2016 00:05
    +1

    Нет, мир остался прежним. Стало меньше… содержимого
    ©

    Согласен с товарищами высказываюми своё фи про Agile. Имхо, эта соковыжималочка сгубит ещё не одну хорошую идею. Хотя, тут всё зависит от жадности рулевых товарищей. Но все они «покупая машину о самолёте мечтали» ©.

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

    Последние пару лет, как в наших снг стало де-факто стандартом всякое гибкое, я чувствую как накапливается усталость(может конечно тупо старею, хм).

    Слышал от товарища опыт работы в одной зарубежной конторе, там сий процесс поставлен совершенно на другой уровень:
    имеется система баллов, если ты не набрал норму баллов — уволен, если ты попал в tail пусть будет 100 (точную цифру не помню) — ты тоже уволен. Т.е. контора постоянно увольняет сотрудников и набирает не успевший подустать свежачёк с рынка. Мы с вами, как разумные люди понимаем, что менее чем за полгода в крупный проект вникнуть не выйдет. Среднее время выживаемости человека в сей конторе (сужу по выносливости и замотивированности товарища) порядка 7-8 месяцев. Итого, полезная контрибьюция в продукт на минимуме, контора аутсорсная и не самая мелкая, вакансии на том же stack overflow висят постоянно, зп для России и прочих индусов более чем высокая (на hh такие цифры практически не попадаются для разработчика). Ждём, когда появится на экранах страны сия картина.


    1. Rasifiel
      06.05.2016 01:29

      При чем тут agile и перечисленное? Чем лучше «традиционные методологии» с высосаным из пальца сроком и подгонянием результата под них?


      1. maydjin
        06.05.2016 01:51
        +1

        Старые — ничем, кроме того, что горстка действительно хороших инженеров, имела крайне не плохие шансы сделать не самый худший продукт, за разумное время. На сколько я слышал, в том же ibm, до сих пор никому никакой agile никуда не упёрся.

        А нынешние адепты этого же agile, в большинстве своём забывают первые же строчки того манифеста, про то, что там главное и всё такое. Всех интересует бабло, прямо сейчас, а потом можно с красивой строчкой в резюме стартануть новый проект, можно и в новой конторе.

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


        1. Rasifiel
          06.05.2016 02:19

          Наблюдаю agile с нормальными разработчиками в большой компании. Все работает быстро и хорошо. Все еще не вижу как какой-нибудь водопад спасет от плохих разработчиков и менеджеров.


          1. maydjin
            06.05.2016 02:43

            Я не хочу ничего сказать лично про вас. Так же я уверен на 100%, что исключения, и грамотное не столь жадное руковдство имеет место быть в отдельно взятых компаниях (обычно это компании небольшие, до пары тысяч человек штата).

            Но, я смел наблюдать именно такое мирощущение, глубоко вовлечённых товарищей, что всё Ок. Однако, именно в таких командах встечались технические лиды, уверенные, что например, переполнение буффера вызывает исключение, зато, они были сертифицированными скрам мастерами.

            Не так уж много я и информации имею, сужу в основном по тому что вижу вокруг и по рассказам от различных людей с которыми общаюсь. Про тот же ibm слышал от товарища который там работал, правда лет эдак 5 назад, поэтому вполне могу иметь и тухленькую информацию. Но о5 же — выпускать софт для поддержки процессов и говорить всем, что «мы им пользуемся» не значит жениться.

            Вполне допускаю, что вообще 90% сказанного мной бред, вызванный недостаточной осведомлённостью и текущим окружением. Что вижу — то пою.


          1. maydjin
            06.05.2016 03:04

            Водопад — не спасёт. Но, разом покажет глубину фейла. Остальные, посмотрев на то, как лажанула контора никогда в неё не придут. И при приёме на работу в новую контору, сей опыт примут во внимание, и очень внимательно выяснят вашу роль в том провале.

            При agile — глубина падения размазанна во времени, прогресс имеется, но что бы понять всё ли идёт хорошо на старте, нужны всё-таки верная декомпозиция и предварительная оценка. Единственное достоинство для клиента — возможность соскочить в начале или в середине. Для этого, он должен крайне внимательно следить за тем, что происходит. Т.е. риски нарезанны мелкими кусочками, но никуда не делись. Нужно вести постоянный подсчёт, что тоже чего то да стоит.

            С другой стороны если из 10 проектов по тому же водопаду командой было сделанно 10 проектов в срок, шанс что они налажают на проекте того же типа стремиться к нулю. Куча затрат на коммуникации и итеративную работу с рисками пропадает. Но нужно иметь дорогую, хорошо обученную команду на всех этапах, да.


            1. Rasifiel
              06.05.2016 03:20

              Если дорогая, хорошо обученная команда сделал 10 типовых проектов в срок, то они и 11 по любой методологии сделают. Небольшие размазанные риски это лучше чем дойти до срока выпуска продукта и понять, что ничерта не работает, идея неправильная, все плохо.
              И, во всяком случае для внутренней разработки, проваленные проекты это нормально если делать новое, особенно когда можно рано соскочить поняв, что оно не работает и работать не будет. И я что-то не вижу ни одного преимущества для компании-разработчика от использования этого водопада, ибо «посмотрев на то, как лажанула контора никогда в неё не придут» сомнительное преимущество.


        1. Rasifiel
          06.05.2016 02:29

          Ах да, я не знаю откуда вы слышали про IBM не использующий Agile, но они разрабатывают софт для поддержки Agile процессов, который сами и используют.


        1. Gray_Wolf
          09.05.2016 07:48
          +1

          На сколько я слышал, в том же ibm, до сих пор никому никакой agile никуда не упёрся.

          Хоть и являюсь ярым сторонником водопада, всё же не стоит упоминать софт от ibm если близко с ним не работали.
          После знакомства с семейством продуктов Tivoli у меня сложилось впечатление что «там всё очень плохо».


    1. niklisto
      06.05.2016 10:45

      Уже есть такое нечто на экранах страны. Ну почти такое. По результатам ежеквартальной аттестации если ты попал в первые 5% — вэлком в кадровый резерв и дальше в манагеры. Если в так сказать в последние 5% — репрессии таковы, что уволишься сам. Половина так и уходит. Самое смешное, что есть при этом некая норма баллов, от набора которой зависит квартальная премия. Так вот можно набрать норму (это 0.7 от max) и при этом все равно быть в последних 5%. Ротация людей в компании довольно большая в итоге.


  1. Vkuvaev
    06.05.2016 00:53

    Довольно самонадеяно приписывать все баги софта лени разработчика.

    Имея в виду коммерческую разработку, думаю, здесь присутствует сочетание разных факторов, один явный общий фактор это зрелость, определяющий то, что мы все считаем нормой:

    • Разумная попытка менеджмента сэкономить — Очень трудно построить вменяемый бизнес кейс, почему нужно тестирование разного типа. Ну и построив его — попробуйте этот кейс протащить до бюджетного комитета. Инициатор, скорее всего столкнется с людьми далекими от понимания сути тестирования, но знакомыми с финансовыми расчетами, надо их суметь грамотно убедить не только в конечных 100500% ROI, но и в изначальных посылках
    • Безграмотность руководства — слепая уверенность, что разработчик сам все протестирует, а если не сделает, мы его накажем. При этом упускается из вида, что отвечает за продукт сам заказчик в итоге, тот кто акты подписывает. В конечном счете, тот, кто подписывает, понимает, что нужно тестировать, обычно после факапа, но сталкивается с тем, что это надо как-то продать наверх, может получится, а может нет: лень, боится за свое место, не разбирается в теме… (нужное подчеркнуть). По принципу лучшее из двух зол, попытается создать тестирование своими силами, тут и велосипеды бывают и удивительно удачные попытки
    • Пользователи — в общем-то они стали драйвером толкнувшим рынок в гибкие методики и в DevOps. Они неразборчивы в среднем, ведь нужно понимать что такое качественный софт, чтоб как-то ранжировать тот софт которым пользуешься.
    • Отсутствие обратной связи — Коммерческие разработчики пытаются удовлетворить этого среднего пользователя, тщась угадать, что из параметров софта ему важно. Скорость выпуска фич? Продвинутость фич? UX? Стабильность? и так далее… При этом угадать — самое верное слово. Сейчас появляются решения которые могут помочь выяснить профиль использования софта, т.е. понять как используется то, что сделано, используется ли, есть ли какие ошибки. Пока этой обратной связи нет для большинства коммерческих разработчиков. Типовую поддержку я не считаю этой связью, т.е. она не собирает профиль использования и т.д.


    Думаю много еще факторов есть, и не надо валить все на Agile методики, это лишь инструменты.
    Но, очевидно, что происходящее на рынке это что-то новое, так что все держим ухо востро.


    1. maydjin
      06.05.2016 02:10

      Совершенно согласен про невиновность инструментов. И про влияние рынка согласен. Но количество имеет свойство перерастать в качество.

      Клиент, ввязавшийся в agile разработку с неопытной командой, родившийся в ряде других подобных разработкок, и получающий свой mvp рано или поздно понимает, что если он не выпустит эту сыроту на рынок, то просто напросто прогорит.

      Он говорит своим клиентам — теперь, я тоже, придерживаюсь agile, вы стройте свои решения, а я выкачу вам mvp. И мы вместе будем гибки. Ну, и дальше больше.

      В итоге все продают друг другу прототипы и наброски, на фронте их кое как подкрашивают и выставляют конечным пользователям. А т.к. так поступают подавляющее количество людей на рынке, ибо конкуренция, пипл хавает. Ослик плакал, но продолжал кушать кактус.

      Вот ребяты уже во всю пиар компанию проводят. Ни в одном браузере ни одна фигня кроме открытия plain text документов, лично у меня не заработала.


      1. Pilat
        06.05.2016 04:15
        +1

        У меня заработала — многоугольнички двигаются, если я по главной странице возюкаю мышиный курсор :)
        Пипл хочет именно этого — скины, заставки…


        1. khim
          06.05.2016 14:55

          Ну дык. Прямое и естественное следствие эффекта айсберга.

          Если заказчик не готов платить за 99% работы, а готов платить только за 1%, то понятно, что инженеры будут с сниматься той части, за которую не плалят и перебрасываться на то, за что платят. Движущиеся многоугольнички, к примеру.

          В этом смысле меня скорее удивляет удивление автора: а почему он считает, что какие-то огрехи, за устранение которых программисту никто не заплатит, должны быть устранены? С чего вдруг?

          ПО тут ни разу не уникально. Китайские ножи которые выглядят «как настоящие» но разваливащиеся после отрезания пары кусков колбасы — их аналог в реальном мире.

          Со временем люди научатся замечать «подводную часть айсберга» (или сами или экспертов наймут) и всё станет получше, а пока — вот так.


          1. Saffron
            06.05.2016 21:02
            +2

            Вряд ли. Не останется тех, кто знает как делается подводная часть. Сейчас происходит нечто похожее на гонку вооружений между США и СССР. Только вместо количества боеголовок наращивают скорость разработки. А что получается в итоге гадость — никого не волнует, рынок сам себя привёл к этому состоянию. И разработчикам противно делать какашку и пользователям противно с ней работать, а у всех компаний — одно и то же. А если кто идёт против потока, то разоряется.

            Вот так бывает, как в рыночные отношения вступают не идеальные эгоистичные и осведомлённые агенты, а реальные люди. Невидимые части айсберга первыми засасываются в водоворот лоукоста.


  1. zim32
    06.05.2016 00:55

    Мне кажется просто всего стало «больше и быстрее» и пропорционально увеличилось к-во багов. Как доказательство можно привести множество софта (в том числе ядро линукса к примеру) который вроде бы писался давно и умными людьми, но до сих пор там находят дыры и баги.

    А по статье добавлю — недавно пытался записать видео с экрана на win8, в итоге перепробовал 4 программы, ниодна не записала видео нормально, поставил кучу кодеков (и вирусов наверное заодно с ними), почистил реестр и директ фильтры всякие, ничего не помогло.


  1. Wesha
    06.05.2016 02:57
    +7

    Разработчики в край обленились?

    Нет, это переводчики в край недоучились.


    Статья в оригинале назвывается "Have Software Developers Given Up?". "To give up" — "сдаться, прекратить деятельности или попытки, особенно в признание поражения". Правильный перевод — "У разработчиков [совсем] опустились руки?". И лень тут совсем ни при чём.


  1. Invision70
    06.05.2016 03:04
    +3

    х/як-х/як в продакшн — наше все


  1. ValdikSS
    06.05.2016 03:52
    +1

    Длина пароля в 8 символов максимум — ограничение протокола VNC, а не конкретного клиента.


    1. AVX
      06.05.2016 10:29

      Полез в комменты чтобы написать про это, а Вы опередили. В этом случае ошибка вовсе не программиста, а юзера, который не прочитал документацию. Конечно, в целях user-friendly интерфейса можно было прямо в приглашении к вводу написать, что нужно ровно 8 символов, а не пинать пользователя уже после ввода.


      1. grieverrr
        06.05.2016 11:57

        а есть внятное обоснование этого ограничения? почему восемь? почему не пять или 16. что за великий мудрец-архитектор так решил?


        1. khim
          06.05.2016 14:58

          Ну если вам так интересно — попробуйте связаться с Olivetti или Oracle'ом. Хотя, конечно, с учётом того, что с тех пор много реорганизаций прошло будет тяжело до истины докопаться.


          1. grieverrr
            06.05.2016 15:16
            +1

            да я это скорее к теме статьи, когда подобные решения принимаются от балды, и потом годами люди об них спотыкаются


            1. khim
              06.05.2016 17:38

              Ну так есть ещё более выдающийся пример. Когда разработчиков TCP/IP критиковали создатели пресловутых протоколов OSI за 4-байтный адрес, то кто-то из разработчиков TCP/IP сказал «да, в сетях OSI этой проблемы не будет...», а когда у его собеседников вспыхнула на лице улыбка продолжил "… потому что они никогда не станут настолько популярными, чтобы иметь столько пользователей".

              Вот, собственно, и всё: либо вы «вкручиваете» костыли, либо опаздываете — и умираете.

              P.S. Разработчики «протоколов OSI», правда, отыгрались: использовав «административный ресурс» они заставили все ВУЗы учить TCP/IP в терминах пресловутой модели OSI, не имеющей к TCP/IP, в общем-то, никакого отношения. Но это уже совсем другая история.


  1. wirtwelt
    06.05.2016 08:08
    +4

    Тестировщики наше все. Не представляю, что бы мы делали без этих людей. Работаю в российской компании, делающей софт и железки. Да, такие (и компании, и тестировшики в штате у них) есть, точно вам говорю…

    Как правило, условия разработки диктует тот, кто платит денежку. Каким бы крутым и опытным разработчиком ты не был, ты работаешь за деньги, добровольно продавая себя и свои навыки. За деньги, Карл. А не за идею о хорошем и качественном софте и железе, и тем более не за идею радостных и веселых конечных пользователей.

    А если по простому — дядя сказал сделать завтра, ты берешь палки, какашки и делаешь завтра. Или делаешь, чтоб было готово завтра, если ты лидер группы. Или отдела. Причем, если у тебя есть совесть и… не знаю, что-то такое, что не позволит тебе сделать «полный тяп-ляп», который развалится при первом запуске прям на столе приемной комиссии — ты делаешь хорошо, продумывая мелочи и за нехваткой времени залепляя их заглушками с грустным «потом доделаем, наверное». Что будет, если ты не сделаешь? Плохо. А если ты потратишь ограниченные человекочасы на качество, не выполнив основной поставленной перед тобой задачи? Очень плохо. А что же будет, если ты выполнишь основную задачу, с 5-10 (да хоть 20) неточностями и багами, но таки в рабочем состоянии, по большей части? Плохо. Но лучше, чем очень плохо, правда?

    И тестировщики, и разработчики, и менеджеры тут не причем. Тестирование не гарантирует отсутствие ошибок. Порядок — он в головах. Дело в поставленных задачах и их исполнении. Порою очень смешно читать про всякие методики планирования и расчета времени на разработку, особенно если задания, исходящие от руководства компании, начинаются со слов «Бросай все свои текущие дела, и делай срочно ». Я очень надеюсь, что это специфика именно российских компаний, во всяком случае хочется в это верить.

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


    1. caballero
      06.05.2016 12:10

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


      1. wirtwelt
        06.05.2016 21:30

        Не всегда получается, это было бы во многих случаях к месту.

        Но посыл поста не в этом… Вам не кажется, что раз явление присутствует на рынке и многие люди это замечают, то это ни плохо и ни хорошо — это просто движение рынка.

        В ту же степь можно вспомнить советские ботинки (некрасивые, да), которые носились три поколения VS китайские тапочки из клетчатых сумок. Да, невысокого качества. Но ведь пост именно об этом. Почему такая странная аналогия? Очень много параллелей лично мне видится. Нет смысла тратить год на разработку качественного приложения для интернет магазина, который закроется через полгода. Нет смысла разрабатывать софт под тендер и вылизывать код, потому что тендер разыграют через две недели, а ваша компания уже подала заявку.

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

        Но есть исключения. Много. Например — когда приобретается не сам продукт, а продукт как сервис. Абонентская плата. Постоянный штат. Техподдержка. Но это уже совсем другая история, верно?


    1. Oxoron
      06.05.2016 12:51
      +1

      Я очень надеюсь, что это специфика именно российских компаний

      Вы можете с чистой совестью хоронить эту надежду. В Европе подобные компании также встречаются.


    1. vlivyur
      06.05.2016 13:17

      Думал кто-то из коллег отписался. У нас тоже есть «мультики», используются когда «не готово, но вот тот „может быть заказчик“ захочет, поэтому надо показать хорошо», как правило сопровождаются ответными комментариями «но мы ж делаем не то, что ему нужно» и дальнейшей перепалкой.


    1. wladyspb
      06.05.2016 15:18
      +1

      Вообще можно провести аналогию со старой историей о портном, которого жадный клиент уговорил сделать из одного куска ткани не одну а десять шапок. Один портной скажет что клиент рехнулся, объяснит ему что невозможно сделать хорошую шапку из такого малого количества материала, и либо потеряет клиента — либо добьётся нормального технического задания. Другой же сделает эти 10 «микрошапок», а клиент пусть сам думает, как он их теперь будет надевать.
      Проблема программистов не в том, что им платят за то чтобы они делали работу быстрее чем возможно сделать качественно. Проблема в том что программисты не готовы объяснять начальству, что за такие сроки работа будет говно, не готовы отказаться от работы, если видят что получится говно. А поскольку таких кадров, не готовых обсуждать разумность выставленных сроков — дофига, остальные тоже вынуждены торопиться за поездом чтобы не остаться без работы.


      1. Wesha
        06.05.2016 22:29

        > Проблема в том что программисты не готовы объяснять начальству, что за такие сроки работа будет говно

        Или в том, что начальство не знает старой хохмы про "быстро, качественно, недорого".


  1. Neikist
    06.05.2016 08:08

    Раскажу о ситуации с точки зрения 1сника, новичка правда (не закидывайте сразу). Итак, есть человек, вчерашний студент который нашел свою первую работу. Ему дают книжку по 1с и видео, а через неделю-две изучения пихают на производство реального продукта. При этом наставник лишь изредка смотрит написанный код (раз-два эдак в месяц), а результат требует еще вчера, мотивируя это тем что работник паршивый, и вот эту фичу он(стажер) бы мог реализовать на 2 часа быстрее. В результате стажер начинает думать что его нафиг уволят если он будет работать медленно, и все ускоряется в ущерб качеству. Подумаешь на 15-20 закрытых обращений хоть одна ошибка но найдется, а даже чаще, но ведь больше не ругают, и даже платить начали деньги которых не только на еду и жилье хватает, значит это правильно, значит так и буду делать. Руководству тоже хорошо, лишь бы клиенту указать меньше часов (вдруг за большее количество не продадим), а на ошибки плевать, мыши кактус едят — значит их все устраивает. А возмущаться бесполезно, головой покивают и опять на задачу дают минимальное количество времени за которое вообще успеть можно (а часто еще меньше), бывает просят оценить за сколько справишься, называешь им цифру — не, мы столько не продадим, надо в 3-4 раза быстрее.


    1. ganqqwerty
      06.05.2016 10:20

      дружище, у меня было такое же, только с C++ и на производстве софта для военных


      1. Wesha
        06.05.2016 22:32
        +2

        Вот, кажется, и нашёлся тот, кто вот этот софт писал…


    1. Areso
      06.05.2016 21:16

      Верно ли я понимаю, что вы франшизники с почасовой оплатой? Те, кто пилят собственный продукт (пусть на 1С) — к примеру, типовые конфигурации, или вообще кастом под клиента, в меньшей степени подвержены таким проблемам. Тоже самое касается и тех (не ИТ компании), у кого свои программисты сами делают свой продукт — у них то аврал, то тишина, а зарплата капает — во время тишины и спокойствия как раз приводят в божеский вид все то, что сделали наспех во время очередного аврала, комментируют код и ваяют описание систем.


      1. Neikist
        07.05.2016 11:45

        Хм, ну как сказать, в целом мы франч, разрабатываем два собственных продукта (я на одном из них, он два последних года даже умудряется в этот список попадать: http://1c.ru/news/info.jsp?id=19719), плюс дорабатываем наши же продукты под конкретных заказчиков. И я говорил как о разработке типовой конфигурации, так и о адаптации под заказчика. Зарплата сотрудников от часов не зависит.


  1. SLASH_id
    06.05.2016 08:08

    Извините, не смог пройти мимо.

    Работаю сисадмином в одной IT компании ориентированной за США. Имеется весьма крупный клиент. Пишем по большей части на C#. С разработчиками имею дело каждый день весьма плотно. И знаете что? Сейчас в ходу ASAP Driven Development. Таки да — «сделать максимум за неделю», «мы уже продали, срочно напилите функционал» — нормальный QA процесс просто невозможно произвести за сроки которые ТРЕБУЕТ клиент. Потеря клиента — минус большой капитал для фирмы. Посему так и работаем.

    З.Ы. Есть проект в котором логи дев-консоли просто потрясают воображение количеством информации. Туда выводится практически все что происходит на фронте и беке. 2 года как в релизе…


  1. YemSalat
    06.05.2016 08:08
    +3

    > «Мне ругнулось, что пароль слишком короткий. Окей, я добавил пару символов, после чего мне вернуло сообщение о том, что пароль должен состоять из восьми знаков»

    *Что введенный пароль был *сокращен* до 8-ми символов

    Т.е. сначала ему написали что пароль слишком короткий, а когда он ввел подлиннее — ему его сократили т.к. слишком длинный получился.


    1. ainu
      06.05.2016 11:13

      Да, это часть протокола.


  1. zirf
    06.05.2016 09:12
    +1

    Никто не пробует скачать триал на redhat.com? Работа над дырой в ImageMagik (CVE-2016-3714), тут обсуждается, если интересно, не окончена, закачки недоступны, причем дармовая подписка 30 или 60 дней от продукта ничем от покупной на 1 год или 3 не отличается, это просто бонус. Зная как устроен сайт качать и активировать подписку все равно можно. Есть скачка без картинок, там уязвимость не сработает.
    Посто разработка ПО — бизнес, причем его часто понимают как фастфуд. Почему junior php с опытом в год разработчик имеет предложение по деньгам в 2 раза большее, чем Linux — админ с 5 летним стажем. 1-й просто шаурмист, будет совать полуфабрикаты стэйков в микроволновку и их будут покупать. Второй делает в разы больше, но прямой цепочки нет, потом шаурмист легко производится и более управляем. Не видны деньги напрямую. Тенденция общая и опасная — возьмите hh.ru и найдите 1 (одну вакансию) с требованием «Ада 95», потом возьмите любой современный особенно скриптовый язык без жесткой типизации — за 1 день тысячи объявлений. Один тут умный контор подготовил тест на знание ИТ, который проверяет свежак 2-3 года, но не одного вопроса о базисе, который заложен 30-40 лет назад, тест чез 3 года никто не вспомнит, а заданные там вопросы станут неактуальными, а фундамент так и будет жить. Такими темпами создание чего-то принципиально нового прекратится (уже почти), меняться будет упаковка, даже шаурмист скорее маркетологом будет.


  1. ganqqwerty
    06.05.2016 10:17

    ну и тестеры давно уже вымерли, никто и не заметил. Мы теперь пишем интеграционные тесты и догфудим, во как.


  1. Lauren
    06.05.2016 10:29
    +2

    В университете преподаватель по курсу экономика на производстве рассказал советскую байку.
    Решили поменять руководящий состав на заводе. Пришли молодые управленцы и говорят:«У вас есть брак, а почему мы его не учитываем в планах?». В итоге установили планку брака не более 10%. Шло время. На других заводах брака уже меньше 1%. Начали разбираться в чём дело. Оказалось, что когда в плане по браку оставался запас, весь исправимый брак «списывали» в неисправимый.
    Факторов которые влияют на качество продукции много — это и не профессиональное управление, инертность пользователей(в первую очередь выбирают не качественное, а что первым выдаст гугл), низкий порог вхождения в сферу информационных технологий, отсутствие нормальной стандартизации и т.д.
    На сегодняшний день, создание качественной продукции — это выбор, а не обязанность.
    P.S. Что странно, а почему за один месяц он не нашёл ни одного бага в windows 10?


    1. Wesha
      06.05.2016 22:35

      > почему за один месяц он не нашёл ни одного бага в windows 10?

      Потому что пытаться что-то втолковать Микрософту — это бесполезно тратить своё время.

      Я всегда говорил, что качество софта измеряется в FPM — «Fuck!!!»s per minute. Чем чаще работающий с софтом на него матерится — тем софт хуже.


  1. caballero
    06.05.2016 12:04
    -2

    Качество падает потому что программисты больше зарабатывают чем другие. Заканчивает юное создание школу, крутит головой по сторонам — где больше платят. Понятно что в IT да еще и в уютном офисе сидишь а не где то на улице впахиваешь. А программирование все таки процесс творческий и к этому нужны хоть какие то природные задатки.


    .


  1. Scf
    06.05.2016 12:39

    Всё упирается в требования. При ужесточении требований к качеству, стоимость ПО растет по экспоненте, что не выгодно никому. Клиент, очевидно, хочет дешевле. Клиент предпочтет бажную версию сейчас, чем готовую позже, т.к., даже в бажном исполнении, программа уже может экономить ему время и тем самым приносить прибыль. Да вспомните хоть, как народ дерется за доступ в бету к всяким-разным играм :-)

    С другой стороны, разработчику тоже нужны деньги пораньше — чтобы довести продукт до ума при перерасходе бюджета (что при разработке ПО встречается сплошь и рядом), ну или чтобы просто отдать пораньше кредит в банк, сэкономив на процентах.

    И не нужно говорить, что раньше софт был качественней — раньше софт сыпался в access violation через раз из-за несовершенного инструментария.

    Из-за отсутствия интернета не было возможности взять и накатить патч, так что да, тестировали и вылизывали как могли. Что не лучшим образом сказывалось и на сроках разработки, и на цене. А дешевое и некачественное всегда конкурентноспособнее дорогого и качественного. Тот же айфон — это редкое исключение. Было.


  1. SCareAngel
    06.05.2016 12:42

    В подтверждение к статье, при попытке залогиниться для написания комментария я получил вот такой дивный результат:

    $('#captcha-s-field').removeClass('hidden');
    //$('#recaptcha_response_field').attr('data-required', 'true');
    form_errors_show('#login_form', {
    'captcha':'Необходимо разгадать капчу'
    });

    reloadRecaptcha();
    setTimeout(function(){
    toggleSubmitButton($('#login_form'));
    },200);


  1. ifgeny87
    06.05.2016 12:42
    -2

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


    1. terryP
      06.05.2016 14:28
      +2

      Проблемы в больших запросах у программистов

      А что значит большие запросы у программистов? Если по деньгам и прочим вкусностям, то это закон спроса и предложения. Не была бы спроса, не было бы запросов.

      Если о желании сделать качественнее, а не тяп ляп это нормальное желание любого специалиста, за исключением тех кто тупо просиживает штаны за зар.плату (скажем, не каждому архитектору или строителю хочется сдавать кривое, разваливающуюся здание, да ещё и ставить на это свою репутацию).


    1. Wesha
      06.05.2016 22:37
      +3

      > Проблемы в больших запросах у программистов.

      image


  1. vlivyur
    06.05.2016 13:22
    +1

    В процессе чтения статьи за спиной разворачивалась очередная серия «на месте допилите» сериала «нам же обещали что до отправки мы у себя всё соберём и протестируем».


  1. vsb
    06.05.2016 15:12

    Софт софту рознь. OpenBSD много лет на сервере, багов нет, неожиданностей нет, всё работает как часы. iOS на телефоне, обновляюсь после 2-3 минорного обновления, багов давно не видел. То же с OS X на десктопе и аккуратно подобранными приложениями для работы. На зрелых сайтах баги очень редко замечаю.


  1. makdoc
    06.05.2016 15:19

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


    1. Wesha
      06.05.2016 22:49

      > Не знаю как у остальных разработчиков, но моя лень мне помогает а не наоборот

      Хороший разработчик должен быть ленивым.


  1. Dreyk
    06.05.2016 17:08

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

    password truncated to length of 8 — означает, что пароль обрезан до 8 символов, а не должен состоять из 8 символов. Это автора и возмутило, что то короткий, то длинный


  1. degs
    06.05.2016 17:44

    откладываю установку адблока

    причина этой беды: всплывающая реклама во всю страницу

    сам себе злобный буратино


  1. zagir
    06.05.2016 20:26

    Добавлю майкрасофта:

    1. Не заменили значок для сайта офиса:

    image

    2. Установка офиса — не полностью помещается на экран форма входа (и проскролить нельзя! )

    image

    Мелочи конечно но вот такое отношения сейчас к выпускаемым продуктам.


  1. zagir
    06.05.2016 20:33

    Добавлю: время такое что понастоящему опытных программистов сейчас все меньше в процентном отношении.
    Сейчас уже считается нормой

    • херачить классы на 2000 строк
    • использовать наследование там где оно вообще не нужно
    • усложнять код анонимными методами
    • использовать в работе только шаблон Repository


    1. warlock13
      09.05.2016 20:53

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


  1. SuperNovaWS
    07.05.2016 03:02
    +2

    На самом деле сама статья — это один огромный наброс. Не говоря уже о провокационном переводе заголовка. Как тут уже выше указывали, «Have Software Developers Given Up?» правильнее перевести как «Сдались ли разработчики ПО?». Т.е. сам неправильный перевод заголовка статьи — это уже наброс.

    Но даже при корректном переводе статья не передаёт быть набросом. Так можно на самом деле раскритиковать любую профессию. Например — дворников.

    Вот без напряга родил план статьи «Сдались ли дворники?» чисто на жизненных примерах:
    — кушал в заведении — под столом была прилеплена жвачка;
    — шел по улице — увидел переполненную мусорку, из которой вываливался мусор;
    — выпал снег — не расчистили проезд к подъезду;
    — шел по улице — навернулся на льду;
    — огромные лужи перед работой;
    — дым от сжигаемых осенних листьев не даёт нормально дышать;
    — дома на мониторе неубранная пыль;
    — в офисе прошел по вымытому полу — остались грязные следы!!!

    Теперь осталось добавить пафоса, сверстать всё в одну статью и прикрепить заголовок — «Неужели дворники опустили руки?»

    Смешно? Вот и я о том же…


  1. aon24
    10.05.2016 11:36
    +1

    Согласен с автором. У меня аналогичные ощущения возникают уже лет 10.
    Защитники разработчиков вызывают улыбку. Вспомните Райкина:

    «я лично пришиваю пуговицы. К пуговицам претензии есть?»

    «я лично писал цикл do-while. К циклу претензии есть?»


    1. SuperNovaWS
      13.05.2016 20:37
      +4

      Спрашивать с разработчиков за то, что они сделали программу, которая удовлетворяет спецификациям и уложились в отведенные сроки — это уже как-то… за гранью!

      А если хотите хороший костюм… э… хороший код — тогда и отдайте управление процессом разработки в руки программистов! Будет вам отличный продукт — без багов, удовлетворяющий каждого клиента, использующий новейшие разработки в области ПО — только очень дорого и медленно. Но вам-то хочется быстро, качественно, НЕДОРОГО?

      Так что — к циклу do-while претензии есть?


  1. amarashlyan
    10.05.2016 19:29
    -3

    Всем добрый день!
    я пишу исследование на тему применения agile методов в российских digital проектах, если вы можете, проведите, пожалуйста 5 минут и помогите хорошему человеку :) http://goo.gl/forms/FzvhiLyciH Спасибо!