Все что будет написано ниже - всего лишь мои наблюдения и никак не абсолютная истина.

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

Предположим мы пишем софтину на заказ. Если мы напишем все идеально и качественно, то софтина работает, багов нет, саппорт не нужен. И заказчику смысла платить нам нет. Пусть даже его бизнес будет меняться и нужно будет дописывать фичи. Но если будут еще баги и т.п, то денег из заказчика мы вытянуть сможем больше. Деваться то ему больше не куда. Мало кто наш код дописывать будет. Главное не переусерствовать, что б не завалился проект.

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

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

Но разве такая концепция софтостроительства не есть пережитками прошлого (для некоторых) индустриального века. Или никакого информационного века не существует?

кросспост в мой ЖЖ

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
          0 голосов

35 Комментариев на “Философские рассуждения”

  1. Rayan сказал:

    :lol:

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

    и осоновной мотив в вебе - если работает то пусть работает, похуй как. И бабки большие крутятся. и 95% веба - редкое говно или спам

    вот такие дела :)

  2. Руслан Пилин сказал:

    В общем-то я примерно об этом и писал... Что не выгодно с точки зрения бабла писать качественный софт. :smile:

  3. Rayan сказал:

    Руся, качественный это какой?

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

  4. Руслан Пилин сказал:

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

    Скажем так, и жигули и феррари решают задачу - они ездят. Чувствуешь разницу в качестве? )

  5. Rayan сказал:

    феррари кста часто ломается на наших дорогах, все профессиональные автомобилисты считают такие автомобили говном :)

  6. Руслан Пилин сказал:

    Это потому что у них нет денег, что б его купить )))...

  7. hlt сказал:

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

  8. old man сказал:

    небольшое лирическое отступление...

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

    По поводу основной мысли статьи я тоже не могу согласиться.
    Пример 1:
    Мы пишем код "на коленке" отдаем клиенту и он доволен так как все что он хотел мы реализовали.
    Через некоторое время клиент просит нас добавить новую "пимпочку" в то что мы написали. И тут начинаются проблемы. Так как изначально код писался похабно то оказывается что проще переписать все сначала чем дописывать то что есть. Но ведь клиент об этом не знает (а кто ж ему скажет!) и он платит только за небольшое изменение. В итоге даже если мы все переписываем и клиент снова доволен мы "попали на бабки" так потратили намного больше рессурсов чем было оплачено.
    Пример 2:
    Мы сново пишем "как попало", отдаем клиенту и клиент НЕ доволен. Начинается длинная фаза баг-фиксинга, рефакторинга и т.д. В итоге мы опять таки тратим намного больше запланированного и клиент, как правило, больше с нами дела не имеет.
    Т.е мы упустили возможность работать с этим клиентов в будущем плюс приобрели плоху славу среди партнеров клиента.

  9. usix сказал:

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

  10. Руслан Пилин сказал:

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

    Когда договариваются насчет пимпочки тут скорее просчет руководства, которое не понимает специфики отрасли.

    Хорошие кодеры долго в комбинатах не живут. )

  11. Fritz сказал:

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

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

  12. pamella сказал:

    Автору:
    пригласите меня в мир идеального кода? с удовольствием поью чайку и понаблюдаю за безошибочно работающими програмами :)
    имхо, нету "идеально" софта без глюков :)

  13. Руслан Пилин сказал:

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

  14. GLad сказал:

    ...а следовательно - где заканчивается качество и творчество - начинается бизнес
    вот и идёт ломка НАШЕГО сознания - хочется и писать красиво, и оптимально, и быстро - как на одном дыхании, и получать за это большие бабки.

    иногда чтобы заработать больше денег надо создавать гавно, а создавая гавно ты деградируешь
    иногда хорошую идёю никто не оценит

    советую посмотреть Ашманова (его выступление на рит)

  15. pamella сказал:

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

  16. Руслан Пилин сказал:

    Вопрос больше риторический... Думаю, Памела, Вы просто не работали в больших конвейерных компаниях.

    Писать код хорошо выгодно для кого?

  17. pamella сказал:

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

  18. Руслан Пилин сказал:

    А что Вы подразумеваете по понятием "качественный софт"?
    Об этом я тоже писал.) "Но если будут еще баги и т.п, то денег из заказчика мы вытянуть сможем больше. Деваться то ему больше не куда. Мало кто наш код дописывать будет. Главное не переусердствовать, что б не завалился проект."

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

  19. pamella сказал:

    филосовствовать можно долго и упорно.
    если Вы считаете, что это метод принесет Вам больше материальных благ - Ваше право :)
    о качественном софте тоже можна спорить и думаю у каждого свое понимание и спор превратиться в "на вкус и цвет ...."

  20. Руслан Пилин сказал:

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

  21. Vortex сказал:

    Мне интересно, а будет ли заказчик платить за исправление багов? Т.е. в том случае, если программа не выполняет того, что от неё требуется или выполняет некорректно?
    Естественно, если заказчику нужна новая фича, то он за неё должен заплатить... А как в случае багов в программе, за которую он уже заплатил и ждёт нормальной работы?

  22. Руслан Пилин сказал:

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

  23. GLad сказал:

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

  24. pamella сказал:

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

  25. jam сказал:

    1. любая точка зрения имеет место быть
    2. любая политика, которая работает и приносит прибыль - эффективна
    3. индустрия ПО это не краеугольный камень и тут работают любые правила любой индустрии (часто после процесса адаптации правила)
    4. менять правила и мир допустимо и даже необходимо
    5. любые рассуждения имеют смысл, если в них есть вывод

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

    Правило, которое я вырабатываю в компании:
    1 человек работает на 3-4х проектах, за счет постоянного переключения между ними доля рутины исчезает

  26. Руслан Пилин сказал:

    Все-таки, как я вижу тема затронута актуальная. )

    >Профессионал отличается от дилетанта тем, что может
    >простую и рутинную работу превратить в творческую и
    >интересную.

    И выполнить ее не за 1-2 дня, а за 1-2 недели.) При этом, конечно, выполнить красиво, творчески и качественно, но мало какой софтостроительный комбинат будет так увеличивать свои издержки. Я не говорю, что нет коипаний, которые подходят творчески. Они слава богу есть. По крайней мере в Москве я знаю одну такую. В Черкассах и Киеве, к сожалению, таких не встречал.

    Интересно, а я всегда думал, что профессионал - это тот, кто за работу деньги получает.

    >Правило, которое я вырабатываю в компании:
    >1 человек работает на 3-4х проектах, за счет
    >постоянного переключения между ними доля рутины
    >исчезает

    Я бы повесился работать на 3-4х проектах. Я на 2-х работал, и это мягко говоря напрягало. Хотя, конечно, это вопрос масштабов. Если человек эти 3-4 проекта делает меньше, чем за месяц, то почему бы и нет. А когда только первоначальное "вгружание" в проект проходит с месяц, думаю, участие одного человека в более чем одном проекте не выгодно и компании, и человеку.

  27. Fritz сказал:

    3-4 проекта могут быть в нормальном режиме когда есть ритмичность поступления фидбека от заказчиков, и да если эти проекты не особо сложные.

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

  28. jam сказал:

    >И выполнить ее не за 1-2 дня, а за 1-2 недели.) При >этом, конечно, выполнить красиво, творчески и >качественно, но мало какой софтостроительный >комбинат будет так увеличивать свои издержки. Я не >говорю, что нет коипаний, которые подходят >творчески. Они слава богу есть. По крайней мере в >Москве я знаю одну такую. В Черкассах и Киеве, к >сожалению, таких не встречал.
    бла-бла-бла

    >Интересно, а я всегда думал, что профессионал - это >тот, кто за работу деньги получает.
    Деньги за работу почучают все и дело совсем не в суме

    >Я бы повесился работать на 3-4х проектах.
    Ты - да

  29. case сказал:

    >Деньги за работу почучают все и дело совсем не в суме

    не факт... есть бесплатно работают :razz:
    любителями называются....

  30. zeroreturn сказал:

    нет case ты не прав, можно работать бесплатно какое-то время на преспективу (свой дело развивать к примеру)

  31. case сказал:

    конечно можно, Дмитрий, даже нужно... :smile:

  32. geaz сказал:

    Прежде всего, сенкс за ресурс, ребята (обнаружил недавно и случайно)...

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

    Что касается оцениваемости творческого подхода - это безусловно ценится, другое дело, что не всегда мнение творца не совпадает с мнением окружающих :), но это все приходит постепенно, главное не сдаваться.

    Компании, которые подходят творчески есть и в Черкассах (по крайней мере одна - это точно ;) ). Более того, этой компании нужны соответствующие люди (но об этом будет в другом топике)

  33. pamella сказал:

    сорри за оффтоп:
    2Руслан Пилин:
    >По крайней мере в Москве я знаю одну такую.
    Luxoft?

  34. seagull сказал:

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

  35. zeroreturn сказал:

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

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





Оставте свое мнение