Комментарии 200
Нередко можно столкнуться с тем, что данные не защищены или плохо зашифрованы:
Просто не включаются в план менеджерами. Без учета обсуждений, зачем вообще шифрование везде.
Или разрабы должны это овертаймом делать?
Как-то раз я гуглил одну проблему для своего друга и наткнулся в выдаче на страницу сайта 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 (занимаются газом и электричеством).
Опять таки — это разрабы игнорировали? Нет. Менеджеры.
Дальшле мне надоело, бла бла бла "А вот этот веб-сайт обвинил меня в использовании блокировщика рекламы" — виноваты разработчики, ага. Конечно.
Багованная всплывающая реклама… Это разработчик решил её туда поместить? Или спланировать тестирование без нее?
В общем автора в биореактор, типичный подход "тыж программист, тыж во всем виноват"
Ок, ок, всё, был не прав, не сливайте совсем :(
> Я разработчик программного обеспечения и я создаю баги и ошибки.
Ладно, вторую часть откинем и оставим на его совести. Но по первой части — он, вроде бы, разработчик. При этом в самой статье лажается и путает баги программы с:
— недостачей контента;
— проблемой инфраструктуры;
— своим низким скиллом, когда ему не хватает квалификации понять смысл диагностической ошибки;
— завышенными требованиями к free software;
— закидонами маркетологов, которые заставили сделать галочку неотключаемой;
— ошибками в стороннем ПО, а не в системе;
— проблемами с локальной конфигурацией;
— итд, итп
Так же он пытается оценить качество ПО В ЦЕЛОМ по своим локальным глюкам — т.е. очень вольно обращается с кванторами общности: «Если у меня ПО не работает — значит ПО плохое в принципе».
В общем — типичнейший наброс на вентилятор.
вы не поверите, но именно так оценивает ПО обыватель — что-то ему критичное не работает -> не работает ничего вообще
как утрированный пример приведу gmail — пользователь набирает и отсылает почту, и тут у него вместо кнопки отправить появляется текст
nbspa href=awdawdawd>отправить и он не может отправить почту — пользователь закрывает окно браузера и решает, что почтовый клиент не работает вообще
хотя, например, функции фильтрации, приёма и так далее работают хорошо
А если он не в курсе всего этого — значит он не имеет морального права наезжать на других девелоперов.
Да, я в курсе, что не нужно быть поваром, что бы оценить качество блюда.
Но я так же в курсе, что если тебе дали тухлые яйца и приказали приготовить омлет — то что ты с этим не делай, то получится говно. И да — при этом маркетинг может преподнести это как «изысканное исключительное кушанье для гурманов, сделанное из столетних яиц». Но это — уже маркетинг. По факту — это будет говённый омлет из протухших яиц.
Я считаю, что у нашей сферы есть серьезные проблемы с качеством выполняемых работ и я не вижу этому конца.
Нигде и не утверждается что «кодеры во всем виноваты». И здесь я согласен с автором: качество ПО, по моим личным субъективным ощущением, все больше и больше ухудшается. Взять те же игры — идешь в стим, платишь ощутимую сумму денег за какую-ниубудь новинку, которую все ждали несколько лет — и получаешь зависания и вылеты чуть ли не со старта. Или релизят игру, котрая несколько лет была в бете или раннем доступе — а там откуда-то багов и глюков больше, чем было в бете, а половина функционала урезана. С неигровыми приложениями в том же эпл аппсторе, например, — та же беда. Новые версии выпускаются с неимоверным количеством багов, с урезанным или перекроенным до неузнаваемости функционалом, и часто — без возможности откатиться к старой версии. Просто современный менеджмент где-то в своих учебниках прочитал, что релизнуть бажную версию в установленный срок — это гораздо лучше для бизнеса, чем подождать фиксов хотя бы критических багов и релизнуться попозже. А в результате можно с удивлением наткнуться на свежий баг и получить в ответ что-то вроде «мы уже в курсе этой проблемы, наша команда уже работает над ее устранением», хотя версия вышла буквально пару минут назад, и в предыдущей версии проблемы не было. То есть, про баги известно еще до релиза, но никого это не волнует, кроме страдающих в результате конечных пользователей.
речь и идет о сфере разработки ПО в целом:
«Девелопер» здесь — это обобщенное понятие. Можно читать как «компания-разработчик программного обеспечения». Девелопер — не единичный персонаж, не один человек, который сидит и занимается софтом, начиная с изучения спроса на рынке, и заканчивая продвижением и рекламой. Более-менее сложный софт уже давно не разрабатывается программистами-одиночками, чаще всего это как минимум команда, состоящая из специалистов в различных областях. Это как о строительной отрасли можно обобщенно сказать «строители» — туда относятся все: и менеджмент, и проектировщики, и конструкторы, и архитекторы, и укладчики кирпича, и разнорабочие на стройке, и даже инвесторы и держатели акций строительных компаний. Просто автор оригинальной статьи — сам «девелопер», то есть один из винтиков, принимающих участие в сложном процессе создания программного обеспечения, поэтому возникает ложное ощущение, что речь идет о профессии «программист». А тут скорее о падении качества софта в целом, а не о том, что именно программер на фирме виноват в этом.
Иначе в угаре обощений можно докатиться до того, что «Сгорел утюг? Так эта Ванятка из второго подъезда виноват — вечно он чё-то с компутерами мутит!».
Соответственно тогда и накал статьи… того — поутухнет. Потому что ВДРУГ окажется, что виноваты-то по большей части не девелоперы, а… см. https://habrahabr.ru/company/ua-hosting/blog/283022/#comment_8882704
А про ложное ощущение вины Ванятки из второго подъезда — это, пожалуйста, к бабкам у подъезда (при чем — не второго).
1. Низкий порог вхождения в программирование. Сейчас стало очень много программистов, научится программированию по курсам (с++ за 21 день) и пойти работать за копейки. Рынок сейчас такой, что есть много программистов у которых мало опыта, но стоят они дешево.
2. Заказчика не волнует качество, важно быстрее чем конкурент и скорее начать грести деньги. Началась эра стартапов, а в стартапе делается MVP выкатывается, собираются фидбэки и дальше делается. Либо стартап сразу продается. Короче как можно грести деньги.
Реалии такие, что даже компании сейчас работают по принципу как всегда работал фриланс. Решение нужно вчера. А ещё достаточно часто встречается, что на вчера нужно не один, а два или три проекта. И разработчик уже начинает разрыватся между ними, потому как вроде и домой хочется (да можно было бы уволится с такой работы, но эта проблема возникает во многих фирмах). Ну и бонусом ко всему этому стало не модно держать отдел разработки в штате. Зачем? На саппорт можно посадить индусов, а разработчиков тоже можно взять где нибудь по дешевле в удаленной фирме. Тот же HipChat для Atlassian разрабатывают на Украине аутсорс компания.
UPD: Да и стоит признать, что работа программиста перестала быть фаном когда хотели сделать как можно лучше и круче. Теперь это просто работа от звонка до звонка. Поработать дольше? Мне за это не платят. Так что не буду. В этом проблема.
Ну а че, чего так много часов. Тут же работы на 5 минут. Ты ж опытный программист. Здесь не должно возникнуть никаких проблем.
Ага… щас…
Или когда вы работаете в команде с человеком, который за многие годы привык использовать какой-нибудь устаревший инструмент или подход и не собирается его менять.
Например вместо того, чтобы использовать миграции — продолжает по старинке писать вручную sql файлики. И конечно же в самый неподходящий момент поле которое было такое малюсенькое, незаметненькое, пропадает и бац — то что видит автор.
Или человеку лень потратить 5 минут на настройку дебаггера, только потому что просто привык делать var_dump, console.log, print, println по всему проекту…
чтобы использовать миграции — продолжает по старинке писать вручную sql файлики
Вы имеете ввиду миграции в рамках EF? Или какие-то другие?
Суть в том, что должен быть способ убедиться, что используемая БД — «свежая» не дожидаясь пока ошибка вывалится в самом неожиданном месте.
Я понимаю, что мы принадлежим к молодой и еще неопытной сфере производства, что нам не хватает квалифицированных разработчиков для того, чтобы все делать правильно, но в последнее время возникает чувство, что мы даже и не пытаемся.К сожалению, это проблема существует не только в «нашей» сфере.
- Я вот в прошлом году сделал капитальный ремонт двигателя, и поехал отдыхать на Горный Алтай. На обратном пути прожгло один из клапанов, из-за того, что его плохо притерли, в итоге возвращался домой с «троящим» двигателем.
- Кто-то менял трубы отопления, плохо проварили и при нормальной подаче отопления затопили соседей.
- На Автовазе двери для «классики» делают разных размеров. Покупаешь новую дверь, а она на сантиметр длиннее/короче.
«Не мы такие — жизнь такая...»
Но, увы — я живу в реальном, жестоком мире, где у меня есть сроки и ТММ надо мной. Я стараюсь изо всех своих программерских сил, что бы у меня получался красивый, быстрый, читабельный и безбажный код. Но если не успеваю — пишу так, что бы код как минимум не глючил. Всё остальное — опции.
В противном случае я, конечно, могу писать код любой красоты и охрененности — но платить мне за это не будут. И как-то на горизонте не видеать миграционных агентов из страны Программляндии…
И как я в процессе написании рецензии на эту книгу увидел чудное сообщение 7-zipa:

А хотел всего лишь сохранить настройки.
Первым кандидатом оказалась симпатичная девушка в джинсах и свитере. Я пропустил мимо ушей ее резюме, обратив внимание лишь на упоминание какого-то сертификата Quality Assurance Engineer. Во время собеседования девушка вела себя довольно-таки уверенно, то и дело поминала Transition Phase, CMM, ISO9000 и трехлетний опыт работы. Все это время я смотрел в окно и думал о том, что сидеть она будет в комнате через коридор, и что я не смогу использовать обычный лексикон при объяснении тонких моментов тест-плана.
Вторым был парень-студент, во взгляде которого читалась острейшая нужда в денежных средствах. На этот раз я принял участие в собеседовании и узнал, что он – гениальный программист и веб-дизайнер, что у него даже есть свой сайт, и что он сейчас пишет IDE для PHP на MAC. Я бы выяснил, почему он предпочитает MAC, но поймал взгляд технического директора и свернул беседу.
После ухода кандидатов мы несколько минут поспорили о проблемах девушек в чисто мужских коллективах и проблемах излишней амбициозности читателей журнала ксакеп, и сошлись на том, что «теперь хоть матов будет меньше», — девушка была очевидным выбором. Мы уже направились к выходу, когда у технического зазвонил мобильник. Обменявшись парой реплик со своим собеседником, технический зажал микрофон рукой и шепотом известил нас о том, что у входа в офис ждет еще один кандидат. Мы переглянулись. Решение было уже принято, но как-то неудобно было давать от ворот поворот человеку, не поленившемуся притащиться к нам на окраину. Технический велел охране впустить, и мы вернулись в конференц-зал.
Третий кандидат выглядел немного моложе моих лет. Улыбнувшись, он представился и сел в кресло, бросив папку на стол. Маркетинговый директор порылся у себя в бумагах и спросил:
— Извините, я что-то не вижу вашего резюме. Вы не присылали его нам?
— Присылал, — ответил кандидат, с интересом оглядываясь вокруг, — Но у вас почтовый сервер глючит.
Это было не очень хорошее начало. Мы все-таки IT-компания, и достаточно тщательно следим за тем, чтобы у нас все работало. Если у него нет резюме – пусть так и скажет и не тратит наше время. Технический директор с некоторой даже обидой спросил:
— Может быть, проблема все же не в сервере? Со связью что-нибудь, или почтовый клиент не сработал? Вы, кстати, не с мейл.ру отправляли?
— Нет, — ответил кандидат, продолжая оглядываться. Его внимание привлекла настольная лампа. Щелкнув пару раз выключателем, он сказал: «Смотрите-ка!» – и полез под стол. Лампа вспыхнула и перегорела. Кандидат вылез из-под стола и продолжил:
— Если оставить выключатель в промежуточном положении, а потом включить шнур в розетку, лампа перегорит!
— Спасибо. Может быть, вы принесли резюме с собой? — поинтересовался я.
— Да, конечно, вот оно, — он подал лист А4, — а вот это — распечатка ответа вашего почтового сервера, — он подал еще один лист.
Сисадмин с интересом взял его из моих рук и пробежал глазами:
— Но!.. А как?.. Странно… Я сейчас! — с этими словами он почти выбежал из комнаты.
Директора тем временем изучали резюме. Я смотрел на кандидата. Он повернулся назад, и что-то настраивал в кресле. Это было обычное пятилапое офисное чудовище на колесиках, распространитель сколиоза и отложения солей. Наконец в кресле что-то щелкнуло, и потенциальный тестер оказался на полу. Это, казалось, ничуть его не расстроило:
— Я так и знал! Дефект в системе регулировки пневматического амортизатора. Если отогнуть ручку вверх, а потом вбок…
— Принеси ему стул, — попросил меня технический директор, и я вышел из комнаты.
В коридоре я встретил сисадмина. На его лице было такое выражение, как если бы он обнаружил пиво в одной из бутылей для кулера.
— Что там с почтовиком? — спросил я.
— Ты будешь смеяться. В его письме MIME-boundary нарушает RFC 2046. Ничего страшного, но наш сервер падает при приеме такого текста! Измени хотя бы один символ – все пройдет нормально. Я посмотрел в логи – сервер падал четыре раза в понедельник. Судя по всему, именно из-за этого товарища.
Вернувшись, мы застали технического директора за попытками задвинуть жалюзи. Кандидат увлеченно объяснял, каким именно способом он сумел их заклинить. Маркетинговый директор смотрел на него уже почти с ненавистью. За какие-то пять минут это чудо сумело сломать лампу, кресло, жалюзи и продемонстировать багу в нашем почтовике.
— А вот стол у вас хороший, основательный! — сказал кандидат. Как говорил Оззи Осборн, «я начал понимать, что приходит время прощаться».
— Мы с вами свяжемся, до свидания.
— Можно, я от вас позвоню? — спросил этот демон разрушения.
— НЕТ! — ответил технический директор таким голосом, что кандидат мгновенно исчез.
Налив себе еще немного кофе, мы обсудили результаты собеседования. Увы, девушка не прошла.
Сертификат QA Engineer не заменит природного таланта — с таким парнем в команде нам просто не удастся сдать софт, если в нем будет хотя бы один баг.
Завтра пятница, значит – знакомство с новым членом коллектива. Пиво и бильярд в Потерянном Кластере. Пожалуй, я лучше пойду в Пива.NET — пусть попса, но мало ли что он захочет протестировать в баре...
Для сравнения: в движке Razor из ASP.NET MVC экранирование делается при вставке строк в текст. Любая строка будет экранирована автоматически — и ровно один раз. Поэтому на ASP.NET MVC никто не занимается экранированием входных строк «на всякий случай».
Нормальные библиотеки для клиентской шаблонизации вообще работают напрямую с DOM, пропуская фазы формирования разметки и последующего разбора этой разметки браузером. Там тоже не надо ничего экранировать.
Или, скажем, json-сериализация: формально там тоже присутствует экранирование спецсимволов в строковых константах. Но все нормальные сериализаторы делают его самостоятельно.
Тут в пору создавать стартап «пенсионер Козлов», занимающийся тем, что заваливает саппорты нерадивых компаний сообщениями. Штук так по тысяче в день. Глядишь — уволят пару клоунов из менеджмента и начнут думать о качестве!
http://admnkz.info/
Уж думал было пройтись вручную по ошибочкам, но только непонятно куда их дальше девать… Больше всего печалит, что реально нужна некоторая информация с данного сайта ((…
слишком много «индусов» (в прямом и переносном смысле, но больше — в прямом).
А можно раскрыть суть обоих смыслов? Ибо лично у меня складывается впечатление, что после событий с курсом рубля, как минимум Россияне и есть те самые «индусы», тогда, как те же Индусы уже давно отдают кучу софта (и не только) на аутсорс.
Как минимум, я наблюдал не кислый приток проектов (сам работаю в аутсорсинговой конторе), после вышеозначенных изменений на мировом валютном рынке.
Я уже молчу про то, что свежие выпускники, довольно крутых ранее, факультетов самых крутых заведений в моём городе, унылые клоуны по сравнению с американской и японской школотой тусующейся на гитхабе. Не все конечно, но субьективно и смотря на инженеров урождённых в ссср, инженерией во многих случаях даже и не пахнет люди «что то делают и оно как то работает». Метод научного тыка через гугл и so.
Многие в свое ПО засовывают кучу того, чего вам не нужно(кто помнит древние версии Nero, а?). А сейчас, чуть ли не в блокнот засунут вебкит, чтобы в случае чего, показать вам, как будет выглядеть ваш текст в блокноте в записи на вашей страничке социальной сети, доступ к которой потребуется вам для нормальной работы блокнота…
К сожалению многие забывают принцип, что «программа должна делать что-то одно, но делать хорошо». И еще к большему сожалению, это не нужно широкой массе потребителей.
Он же бесплатен. Каким образом его монетизируют?
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 — там полно информации.
А сейчас, чуть ли не в блокнот засунут вебкит
atom.io, лол.
Представим ситуацию(далее Р — разработчики, М — оказывающий влияние на разработчика менеджер)
Разработчики пилят свой блокнотик, вроде бы всем все нравится, везде пони и ромашки.
М: Нужно вчера добавить в нашу незаменимую программу новый функционал, чтобы во вконтакте на стене отображался текст с блокнотика.
Р: Нафиг?
М: Премия лишняя?
Р: Ясно.
…
Р: Добавляется работа с сокетами, криптографией(https ведь). Ну и т.к. времени немного, для работы с json, поставим библиотеку libsuperjson. Правда она работает на регулярниках, поэтому поставим еще libultrapcre.
М: Ничего страшного, компы дешевые, для нашего незаменимого блокнотика доступно много ядер. Видеокарты вон все стали использовать.
Прошло пару дней.
М: Ребята, жизненно необходим для моей прем… для нас, чтобы можно было наблюдать за комментариями на наш текст из блокнотика, модерировать их, ну и отвечать.
Р: Нафиг?
М: Летний отпуск лишний?
Р: Ясно.
…
Р: Добавили в наш проект bhromium. Прошлые библиотеки приходится оставить, т.к. добавляли в спешке и никто не понимает, что там за бурда.
М: Замечательно! Можно считать, мы в продукте используем проверенные решения! Отличная реклама.
Прошло еще немного дней.
М: Ребята, спасибо вам искреннее за ваши старания. Благодаря им я получил свой процент с продаж. Жаль, что вы премию не заслужили. Но у вас выпал шанс! Крайне нужно добавить в наш блокнотик, чтобы рядом с текстом отображался аватар пользователя, причем в 3Д. Ну а т.к. наш клиент хочет играться с ним, надо добавить возможность катать этот аватар на виртуальной гоночной машинке по трассам, с чемпионатами и статистикой.
Р: Что за #$^&^% !?
М: Так требуют наши потенциальные будущие, в большом количестве, покупатели.
Р: Какие-какие покупатели?
М: Те, которые нам гарантирует инновационная Нигорийская система продаж, методологии которой непобедимы и в семинары которой мы уже вложили ваши премии и разумеется ждем от вас результата.
Р: Какого конкретного результата?
М: Денег конечно. И вообще у вас ипотеки, блестящие карьеры технического директора нашей будущей наверное корпорации, не портите её. Да и нашим инвесторам я обещал показать через три часа.
Р: А Тех. задание, письменное согласование?
М: О да, спасибо. В туалете бумаги нет, пригодилось. Короче жду через два часа.
Р: #:?*%?%#
Р: Интегрировали Ubity3D, систему обновлений, интеграцию с 1Ж(на всякий случай). Правда не знаем, работает это или нет.
М: Отлично? Вы суперспециалисты. И продукт супер. Осталось всего ничего до идеала. Мы уже пустили пару миллионов рекламу, где предупредили о релизе аналогичной мобильной версии.
Р: А нас почему не предупредили?
М: А вы сами почему не догадались? Утром будем презентовать… Ребята, в общем времени у вас полно… ребята… ребята вы куда? Эх жаль… Ладно наймем новых. Напишем как у всех, что мы супер блокнотико-стартап, перспективы развития, крайне адекватные сроки и большая зарплата. В общем РАЙ.
Софт, обложенный слоями сертификаций тоже существует.
В медицине, авиации и пр. Порядки цен совсем другие.
Тоже самое встречалось и в промышленности. Бумажки есть — качества нет.
Проблема в том, что когда есть некая сертификация, то у некоторых очень велик соблазн делать "под сертификацию", на не "делать хорошо". А дальше гори всё хоть огнём. И тут даже вопрос не в том, что сертификация на включает всех необходимых критериев качества, а в том что меняется подход и психология разработки.
Но куда деваться?
У каждого пользователя совершенно непредсказуемое сочетание железа, драйверов и стороннего софта.
Например у одного пользователя почему-то отсуствует один драйвер, который как правило в Windows сразу есть.
Или еще пример. Мы купили в офис новый компьютер, запускаем свою программу, и она сразуже падает со странным сообщением про Windows Clipboard.
8-(
Как оказалось — на новом компьютере был предустановлен словарь, который пытался нестандартным образом посылать команды нашей программе копировать что-то там в буфер обмена при перемещении мыши.
Для заказчика лучше иметь хоть какую-нибудь, пусть сырую и с багами, но работающую систему/проект сегодня, нежели красивенькую и стабильную, но не пойми когда в будущем. Особенно это характерно для стартапов, когда еще совершенно неясно «работающая» у вас идея или ерунда полнейшая.
Хотя, признаюсь честно, когда в штате есть свой тестировщик работать одно удовольствие.
Если компания — стартап, то ставить на быстрый выпуск дешевого и не очень качественного продука тоже не очень: подтянутся конкуренты, потратят чуть больше времени и отобьют у вас людей. К тому же, что делать после спада «хайпа»? Продукт-то кривой.
между скоростью и качеством выбирать лучше все-таки первоеЭто ко всему относится? Ремень безопасности? Автомобиль? Самолёт? А если не ко всему, то с чего б для ПО такие привилегии? AutoCAD'у или SolidWorks'у тоже можно делать ошибки?
Это ко всему относится?Да, разумеется.
Ремень безопасности?Изобретён в XIX веке, начал появляться в автомобилях в 60е, обязателен к применению с 70х-80х годов прошлого века.
Автомобиль? Самолёт?Что конкретно вы имеете в виду? Первые автомобили и самолёты таки напоминали по многим показателям современные сайты — и по степени удобства и по надёжности. Или вы о чём-то другом?
AutoCAD'у или SolidWorks'у тоже можно делать ошибки?Нельзя — но ведь они их делают. Историю о CATIA слышали? Имею в виду одну попытку перейти версии 4 на версию 5…
И выбор — весьма часто оказывается в пользу уже существующего самолёта. А вот когда у вас уже есть куча заказчиков и нормальное поступление денег от них — можно и на Dreamliner замахнуться.
В свое время в книжном, проходя в компьютерный отдел мимо полок «мысли выдающихся людей», зацепился за фейс Билла Гейтса на обложке.
Книжка оказалась его, не помню точно названия но что-то про «как развить свой бизнес». Открыв наугад попал на его слова: «если у вас стоит выбор доработать продукт до отличного качества или выпустить сырую версию с ошибками, выбирайте второе, это позволит вам начать завоевывать клиента пока на рынке еще нет других предложений, а в процессе вы доработаете свой продукт заодно получая деньги» (цитирую на память, особо не зубрил но смыл примерно передан, у кого есть книжка в наличии исправьте меня).
Так вот, беда в том, что некоторые не занимаются особо доработкой и исправлениями, ведь «поток» уже пошел, и уж если тендер «выигран» то конкурентов не будет.
Вот когда во главе стал менеджер — Microsoft полетел под откос (сатья этот процесс приостановил, и, похоже, сможет и весь Microsoft развернуть).
Это, кстати, типичная история: приход менеджеров, как правило, обозначает что «скоро у компании будут проблемы».
Не всегда, впрочем: классический пример — Лу Герстнер, «человек, который спас IBM» — при этом мало что понимая в IT.
Посмотрим на рынок одежды. Есть ширпотреб, он покрывает 99% потребностей. Ширпотреб дешёвый, качество низкое но населению хватает.
Есть просто качественная одежда, цена в разы выше. Вроде разница небольшая — ткань покрепче, швы поровнее… Но цена не на 10% поднимается а в разы.
Почему же в программировании должно быть иначе? Мы и видим результат.
Чтобы улучшить продукт, надо нанять тестера. Чтобы этот тестер нашёл проблемы, он должен быть и программистом, и администратором, и пользователем высокого уровня. Таких мало и они дорогие. Но такой найдёт 1% ошибок. Зачем тратить в разы больше на поиск одного процента, чем остальных 99%? Чтобы работало оборудование, анализировались логи, надо нанять штат администраторов, которые круглые сутки следят и готовы исправлять. Чтобы исправлять программистские ошибки, нужны круглосуточно работающие программисты. И так далее. Идёт гонка за удешевлением.
Не при чём ни ответственность, ни квалификация программистов. Дело в деньгах. Если делать качественно, это будет неконкурентно, так как 99% заказчикам нужен именно ширпотреб.
Так вот тут те же яйца, только в профиль. Произвести одежду (пусть даже ширпотреб) трудозатратно и ресурсоёмко, а вот писать софт — нет (программисту же не нужно создать миллион экземпляров приложения, достаточно всего одной). Про дорогое оборудование речи вообще нет — достаточно ноутбука). Готовых фреймворков и библиотек — тьма тьмущая на все случаи жизни (это не большое преувеличение).
Казалось бы, бери готовые решения и делай качественный продукт? Ан нет, не выходит каменный цветок.
Если Дядюшка Ляо шьёт «абибас» в подвале, то он просто дядюшка Ляо который шъёт ширпотреб, а вот если «Рога и Копыта Soft» делают ширпотреб, то они почему-то IT-компания с CEO, менеджерами, сеньёрами-программистами, тестировщиками и наполеоновскими планами потеснить Google.
Очнитесь, вы не интеллектуальная элита и надежда человечества. Просто наёмные рабочие в модной нынче сфере (с
Проблема именно в некомпетентных ленивых погроммистах и «эффективных» менеджерах которых по хорошему нужно ссаными тряпками гнать из профессии. Есть ведь множество примеров великолепных приложений которые создаются на энтузиазме (без сотен денег) и своими силами (без толпы страхующих).
Где этот софт будет выполняться — другой вопрос.
>> это не большое преувеличение
> Какие библиотеки и фреймворки мне использовать?
Я надеялся обойтись без явных уточнений, так как из контекста следовало что речь идёт о решении типовых задач. Вы ведь не будете спорить с тем что для решения типовых задач библиотек и фреймворков хватает с избытком?
Разумеется, может статься так что готовых библиотек нет, но в таком случае речь, наверняка, идёт не о типовой задаче.
> И рынок решает, сколько зарплаты платить.
Рынок ничего не решает, это скорее крайне неточная оценка склонная к изменениям. Позавчера доткомы стоили миллионы и миллионы, а вчера обесценились. Изменилось ли что-нибудь качественно за ночь? Нет.
Быть программистом стало стильно-модно-молодёжно и зарплаты начали пухнуть без веских причин (зато как в лучших домах
И программисты просто нужны всем в огромном количестве, поэтому и получают хорошие деньги. И те, что получают действительно хорошие деньги чем-то отличаются от остальных. Иначе бы у нас каждый стал программистом. Весь мир на всех уровнях (от простых пользователей, то гигантских корпораций) пользуется кучей информационных систем огромной (и растущей, потому что они все зависят друг от друга а систем больше и каждая сложнее) сложности с все растущими темпами развития.
Рабочий на заводе не сталкивается с постоянными изменениями спецификаций и требований.
Это скорее как строить летящий самолет.
Забавно, что Вы не первый, кто эксплуатирует эту аналогию:
А насчет полетов в космос — я скорее не про создание универсального решения всего, а про возможность поменять метод решения/детали реализации быстро и с наименьшей болью (не выкидывая все на свалку), когда поменяются условия окружения, вскроются какие-то еще особенности работы или обнаружат фатальные недостатки в изначальном решении.
Готовых фреймворков и библиотек — тьма тьмущая на все случаи жизни (это не большое преувеличение).
Как раз таки, на готовых фремворках и библиотеках «на все случаи жизни» и пишется ширпотреб. И проблема даже не в самих фреймворках…
Недавно потребовался в команду фронтенд разработчик, больше половины собеседуемых, позиционировавших себя middle-разработчиками не могут что-то сделать за пределами ангуляра, очень многие не в состоянии сделать ajax запрос на нативном апи браузера (а зачем, подтянем jquery ради одного только ajax), многие не в состоянии написать deapClone (а зачем, есть underscore/lodash), с заданием напишите простейший переключатель как в примере без использования js не справился вообще никто.
И это middle разработчики с опытом в фронтенде от 2х лет… Что они смогут написать?
Крик души: пожалуйста, не мучайте пользователя такими переключателями. С ними не понятно в каком они сейчас состоянии. К тому же не понятно как ими управлять. На днях наблюдал как мама не могла переключить такой переключатель свайпом, так как он реагировал только на клики.
Ну а насчет задания, нужно было что-то, что можно было бы сделать быстро с одной стороны, с другой увидеть владеет ли кандидат css.
А так согласен с Вами, неудобно
Многие говорят, что сериал совсем не про айти, но там действительно дельные вещи показывают ;)
На первоистчник никто не нападал, статья — точка зрения инженера, а не бизнесмена, на которого он работает.
/shrug
И обязательно — включать всё возможное установленное ПО всех версий во всех конфигурациях, все возможные варианты поврежденной системы (понятно — всех версий со всеми возможными повреждениями всего существующего ПО во всех возможных конфигурациях).
Фигли — деньги-то есть?
Второй вариант, заказчиком является хостер, который будет обслуживать почтовый сервер. Тут на первое место выходит удобство настройки и стабильность, ну и, конечно же, подразумевается, что письма будут уходить и приходить.
Третий вариант, заказчиком является компания, которая заказала разарботку почтового сервера для своих внутренних нужд. На первый план вхыодит удобство доработки и поддержки этого сервера, потом, возможно, удобство администрирования (но этим же будут другие заниматься, может быть) ну а если вдруг отправка и получение не работают так как надо, то либо допилим, когда баг произойдет, либо забьем, если никто не обнаружит.
Таким образом, получается что качество продукта сильно зависит от того кто будет его принимать и для каких целей он будет использоваться. Газовая компания, думаю, чихать хотела на то что у какого-то пользователя браузер красненьким что-то рисует, потому что сайт свою функцию выполняет (с их точки зрения).
Можно, конечно, шлифовать продукт до идеала, но вот только конечный пользователь не оценит. А если два решения делают одно и то же, но одно стоит дешевле, то выбор очевиден.
Внимание к мелочам и вылизанность, это признаки товара из категории «люкс», к коим софт никак не относится. Можно купить себе Бентли и испытывать эстетический оргазм от того насколько вылизанно и аккуратно автомобиль сделан, но никто не купит себе почтовый сервер чтобы потом хвастаться им в кругу друзей «глядите, тут даже строчки в конфиге выровнены по фэншую, а уж сорцы вообще эталон».
Внимание к мелочам и вылизанность, это признаки товара из категории «люкс», к коим софт никак не относится.
Зависит от софта, есть огромные энтерпрайз порталы для внутреннего пользования бешенной ценой, есть банковский софт, есть софт для ракет, самолетов, автопилотов для машин.
Можно купить себе Бентли и испытывать эстетический оргазм от того насколько вылизанно и аккуратно автомобиль сделан, но никто не купит себе почтовый сервер чтобы потом хвастаться им в кругу друзей «глядите, тут даже строчки в конфиге выровнены по фэншую, а уж сорцы вообще эталон».
Почему никто? В корп. секторе это сплошь и рядом, когда и конфиги выравнивают по фэншую и в сорцах в комментах пишут войну и мир и траву красят лишь бы Клиент с большой буквы был доволен. Тут вопрос просто количество желающих получить супер-пупер люкс продукт за Овер кучу баксов, где все вылизано вплоть до исходного кода (такие Клиенты тоже есть).
Если ты получаешь деньги за имитацию работы, за кривой и глючный продукт, то не удивляйся, когда, например, чиновники станут исходить из тех же предположений, и предоставлять за свою зарплату глючный и неполноценный сервис.
Но мы то знаем…
Если ты получаешь деньги за имитацию работы, за кривой и глючный продукт, то не удивляйся, когда, например, чиновники станут исходить из тех же предположений, и предоставлять за свою зарплату глючный и неполноценный сервис.Вы уж конечно, извините, но между чиновниками и «конкретным Василием» есть небольшая, но принципиальная разница: возможность выбора. Продукцию «Василия» заказчик (или покупатель) может использовать или не использовать — по своему желанию. Отказаться от «сервиса» чиновника — увы, нельзя.
P.S. Предупреждая очевидное возражение: да, если компания становится где-то монополистом, то требования к ней меняются и с неё начинают спрашивать гораздо серьёзнее. По, в общем-то, понятням и разумным причинам.
Visual Studio перестала предлагать поставиться в другое место, что неимоверно ужасно.
Там проблема не сколько студии, сколько сторонних утилит и дополнений (а в ряде случаев ещё и скриптов сборки какого-нибудь пакета из npm), в которых пути к студии и её утилитам захардкодены.
Всегда есть, как минимум, пожелания к качеству. Но все ли готовы заплатить за него более высокую цену? Если уверен, что желающие есть и их много — создавай стартап, который выкатит аналог высокого качества задорого
Если из-за низкого качества разработки не получается скачать нужный файл, заполнить заявку или прочитать статью на сайте, то это очень плохо, но не слишком критично. Реально критично то, что из-за низкого качества кода стали появляться серьезные ошибки в безопасности.
Например, недавно здесь была статья о выборе хостингов в качестве альтернативы DO. Я специально посмотрел каждый из представленных в статье и в комментариях хостинг, на многих быстро нашел довольно критичные уязвимости уязвимости. При этом, среди компаний, которые работают с конфиденциальными данными, мало кто готов сотрудничать с теми, кто находит уязвимости.
Но недавно я получил чудесный ответ на сообщение об уязвимости.
«Мы сознательно пошли на игнорирование проблем в безопасности, чтобы ускорить процесс разработки».
Но недавно я получил чудесный ответ на сообщение об уязвимости.Интересно кто таким честным оказался.
«Мы сознательно пошли на игнорирование проблем в безопасности, чтобы ускорить процесс разработки».
Ведь это то, что делают 90% (если не 99%) разработчиков, но при этом мало кто готов об этом вот так просто сказать…
Я не разработчик, я связист сетевик. И да, приходится ковыряться в старых многослойных паутинах. И да, заказчики часто просят просто кинуть провод или поставить точку доступа просто так, а потом они сами когда-нибудь это всё приберут. Но по факту, следующая группа аутсорсеров так же будет плеваться и разгребать паутины пытаясь понять, как это всё работает и как это всё починить.

Посчитать сколько уже было потрачено денег на латание дыр и экстраполируя показать через сколько рефакторинг окупит себя.
За деньги делаю по ТЗ. Но все равно, к примеру, если я верстаю, то не использую бешеное количество фреймворков для отображения одной более-менее статичной странички и на мобильниках аккум не жрется неистово.
Насчет качественного кода не могу сказать — все мы люди и нам свойственно ошибаться.
Еще я вижу менеджеров, которые действительно хотят вчера как и разработчиков, которые говорят «надо сделать это так, чтобы ничего не делать и все работало». Подобные выражения их порой приводят к совсем неверным суждениям и результатам.
Посмотрим, какое у меня будет суждение, когда я буду ПМом…
Нет, мир остался прежним. Стало меньше… содержимого©
Согласен с товарищами высказываюми своё фи про Agile. Имхо, эта соковыжималочка сгубит ещё не одну хорошую идею. Хотя, тут всё зависит от жадности рулевых товарищей. Но все они «покупая машину о самолёте мечтали» ©.
Лично я, не раз и не два получал проникновенный разговор с тимлидом или пмом о том, что слишком много времени трачу на качественную реализацию функционала. Пару раз после такого разговора фича сворачивалась в некотором спешно недоделанном порядке, и шла в продукт/заказчику как есть.
Последние пару лет, как в наших снг стало де-факто стандартом всякое гибкое, я чувствую как накапливается усталость(может конечно тупо старею, хм).
Слышал от товарища опыт работы в одной зарубежной конторе, там сий процесс поставлен совершенно на другой уровень:
имеется система баллов, если ты не набрал норму баллов — уволен, если ты попал в tail пусть будет 100 (точную цифру не помню) — ты тоже уволен. Т.е. контора постоянно увольняет сотрудников и набирает не успевший подустать свежачёк с рынка. Мы с вами, как разумные люди понимаем, что менее чем за полгода в крупный проект вникнуть не выйдет. Среднее время выживаемости человека в сей конторе (сужу по выносливости и замотивированности товарища) порядка 7-8 месяцев. Итого, полезная контрибьюция в продукт на минимуме, контора аутсорсная и не самая мелкая, вакансии на том же stack overflow висят постоянно, зп для России и прочих индусов более чем высокая (на hh такие цифры практически не попадаются для разработчика). Ждём, когда появится на экранах страны сия картина.
А нынешние адепты этого же agile, в большинстве своём забывают первые же строчки того манифеста, про то, что там главное и всё такое. Всех интересует бабло, прямо сейчас, а потом можно с красивой строчкой в резюме стартануть новый проект, можно и в новой конторе.
Лично я вижу былинное назначение agile методик продать 20 джунов во главе с мидом, разрываемых чувством долга и своей крутоты, как трёх синьёров, потом, тем кто выживет приписать лычлку мида и выше и поставить во главе следущей волны нанесения качества и высокого уровня услуг бедному кастомеру.
Но, я смел наблюдать именно такое мирощущение, глубоко вовлечённых товарищей, что всё Ок. Однако, именно в таких командах встечались технические лиды, уверенные, что например, переполнение буффера вызывает исключение, зато, они были сертифицированными скрам мастерами.
Не так уж много я и информации имею, сужу в основном по тому что вижу вокруг и по рассказам от различных людей с которыми общаюсь. Про тот же ibm слышал от товарища который там работал, правда лет эдак 5 назад, поэтому вполне могу иметь и тухленькую информацию. Но о5 же — выпускать софт для поддержки процессов и говорить всем, что «мы им пользуемся» не значит жениться.
Вполне допускаю, что вообще 90% сказанного мной бред, вызванный недостаточной осведомлённостью и текущим окружением. Что вижу — то пою.
При agile — глубина падения размазанна во времени, прогресс имеется, но что бы понять всё ли идёт хорошо на старте, нужны всё-таки верная декомпозиция и предварительная оценка. Единственное достоинство для клиента — возможность соскочить в начале или в середине. Для этого, он должен крайне внимательно следить за тем, что происходит. Т.е. риски нарезанны мелкими кусочками, но никуда не делись. Нужно вести постоянный подсчёт, что тоже чего то да стоит.
С другой стороны если из 10 проектов по тому же водопаду командой было сделанно 10 проектов в срок, шанс что они налажают на проекте того же типа стремиться к нулю. Куча затрат на коммуникации и итеративную работу с рисками пропадает. Но нужно иметь дорогую, хорошо обученную команду на всех этапах, да.
И, во всяком случае для внутренней разработки, проваленные проекты это нормально если делать новое, особенно когда можно рано соскочить поняв, что оно не работает и работать не будет. И я что-то не вижу ни одного преимущества для компании-разработчика от использования этого водопада, ибо «посмотрев на то, как лажанула контора никогда в неё не придут» сомнительное преимущество.
На сколько я слышал, в том же ibm, до сих пор никому никакой agile никуда не упёрся.
Хоть и являюсь ярым сторонником водопада, всё же не стоит упоминать софт от ibm если близко с ним не работали.
После знакомства с семейством продуктов Tivoli у меня сложилось впечатление что «там всё очень плохо».
Имея в виду коммерческую разработку, думаю, здесь присутствует сочетание разных факторов, один явный общий фактор это зрелость, определяющий то, что мы все считаем нормой:
- Разумная попытка менеджмента сэкономить — Очень трудно построить вменяемый бизнес кейс, почему нужно тестирование разного типа. Ну и построив его — попробуйте этот кейс протащить до бюджетного комитета. Инициатор, скорее всего столкнется с людьми далекими от понимания сути тестирования, но знакомыми с финансовыми расчетами, надо их суметь грамотно убедить не только в конечных 100500% ROI, но и в изначальных посылках
- Безграмотность руководства — слепая уверенность, что разработчик сам все протестирует, а если не сделает, мы его накажем. При этом упускается из вида, что отвечает за продукт сам заказчик в итоге, тот кто акты подписывает. В конечном счете, тот, кто подписывает, понимает, что нужно тестировать, обычно после факапа, но сталкивается с тем, что это надо как-то продать наверх, может получится, а может нет: лень, боится за свое место, не разбирается в теме… (нужное подчеркнуть). По принципу лучшее из двух зол, попытается создать тестирование своими силами, тут и велосипеды бывают и удивительно удачные попытки
- Пользователи — в общем-то они стали драйвером толкнувшим рынок в гибкие методики и в DevOps. Они неразборчивы в среднем, ведь нужно понимать что такое качественный софт, чтоб как-то ранжировать тот софт которым пользуешься.
- Отсутствие обратной связи — Коммерческие разработчики пытаются удовлетворить этого среднего пользователя, тщась угадать, что из параметров софта ему важно. Скорость выпуска фич? Продвинутость фич? UX? Стабильность? и так далее… При этом угадать — самое верное слово. Сейчас появляются решения которые могут помочь выяснить профиль использования софта, т.е. понять как используется то, что сделано, используется ли, есть ли какие ошибки. Пока этой обратной связи нет для большинства коммерческих разработчиков. Типовую поддержку я не считаю этой связью, т.е. она не собирает профиль использования и т.д.
Думаю много еще факторов есть, и не надо валить все на Agile методики, это лишь инструменты.
Но, очевидно, что происходящее на рынке это что-то новое, так что все держим ухо востро.
Клиент, ввязавшийся в agile разработку с неопытной командой, родившийся в ряде других подобных разработкок, и получающий свой mvp рано или поздно понимает, что если он не выпустит эту сыроту на рынок, то просто напросто прогорит.
Он говорит своим клиентам — теперь, я тоже, придерживаюсь agile, вы стройте свои решения, а я выкачу вам mvp. И мы вместе будем гибки. Ну, и дальше больше.
В итоге все продают друг другу прототипы и наброски, на фронте их кое как подкрашивают и выставляют конечным пользователям. А т.к. так поступают подавляющее количество людей на рынке, ибо конкуренция, пипл хавает. Ослик плакал, но продолжал кушать кактус.
Вот ребяты уже во всю пиар компанию проводят. Ни в одном браузере ни одна фигня кроме открытия plain text документов, лично у меня не заработала.
Пипл хочет именно этого — скины, заставки…
Если заказчик не готов платить за 99% работы, а готов платить только за 1%, то понятно, что инженеры будут с сниматься той части, за которую не плалят и перебрасываться на то, за что платят. Движущиеся многоугольнички, к примеру.
В этом смысле меня скорее удивляет удивление автора: а почему он считает, что какие-то огрехи, за устранение которых программисту никто не заплатит, должны быть устранены? С чего вдруг?
ПО тут ни разу не уникально. Китайские ножи которые выглядят «как настоящие» но разваливащиеся после отрезания пары кусков колбасы — их аналог в реальном мире.
Со временем люди научатся замечать «подводную часть айсберга» (или сами или экспертов наймут) и всё станет получше, а пока — вот так.
Вот так бывает, как в рыночные отношения вступают не идеальные эгоистичные и осведомлённые агенты, а реальные люди. Невидимые части айсберга первыми засасываются в водоворот лоукоста.
А по статье добавлю — недавно пытался записать видео с экрана на win8, в итоге перепробовал 4 программы, ниодна не записала видео нормально, поставил кучу кодеков (и вирусов наверное заодно с ними), почистил реестр и директ фильтры всякие, ничего не помогло.
Разработчики в край обленились?
Нет, это переводчики в край недоучились.
Статья в оригинале назвывается "Have Software Developers Given Up?". "To give up" — "сдаться, прекратить деятельности или попытки, особенно в признание поражения". Правильный перевод — "У разработчиков [совсем] опустились руки?". И лень тут совсем ни при чём.
Вот, собственно, и всё: либо вы «вкручиваете» костыли, либо опаздываете — и умираете.
P.S. Разработчики «протоколов OSI», правда, отыгрались: использовав «административный ресурс» они заставили все ВУЗы учить TCP/IP в терминах пресловутой модели OSI, не имеющей к TCP/IP, в общем-то, никакого отношения. Но это уже совсем другая история.
Как правило, условия разработки диктует тот, кто платит денежку. Каким бы крутым и опытным разработчиком ты не был, ты работаешь за деньги, добровольно продавая себя и свои навыки. За деньги, Карл. А не за идею о хорошем и качественном софте и железе, и тем более не за идею радостных и веселых конечных пользователей.
А если по простому — дядя сказал сделать завтра, ты берешь палки, какашки и делаешь завтра. Или делаешь, чтоб было готово завтра, если ты лидер группы. Или отдела. Причем, если у тебя есть совесть и… не знаю, что-то такое, что не позволит тебе сделать «полный тяп-ляп», который развалится при первом запуске прям на столе приемной комиссии — ты делаешь хорошо, продумывая мелочи и за нехваткой времени залепляя их заглушками с грустным «потом доделаем, наверное». Что будет, если ты не сделаешь? Плохо. А если ты потратишь ограниченные человекочасы на качество, не выполнив основной поставленной перед тобой задачи? Очень плохо. А что же будет, если ты выполнишь основную задачу, с 5-10 (да хоть 20) неточностями и багами, но таки в рабочем состоянии, по большей части? Плохо. Но лучше, чем очень плохо, правда?
И тестировщики, и разработчики, и менеджеры тут не причем. Тестирование не гарантирует отсутствие ошибок. Порядок — он в головах. Дело в поставленных задачах и их исполнении. Порою очень смешно читать про всякие методики планирования и расчета времени на разработку, особенно если задания, исходящие от руководства компании, начинаются со слов «Бросай все свои текущие дела, и делай срочно ». Я очень надеюсь, что это специфика именно российских компаний, во всяком случае хочется в это верить.
П.С. В коллективе даже есть специальный локальный мем, «бросай все и иди настраивать мультики», именно для таких заданий, срочных, бессмысленных и беспощадных )
Хочет чуда — ну пойди поищи волшебников.
Понятно что заработок терять не хочется, но потеря репутации может обойтись дороже.
Но посыл поста не в этом… Вам не кажется, что раз явление присутствует на рынке и многие люди это замечают, то это ни плохо и ни хорошо — это просто движение рынка.
В ту же степь можно вспомнить советские ботинки (некрасивые, да), которые носились три поколения VS китайские тапочки из клетчатых сумок. Да, невысокого качества. Но ведь пост именно об этом. Почему такая странная аналогия? Очень много параллелей лично мне видится. Нет смысла тратить год на разработку качественного приложения для интернет магазина, который закроется через полгода. Нет смысла разрабатывать софт под тендер и вылизывать код, потому что тендер разыграют через две недели, а ваша компания уже подала заявку.
По большому счету вообще нет смысла писать что-то достаточно длительное время, с современным темпом развития технологий и рывками моды и спроса. Слишком много рисков пролететь.
Но есть исключения. Много. Например — когда приобретается не сам продукт, а продукт как сервис. Абонентская плата. Постоянный штат. Техподдержка. Но это уже совсем другая история, верно?
и он уйдет к тому, кто согласится на те же сроки, а в известность про косяки не поставит
Я очень надеюсь, что это специфика именно российских компаний
Вы можете с чистой совестью хоронить эту надежду. В Европе подобные компании также встречаются.
Проблема программистов не в том, что им платят за то чтобы они делали работу быстрее чем возможно сделать качественно. Проблема в том что программисты не готовы объяснять начальству, что за такие сроки работа будет говно, не готовы отказаться от работы, если видят что получится говно. А поскольку таких кадров, не готовых обсуждать разумность выставленных сроков — дофига, остальные тоже вынуждены торопиться за поездом чтобы не остаться без работы.
Или в том, что начальство не знает старой хохмы про "быстро, качественно, недорого".
Работаю сисадмином в одной IT компании ориентированной за США. Имеется весьма крупный клиент. Пишем по большей части на C#. С разработчиками имею дело каждый день весьма плотно. И знаете что? Сейчас в ходу ASAP Driven Development. Таки да — «сделать максимум за неделю», «мы уже продали, срочно напилите функционал» — нормальный QA процесс просто невозможно произвести за сроки которые ТРЕБУЕТ клиент. Потеря клиента — минус большой капитал для фирмы. Посему так и работаем.
З.Ы. Есть проект в котором логи дев-консоли просто потрясают воображение количеством информации. Туда выводится практически все что происходит на фронте и беке. 2 года как в релизе…
*Что введенный пароль был *сокращен* до 8-ми символов
Т.е. сначала ему написали что пароль слишком короткий, а когда он ввел подлиннее — ему его сократили т.к. слишком длинный получился.
Решили поменять руководящий состав на заводе. Пришли молодые управленцы и говорят:«У вас есть брак, а почему мы его не учитываем в планах?». В итоге установили планку брака не более 10%. Шло время. На других заводах брака уже меньше 1%. Начали разбираться в чём дело. Оказалось, что когда в плане по браку оставался запас, весь исправимый брак «списывали» в неисправимый.
Факторов которые влияют на качество продукции много — это и не профессиональное управление, инертность пользователей(в первую очередь выбирают не качественное, а что первым выдаст гугл), низкий порог вхождения в сферу информационных технологий, отсутствие нормальной стандартизации и т.д.
На сегодняшний день, создание качественной продукции — это выбор, а не обязанность.
P.S. Что странно, а почему за один месяц он не нашёл ни одного бага в windows 10?
.
С другой стороны, разработчику тоже нужны деньги пораньше — чтобы довести продукт до ума при перерасходе бюджета (что при разработке ПО встречается сплошь и рядом), ну или чтобы просто отдать пораньше кредит в банк, сэкономив на процентах.
И не нужно говорить, что раньше софт был качественней — раньше софт сыпался в access violation через раз из-за несовершенного инструментария.
Из-за отсутствия интернета не было возможности взять и накатить патч, так что да, тестировали и вылизывали как могли. Что не лучшим образом сказывалось и на сроках разработки, и на цене. А дешевое и некачественное всегда конкурентноспособнее дорогого и качественного. Тот же айфон — это редкое исключение. Было.
$('#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);
Проблемы в больших запросах у программистов. Работодателю надо сделать продукт за месяц, но ему не выгодно держать большой штат разработчиков с большими зарплатами, поэтому на рынок выпускается хоть какая-нибудь альфа, едва прошедшая тестирование.
Проблемы в больших запросах у программистов
А что значит большие запросы у программистов? Если по деньгам и прочим вкусностям, то это закон спроса и предложения. Не была бы спроса, не было бы запросов.
Если о желании сделать качественнее, а не тяп ляп это нормальное желание любого специалиста, за исключением тех кто тупо просиживает штаны за зар.плату (скажем, не каждому архитектору или строителю хочется сдавать кривое, разваливающуюся здание, да ещё и ставить на это свою репутацию).

Да и бывает что не только разработчики не доглядели но и тестеры и всплывают баги в процессе эксплуатации.
Всякое в жизни бывает, все не предусмотришь.
Хороший разработчик должен быть ленивым.
сообщение о том, что пароль должен состоять из восьми знаков
password truncated to length of 8 — означает, что пароль обрезан до 8 символов, а не должен состоять из 8 символов. Это автора и возмутило, что то короткий, то длинный
откладываю установку адблока
…
причина этой беды: всплывающая реклама во всю страницу
сам себе злобный буратино
1. Не заменили значок для сайта офиса:

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

Мелочи конечно но вот такое отношения сейчас к выпускаемым продуктам.
Сейчас уже считается нормой
- херачить классы на 2000 строк
- использовать наследование там где оно вообще не нужно
- усложнять код анонимными методами
- использовать в работе только шаблон Repository
Но даже при корректном переводе статья не передаёт быть набросом. Так можно на самом деле раскритиковать любую профессию. Например — дворников.
Вот без напряга родил план статьи «Сдались ли дворники?» чисто на жизненных примерах:
— кушал в заведении — под столом была прилеплена жвачка;
— шел по улице — увидел переполненную мусорку, из которой вываливался мусор;
— выпал снег — не расчистили проезд к подъезду;
— шел по улице — навернулся на льду;
— огромные лужи перед работой;
— дым от сжигаемых осенних листьев не даёт нормально дышать;
— дома на мониторе неубранная пыль;
— в офисе прошел по вымытому полу — остались грязные следы!!!
Теперь осталось добавить пафоса, сверстать всё в одну статью и прикрепить заголовок — «Неужели дворники опустили руки?»
Смешно? Вот и я о том же…
Защитники разработчиков вызывают улыбку. Вспомните Райкина:
«я лично пришиваю пуговицы. К пуговицам претензии есть?»
…
«я лично писал цикл do-while. К циклу претензии есть?»
А если хотите хороший костюм… э… хороший код — тогда и отдайте управление процессом разработки в руки программистов! Будет вам отличный продукт — без багов, удовлетворяющий каждого клиента, использующий новейшие разработки в области ПО — только очень дорого и медленно. Но вам-то хочется быстро, качественно, НЕДОРОГО?
Так что — к циклу do-while претензии есть?
я пишу исследование на тему применения agile методов в российских digital проектах, если вы можете, проведите, пожалуйста 5 минут и помогите хорошему человеку :) http://goo.gl/forms/FzvhiLyciH Спасибо!
Это все, что я хотел сказать здесь — обсуждение полностью не читал (упаси Боже!)
Разработчики в край обленились?