LINUX.ORG.RU
ФорумTalks

Бизнес-задачи, менеджмент, быдлокодинг

 , , , ,


1

2

(в изоляции скучно, не кидайте слишком большие камни)

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

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

Бизнес нанимает программиста решать свои задачи, платит ему хорошие деньги, программист их решает.

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

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

Из чего следуют вопросы:

  1. Должен ли инженер разработчик решать в первую очередь задачи бизнеса (и получать вот это самое выше), или же максимально сконцентрироваться на своей непосредственной работе и делать технически безупречный продукт, упираясь и пытаясь продвигать техническую повестку, идя вразрез с сеюминутными прихотями какого-нибудь отдела маркетинга, например? Дихотомия очевидна, а мир не идеален. Либо то, либо другое.
  2. Если все вокруг козлы, а разработчик Д’Артаньян, и все вопросы всё равно решаются через него, должен ли он ради общего дела стать крайним переквалифицироваться в менеджера?
  3. Когда говнокод крутится, а бабло мутится, должно ли вообще кого-то волновать качество?
Ответ на: комментарий от Nervous

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

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

Бизнес-задачи, менеджмент, быдлокодинг (комментарий)
Бизнес-задачи, менеджмент, быдлокодинг (комментарий)

WitcherGeralt ★★
() автор топика
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

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

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

vaddd ★☆
()
Ответ на: комментарий от WitcherGeralt

читай тред в который врываешься

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

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

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

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

Я, кстати, еще не определился %)

Nervous ★★★★★
()
Ответ на: комментарий от vaddd

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

WitcherGeralt ★★
() автор топика
Ответ на: комментарий от Nervous

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

Теперь, вещая истину™, ты повторяешь мои слова чуть ли не в точности.

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

  1. Если менеджмент совсем тупой и не понимает последствий говнокодинга, программист может перестать ему потакать и начать упираться. Понятно, что менеджмент он совсем не заборет, по-этому получится что-то оптимальное посередине.
  2. Можно переобуться в тапки менджера и постараться усидеть на двух стульях уже с позиции, где его решения будут чем-то подкреплены помимо личного авторитета. Здесь, с одной стороны, получится способствовать качеству продукта, с другой придётся играть в политику.
  3. Вообще забить и делать самый минимум. Ты не бенефициар, тебе наплевать.

Ты спроецировал и дал ответ за меня, а потом за этот ответ мне предъявил. Лол.

WitcherGeralt ★★
() автор топика
Ответ на: комментарий от WitcherGeralt

Ты прочитал пост так, как тебе было интересно его прочесть. Многие так прочли, кстати.

Если тебя систематически не понимают — в этом, наверное, есть и твоя вина, разве нет? Если ты не можешь внятно донести мысль даже до коллег, какие у тебя тогда шансы донести что-либо до менеджеров? %)

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

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 2)
Ответ на: комментарий от Nervous

в этом, наверное, есть и твоя вина, разве нет?

Нет. Многие поняли. Люди воспринимают информацию так, как им нравится, с этим ничего не поделать.

ты не можешь внятно донести мысль даже до коллег

Тупые пердёргивания тебе, вроде бы, не свойственны. Тред не технический.

WitcherGeralt ★★
() автор топика
Ответ на: комментарий от WitcherGeralt

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

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

vaddd ★☆
()
Ответ на: комментарий от WitcherGeralt

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

vaddd ★☆
()
Ответ на: комментарий от vaddd

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

Неа, это уже съезд. То сначала было «говно сойдет, поддерживать не нужно», а тут уже выясняется, что есть какое-то дальнейшее взаимовыгодное сотрудничество, что у говна есть какие-то сорта (твердое, мягкое, месяцы выдержки).

byko3y ★★★★
()
Ответ на: комментарий от vaddd

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

Я дал объясление «продаю автомобиль 2011 года, пробег 50 тыс км». Покупатель приезжает, я ему сую авто 2005 года с пробегом 400 тыс км. Он в автомобилях плохо разбирается, ничего не заметил, купил. Я заработал? По СНГ-шным понятиям — заработал. А в других старнах за это можно присесть. Да, это не воровство — это мошенничество. Я называю это «украсть», потому что какая разница, честно ты украл или нечестно?

В этом мире это почти норма. Нравится вам это или нет. Если забить болт для бизнеса выгоднее - он будет забиваться

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

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

byko3y ★★★★
()
Ответ на: комментарий от WitcherGeralt

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

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

byko3y ★★★★
()
Ответ на: комментарий от byko3y

А вы как думали? Естественно у любого продукта может быть бесконечное количество градаций качества - от полного говна до конфетки. Или вы воспринимаете мир исключительно однобитно?

Я дал объясление «продаю автомобиль 2011 года, пробег 50 тыс км». Покупатель приезжает, я ему сую авто 2005 года с пробегом 400 тыс км. Он в автомобилях плохо разбирается, ничего не заметил, купил. Я заработал? По СНГ-шным понятиям — заработал. А в других старнах за это можно присесть. Да, это не воровство — это мошенничество. Я называю это «украсть», потому что какая разница, честно ты украл или нечестно?

А когда сдаете продукт - он работает и соответствует договору. И на мошенничество поэтому не тянет.

Еще раз: это выгодно тому, кто забивает болт, и не выгодно всем остальным участникам.

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

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

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

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

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

vaddd ★☆
()
Ответ на: комментарий от Nervous

Да не, аджайл какой-то. Лучше будем четко по плану пилить ненужно из говнокода без тестов и документации, все ведь так делают

Нужно понимать, что Agile изначально хорошие вещи доводит до абсурда. Никто не говорит, что план/ТЗ не нужно пересматривать, никто не говорит, что не нужно делать промежуточных релизов. Я приведу пример по манифесту:

Welcome changing requirements, even in late development

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

В самом крайнем случае это выливается в waterfall, когда со следующего этапа ничего из предыдущего этапа нельзя трогать. Но между waterfall и agile есть множество градаций. Задача менеджмента — максимально уменьшить возможные масштабы переделок. И здесь Agile является банальной отмазой для бездарных менеджеров, которые пролюбили все полимеры, из-за которых проект приходится переделывать заново, заказчик в бешенстве, руководство с красными глазами смотрит на менеджера, а менеджер отвечает «это Agile, передовые методы разработки, а без этого мы бы выпустили ненужно». И только я один подойду и скажу «если бы ты что-то умел, то мы бы работали по плану, с минимальными корректировками, и имели бы релевантный продукт к концу разработки». И если продукт слишком уж новый, то сначала разрабатывается proof-of-concept, по которому уже строится архитектура, план, и становится возможным согласование деталей реализации.

byko3y ★★★★
()

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

4.2, если речь не про ООО «ВЕКТОР»

Princesska ★★★★
()
Ответ на: комментарий от byko3y

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

Никто и не предлагает отказываться от планирования как такового. Совсем наоборот, предлагается делать это гораздо чаще, чем один раз в самом начале.

мы подумали, и решили, что нам мост не нужен — нам нужен бассейн

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

когда строятся несущие конструкции - фундамент уже не переделать

Это к слову о роли архитектуры в проекте. Чистая архитектура должна позволять сменить в обозримые сроки вообще все, кроме самой архитектуры. Фреймворк? Легко. БД? Не вопрос. Гуйню? Пффф. Эту логику выкинуть, тут переделать, там пришить перламутровые пуговицы? Решаемо.

Задача менеджмента — максимально уменьшить возможные масштабы переделок

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

Agile является банальной отмазой для бездарных менеджеров

Наверняка. Только вот виноват-то в этом вовсе не аджайл. Аргумент из разряда «производители ложек делают нас толстыми».

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 2)
Ответ на: комментарий от byko3y

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

WitcherGeralt ★★
() автор топика
Ответ на: комментарий от Nervous

Ты, видимо, не в курсе, какую дичь в 2020 творят под соусом Agile. Какая там архитектура, когда проектирования нет как этапа? Требования тоже никто не собирает.

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

WitcherGeralt ★★
() автор топика
Ответ на: комментарий от Nervous

БД? Не вопрос

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

WitcherGeralt ★★
() автор топика
Ответ на: комментарий от WitcherGeralt

БД

Ключевая вещь любой архитектуры

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

Да, я знаю, что у нас принято моделировать предметную область прямо в виде таблиц реляционной БД. Нет, я не думаю, что это хорошая практика.

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 3)
Ответ на: комментарий от WitcherGeralt

какую дичь в 2020 творят под соусом Agile

Ты бы знал, какую дичь люди иногда творят обычными кухонными ножами.

Nervous ★★★★★
()
Ответ на: комментарий от Nervous

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

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

Дело в том, что мировые правящие элиты устроены по семейному принципу. Родово-племенному, если желаете. Это то, как человечество выживало миллионы лет, эволюционируя в новые виды: я — это мое племя, мои интересы — это интересы моего племени. Так же совсем недавно в русской деревне человек мог ворочать деньгами общины и не убегал с этими деньгами. Человек, который «забивает болт» в таком окружении, осознает, что наносит вред не кому-то, а самому себе. Далее, давайте я пропущу феодальные отношения, и перейду сразу к рыночным: я забиваю болт, но меня результаты этого не волнуют, потому что рынок сам с собой как-нибудь разберется. Результаты этого: отсутствие доверия и невозможность поручить кому-то работу без необходимости тратить кучу ресурсов еще и на проверку/контроль; снижение концентрации ресурсов и отсутствие распространения знаний приводит к ухудшению технологического обеспечения, снижению качества товаров и услуг на фоне повышения их стоимости. Возьмите, например, китайский план по выплавке железа в каждом сарае — итогом стал низкокачественный и относительно дорогой чугун. Конкуренция вместо сотрудничества, на самом деле, убивает технологическое производство и якорем тянет экономику на дно, но из зарубежных средств пропаганды людям не перестают вдалбливать в мозги, что рыночек придет и всех порешает. У вас завод закрылся и целый город безработных? Дык он и не нужен был. В свое время Чубайс так на полном серьезе говорил про «лишних людей».

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

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

Каганов в свое время описывал ситуацию как «парадокс заключенных»:
https://www.solidarnost.org/thems/blogpost/blogpost_6201.html
Правда, он не давал практически никакого пояснения о том, как и почему это происходит. Есть замечательный старозаветный принцип «разделяй и властвуй». Его знали уже в те времена, он хорошо применяется до наших пор, при том, что библию читают многие, но, как обычно, «смотришь в книгу — видишь фигу». Итак, суть его в том, что вы не сможете управлять превышающим ваше числом людей, если эти люди объединены. Будь то древний египет, или россия, или выделенный подвал ( https://ru.wikipedia.org/wiki/Стэнфордский_тюремный_эксперимент ). Первоочередная задача любого правителя — разрознить людей, заставить их грызть друг другу глотки, а пока они будут этим заняты, он станет сильнее каждого теперь уже отдельного из них, при этом будет их арбитром, судьей, и филантропом, без которого они якобы поубивают друг друга, без которого старики поумирают с голоду.

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

Надеюсь, стало хоть немного понятнее про

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

и особенно про

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

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Дело в том, что мировые правящие элиты

Ух, как страшно жыть-то сразу стало.

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

Но я верю, что это не фатально и не навсегда.

Nervous ★★★★★
()
Ответ на: комментарий от vaddd

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

WitcherGeralt ★★
() автор топика
Ответ на: комментарий от WitcherGeralt

Дядя Боб явно подписался от лица масонов, Фаулер от зелёных человечков

Пока от лица настоящих хозяев человечества (котов) кто-нибудь не подпишется — несчитово.

Nervous ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.