Share via


Фермер против индустриального рабочего в программировании

??-??, ????????? ?????-???? ? ????????????? ?????.

?????? ????????:
- ??-?, ????? ????????, ???? ??? ??????? ????? ? ????? ???????????? ?????????? ?????…
- ?? ????? ?? ??? ? ?????????!

???-???? ??? ??????? ????? ??????? ??????? ? ????? ????????? ????????. ????????, ? ?????????? ?????. ??????? ? ????? ?? ?????????? ? ???? ?????? ?????? ????? ?? ??????? ??????? ? ??????????????? ????????.

??? ???? ???????? ????? ???????? ?????? ??????? ?? ????? ????????? ??? ?????. ?? ?????? ??? ?? ??????????, ???????? ?? ??? ??????, ??????? ??? ? ?????? ?????? ? ?????? ????????????? ?? ????. ? ????? ?????? ??????? ?? ??????? ?? ?????? ?? ??????????, ?????? ??????? ?? ? ??????, ?? ???????? ????????????? ????????? ?? ????. ? ??????? ?? ??? ?? ??????? ?????? – ??????? ?? ??????, ? ??? ??? ????? ???????? ????? ???????? ? ?????? ????????? ?????. ??????? ?? ?? ????????? ???????? – ????? ?????? ? ???????. ?? ?? ? ???????. ???? ? ?????????? ?? ?????? ??? ?????????? ?? ???? ??? ??? ??????????????, ????????? ?????????????? ????????? ?? ????.

?????? ?? ????, ??? ????? ???????. ????????? ?????? ????????, ?? ????? ?? ??? ?? ???? ? ??? ??????????? ???? ??????, ????????? ??? ?????? ?????? ???????? ?? ??????? ????? ?????, ??????? ?? ????, ????????, ??????? ??? ??????? ??????????????? ???????? ??? ???????????? ???? ??????? ??? ???? ?????, ? ??????????????????? ?????, ????? ?? ??? ??????? ??????????????? ????????. ??????, ?? ??? ??????????? ???? ?????????????? ????? ??????????, ? ????? ?? ???? ?????????? ????? ?????. ?????? ??????? ????? ? ???-?????? ????????? ???? ??? ?????????????? ? ???????? ?????.

????????? ?????????? ????? ??????? ????????:

  • ?????? ?????? ??????????????? ?? ????? ? ??????? ??????.
  • ???????????? ??????? ? ???????????? ????? ????????,
  • ? ? ??????????, ???????????, ????? ??????????, ? ????????? ?????, ????? ?????? ?????? ???.

? ????? ?? ????? ???????? ?????? ?????????????? ???????. ??????? – ??? ?? ???? ???, ????????? ????? ????? ????? ? ???????, ?? ?????. ??? ?? ?? ????????????????, ???? ? ??????????. ?? ? ??????????????? ??? ?? ????, ? ?????????. ??, ??, ???? ??????, ??? ?????? ??? ???????, ?????? ? ?????? ???! ? ??? ?? ??? ?? ????????? – ??? ????? ??????? ??????? ? ?????? ???, ? ??, ???? ??? ?????????? ?????????. ? ??, ??? ??? ??????? ??? ?????? ?? ????? – ??? ?? ???? ????. ??? ????? ???????? ????, ????? ??????, ??? ????? ??????? ?????. ??? ?? ??? ?????? ??????. ??????????, ?????????? ? ????? ??? ???????? ?????? ??????????????? ??????????, ????? ??????????? ?????? ??? ?? ???????? ? ?? ?????????????? ? ???, ????? ?? ?????? ????????? ???????? ?????? ?????.

????? ???????, ????????? ?????????? ????? ??????????????? ???????? ????????:

  • ?????????? ?????? ?????????????????? ??? ??????????????? ? ??????????? ?????? ???? ????? ? ?????.
  • ?????? ?????????? ??????? ??????, ???, ????? ? ??? ??????, ????? ???????? ???????? ?????????,
  • ? ? ??????????, ?????????? ?????????? ??????? ???? ?? ?????????????????????.

??? ?? ?????? (??? ???????, ??? ??? ??????????), ? ???????????????? ????? ?????????? ??? ??? ????? – ???????????-?????? ? ???????????-???????.

???????????-?????? ???????? ?? ???? ????????????????, ???? ???, ? ??? ????????????? ?? ????? «????? ????» ? ?? ?????? ??????, ???? ??? ??? ?? ????????. ???????????-?????? ???????? ?? ???? ?? ????, ? ?? ? ??????, ????? ??? ???????? ????????? – ????? ?????????????? ?????? ?????? ??????, ????????? ??????? ???????, ?????? ???????? ??, ??? ????? ???? ?????. ???????????-?????? ????? ????? ????? ??????? ? «??????????» ? ???????, ??? ?? ????? ??? ?????????? ????? ?? ??? ??????? ?? ??????? ??????, ? ??????, ??? ????????????? ???????? ?? ?????. ? ???? ??????????, ?? ????? ???????? ?????? ????? ??? ??????, ??, ??? ??? ??????? ??? ? ?????? ? ?????, ???? ????????? ?????, ? ???? ?? ????. ????? ????, ???? ? ??? ???????, ?? ????? ????????? ?? ?????? ???????, ??????? ????????, ????? ??? ??????? ?? ????? ??? ???????, ? – ?, ???? – ????????????? ?? ??????? ?????? ????? ? ???????? ????????????? ???????, ????????? ?? ?? ?? ????? ????????, ? ?? ?????????. ??? ?? ???? ?? ?????????? – ??? ???? ?? ??? ???? ????????? ?????????. ? ????? ????????? ? ???????????? ???????? ?? ????? ?????? ????? ? ???? ? ????? ??????????-????????? ?????????? ?? ?????? – ??? ? ????, ?????? ???-?? ????? ?? ????????? ??? ?????, ??? ??? ????? ?????????? ??????? ????? ???? ?? 10-12 ????? ? ???? ?????????, ? ?? 8 ??? ? ????????? ?????????. ???, ????????? ?? ????????. ?? ???????? ????????????-??????? ? ????????? ????????? ???????????? ?? ??????????.

??????????? ??????? – ??? ???????. ?? ???? ?? ????, ????? ?? ???????, ??? ?? ????? ???????? ?????????? ??? 10-12-14 ?????, ??????? ??????? ?????????????? ?????????? ??????? ??? ?????????? ??????????, ????????? ??, ??? ??? ?????? ????????, ? ??? ??????? ?? ????????, ????????? ? ??????????? ??? ??? ???. ???????, ????? ?? ????? ?????? ?? ???????, ????????? ??????? ????????????????-?????????????? ?????????? ?? ?????? ???????? ???????????? ?????, ??? ?? ?????, ??? ????????????? ??????? ??????????? ?????????, ???? ???? ?? ? ????????, ????? ?? ????????? ?????????. ??? ???? ?? ????? ?????????. ???????????-??????? ????? ??????? ???????? ??????????? ??? ??????? ??? ?????????. ? ????????????-???????? ??? ??????? ???????? ?? ????????? ? ?????????? ??????? ????????? ?? ????, ??? ??? ?????????? ?? ?????????? ??????? ????? ?? ?????? ?????. ????? – ??? ?????? ?? ??? ??????. ? ?????????... ????? ??? ?????????? ????? ?? ?? ?????? ??????! ??? ??? ???? ?????? ???????, ?? ???????? ? ?????????! ??? ???, ???? ???????. ???, ??????, ??????, ????? ? ???? ?????????? ??????????????-???????? ???????. ?????? ??????? ??????? ? ??????? ?????. ??? ? ?????????? ????? ?????, «?? ?? ??? ???? ?????? ??????, ????? ?????? ?? ??? ???? ???!» - «??, ?? ?????? ??? ???? ???? ???? ???????????, ??? ? ??? ??? ? ??? ????????!» - «? ?? ?? ??????????. ?? ?????? ??? ??????. ??? ? ???? ???? ????? ????, ??? ?????, ?? ????...»

???????, ??? ??????????? «??????? ?????????? ?????» ????????? ?????? ??? ????? ?? ?????? ?????????? ??????????? ?????? ???? «????????????» ??? ? ??????, ??????? ?????????????-???????? ? ?? ?????? ? ???????? ? ??????? ????????.

? ?????, ? ????????? ??? ????????? ????????, ????? ????? ???????????????? ? ??????, ? ????? ?? ?????. ??????????, ??? ???-?? ??? ??????? ??????? ???????????, ?????? ???? «???????????», ? ??????, ??? ??????? ?? ?????????? ? ??????????? ??? «?????????????» ? «????? ???????????», ? ?????? ? ? ???????????????? ?? ?? ????? ?????, ? ?????? ??? ?????? ???????? ?????????… ???? ??? ?? ?? ???.

??, ????? ???????????? ????????????? ???????? ???? ??? ???????????. ? ??? ?????? ???????????? – ??? ??? ??????? ??????. ??????? ????????, ? ??? ?????????? ?????????????? ??? ???????? ? ?????? ???????????? ???????? ?????????? ???????????? ??????? ? ?????????? ??????? ??????? ? ?????? ?????, ?????????? ?????????? ?????????????????? ?????. ?????? ???? ???????, ????????????? ? ??? ??????? – ???????. ???? ?????? ?????????? ? ??????????? ????, ????????? ??? ??????? ????????? – ?? ????????????? ? ??????, ???????. ??????? ??? ???? ??????????, ? ?? ? ?????? ?????? ?? ???????. ??? ???????? ????? ? ?????? ??????. ?????? ???? ???????, ??????? – ?????. ? ????? ??????? ???????? ?? ?????? ?????? ?????????? ????. ? ????? ??????? ???????? – ?????? ????????? ??? ?? ???????, ???? ?????????, ?? ? ??? ? ???. ?? ?? ??????, ????? ??????? ?????? ?????????, ?? ?????? ???????????? ???????? ?? ??????, ????? ??? ??? ???????? ????? ? ??????????. ??? ??? ?????, ???? ??????? ?????????, ???????? ??? ??? ?????? ????????? – ?? ????? ????? ??????? ?? ????? ??. ? ???????? ?????????

? ?????? ???????? ?? ????????????????. ????????? ????? ???????? ?????? ???????? ?? ??? ????? ??? ?????????????. ??, ??? ????-???? ?? ???????????? ?????????????. ??????????? ????? ??????? ?????? ?????. ? ?????. ? ????? ???????????? ?????? ?? ?????? ??????? ????? ???-??? ???????? ????????. ???? ??? ?????? ?????? ???????????? ? ???? ???? ? ??????? ??? ?? ??????? ?????? ????????????? - ??? ??? ???-??? ???????? ????????. ? ?????? ????????? ? ???? ?????? ??????, ????????? ????.

? ????????? ???? ?? ??? ??? ??????. ????????? ?????? ???????-??????????? ?????????? ?? ???, ??? ????? ??????? ?? ????, ????? ?????, ????? ???????? ??????, ? ?????? ??? ? ??? ??????. ??? ???????? ?????? ?????????. ? ??????????, ??????-?????????? ??? ?? ?????? ??????????????? ??????????, ?? ??? ???????. ?? ???? ???????? ?????? ? ????? ?????? ??????-????????? ????, ??? ? ????? ??????, ????? ???????? ?????????. ?? ???????? ????????, ??? ??? ?? ???? ??????????? «????????? ??????» ?? ???????? ????? ???????????? ? ????????, ????? ??????.

???????, ??? ??? ??????????? ?? ????? ?? ????, ???? ?? ?????????? ????????? ??? ?????. ??????, ??????? ????????????? ?????? ??? ??????? ?????? ???????? ? ????????????? ?????? ????????????? ???????? ???? ? ?????????? ?? ???????????, ?? ??????? ????????? ?? ? ??? ??????. ? ??? ?????????? ? ?????????????????

? ?????? ??? ?????? ????? ?????? ?? ??????? ?? ?????????????-???????? ? ?????????????-??????? ???????????? ????? ????? ??????? ? ????????

? ?????? ?????????????-??????? ????? ???????, ??? ?? ????????????? ?????? ????? ???????? ????? ??????????????. ??? ???? ???? ? ???, ??? ????????? ??????? ????? ???????? ?????? ???????????? ? ?? ???????. ??????? UI ? Visual Basic ??? ??? ???????? ??????????? ???? ??? ????????????? ?????????? ?????? ???????? ????????????? ??? ?????? ???????. ??? ???, ? ???????????????? ?????????? ???? ????? ??? ?????????????-???????. ? ????? ???? ???? ????? ?????? ????????, ? ??, ??? ???? ?? ????? ?????? ?????????????, ? ??? ??-???????? ?? ????? ?? ????????, ?? ??????? ????????, ???????????? ?????????????-??????? ???? ????? ???????? ? ???????????? ??? ???? ??????????? ??????. ?? ???? ????????? ???????, ???????????, ?????, ? ??? ????????.

? ????????? ?????????? ?? ??? ?? ? ???????????? ? ????????????? ????????????. ? ?? ??? ?????, ????? ??????, ??????????????? ?? ????????????? ?????????????-??????? ?????? ?? ????? ?????? ??????????? ???????????? ????????? ? ???, ????????? ??????? ?? ?????? ?????????????-????????. ?????? ??? ?????? ???? ?? ????????. ?????? ???? ?? ????????? ???? ????????????-??????? ????? ????????? ???-??? ????????????-???????. ? ??????? ? ????? ??? ????? ??????, ??????? ???? ?? ?????? ? ??????????? ?????????, ???? ????????? ?????? ????????????-??????? ? ???? ?????? ???? «??????» - ????? ??????????????????? ????????????. ??????????, ? ?? ???? ??? ?????, ??? ???????????-??????, ?????????? ???????? ????? ???? ?????????? «????? ??????????» - ??????????????-???????? - ? ????? ?????? ? ????????? ??? ??????? ?? ???????? ???, ?????? ?? ??, ? ?? ? ??????????? ????????????????, ?????? ??? ??? ?? ??????????? ??????? ??????????? ?????. ?? ???? ???? ??????? ????????????? ????????????-??????? ??????????? ????? ??????????. ? ???????? ??????? ?, ? ?????, ?? ?????.

?????, ???????, ???????, ????? ? ????????????-???????? ?????????? ??? ? ????????????-???????, ? ?????? ???? ??? ?????? ????????? ???? ????? ??????, ??? ???? ?????? ??????? ???????????. ?? ??? ??? ?????? ??????????? – ?????? ?? ???? ????????. ???, ??????, ????????? ?? ??? ???? ???????????? ??????. ??????? ????? ?????????????-???????? ? ?????????????-???????, ? ? ?????? ???? ????? ??????? ?????????? ?????????? ? ?????????? ?????????????? ???????, ? ?????? ??????? ?? ? ????????????, ? ? ????????. ???????, ?? ??????? ???????? ? ???????? (????? ?????) ? ??? ?? ?????? ??????? ??-??.

Comments

  • Anonymous
    January 01, 2003
    Конечно, есть. Вот только, сьесть-то он сьест, да кто ж ему даст. К слову, я и не говорил, что рабочие не страдают от дураков-менеджеров, что в этом случае и происходит.

  • Anonymous
    January 01, 2003
    В фирмах у фермеров обычно отсутствует "Прямая личная ответственность за надел и участок работы." - лично я ещё никогда не слышал, чтобы программиста-фермера уволили за то, что он не сдал свою часть работы во-время, или за то, что в сданном коде много багов или дыр в безопасности. А если эту ответственность добавить - мы получим типичного фрилансера.

  • Anonymous
    January 01, 2003
    PingBack from http://www.developers.org.ua/archives/max/2008/08/08/weekly-linkdump-138/

  • Anonymous
    January 01, 2003
    хо-хо-хо-хо... по рецептам древних мастеров... да, это было бы здорово...

  • Anonymous
    January 01, 2003
    Ты как-то очень скромно просто дал ссылку на свой блог. Позволь ее повторить: http://vtolkov.blogspot.com/2008/08/blog-post.html Поскольку это - великолепно. Спасибо! Получил огромное удовольствие.

  • Anonymous
    January 01, 2003
    Да, есть такая проблема. Иногда из-за того, что есть такая сумасшедшая штука как карьера, которая может вырвать программиста-фермера с его грядок и унести в город, в кабинеты с кожаными креслами. А иногда из-за того, что наваял он так, что никто другой не может разобраться. Что, в общем, значит, что и фермер он не очень. Однако чаще случается классическое огораживание или там коллективизация, когда его выпихнули с его огорода и хорошо еще если на перекрестке дорог не повесили за бродяжничество, а на его место посадили трех колхозников. И да, у колхозников с его кодом будут проблемы, чего греха таить. Далеко не все проблемы решаются после поллитры. Только он ли в этом виноват? Понимаете, высокоэффективный код запросто может быть сложным в сложных областях, ничего с этим не поделать. Если вы хотите менять людей на нем, вы должны быть готовы платить цену переобучения, а то и частично переписывания. Таковы реалии. А если не хотите платить, не беритесь за сложную функциональность. Ваяйте формочки на VB и HTML... Так сказать, свободный выбор. Я просто никогда не видел, чтобы пролетариат мог сделать хоть что-нибудь действительно сложное. Всегда где-то среди них прятался фермер, который и делал продукт возможным. А потом фермеру обычно давали по ушам. Ну, а потом, конечно, страдали, что колхозники не справляются. Ну, и этот сценарий у вас вызывает сочувствие к "бедному менеджеру"?

  • Anonymous
    January 01, 2003
    Да, нет, Powerman, в стартапах и мелких фирмах это запросто. А в больших да, никакой личной ответственности, сплошная лотерея. Именно потому что там парадигма рабочего-колхозника (спасибо, Илья, за идею - оценил, действительно звучит) Квал: а это что за разработчики, что кода не пишут? Я таких не встречал. Наверное мы о немного разных индустриях говорим. В той, о которой вы говорите, наверное, и нужен пролетариат. Я даже и спорить не буду.

  • Anonymous
    January 01, 2003
    Да, согласен. Ну, насчет таких фирм я уже выше и сказал: > Наверное мы о немного разных индустриях > говорим. В той, о которой вы говорите, > наверное, и нужен пролетариат. Я даже и > спорить не буду. А что в России 8 окладов стоит заменить работника - интересно, спасибо!

  • Anonymous
    August 02, 2008
    Переименуй фермера в крестьянина и рабочего в колхозника, и получишь классную агитку.

  • Anonymous
    August 02, 2008
    Красивая метафора. Интересно, каков процент программистов (персонала соответствущим образом квалифицируемого), пишущих код? Оригинальный код? 5%? как фермеров в США? Ну very interesting ...

  • Anonymous
    August 03, 2008
    Коментарий здесь: http://vtolkov.blogspot.com/2008/08/blog-post.html

  • Anonymous
    August 03, 2008
    Было очень интересно почитать ваши размышления. Прочитав определение программиста-фермера в первый раз, потом никак не мог избавиться от аналогии с фрилансером. Как верно замечено выше, программист-фермер в более-менее состоявшейся компании уже не несет ответственности за все последствия. В свое время мне довелось поработать с кодом такого программиста-фермера. Что действительно мешает - так это то, что действительно хорошо в этом кода разбирается лишь один человек - автор, но в силу роста компании и продвижения по должностям, времени у программиста-фермера на свой "сад" уже не остается. В итоге сложности те же, как и при перенимании огородного хозяйства. Эдакая проблема роста.

  • Anonymous
    August 04, 2008
    Примерно мои мысли, только у меня метафоры были другими. И немного уточнений, ничего по сути не меняющих. > Компьютер стоит примерно тысячу долларов на все время его существования. Ну, еще чуть-чуть на потребляемое электричество. "Правильно" оборудованное рабочее место может (читай должно) и десятку потянуть. А за штуку можно только системник купить. Хороший монитор сам по себе больше штуки стоит. > А найти программисту замену по разным оценкам стоит две-три месячных зарплаты. Плюс еще ввести нового программиста в курс дела и довести его до нужного уровня эффективности - это еще две-три месячных зарплаты. Общий итог - 5 месячных окладов в Америке по расчетам кого-то из гуру и 8 месячных окладов в России - по моим. В России замена обходится существенно дороже из-за ряда факторов. > Во всех этих случаях использование программиста-фермера значительно более эффективно. А обратных случаев я, в общем, не видел. Существует значительное число фирм ваяющих скворечники на конвеере. Таких фирм даже больше, чем фирм производящих сложный софт. Для них "рабочий" может быть эффективней "фермера", если стоит на 10-20% дешевле.

  • Anonymous
    August 05, 2008
    Спасибо за отзыв. На местном рынке купил хлеб местной выпечки. Домой принесли, съели весь за один присест без ничего, даже ничем не намазав. Один запах чего стоит! Хлебом пахнет. Оказывается семейный бизнес. У них печь во дворе каменная. И мельница своя. И они мелют зерно, из свежей муки хлеб пекут. Ничего не замораживая, по старым рецептам из натуральных компонентов. Дорого. Но вкусно так, что денег не жалко. Жаль рынок работает только раз в неделю. Вот я всё жду, когда потребитель пожелает вкуса в софте. Я бы тоже попробовал семейный бизнес открыть. Софт на ассемблере и Алголе-68, ручная работа, по старинным рецептам.

  • Anonymous
    August 08, 2008
    Это вы, батенька, не в курсе некоторых тенденций. Есть менеджеры, которые хотят, чтоб программист имел свободу, как рабочий, а работал и отвечал - как фермер.

  • Anonymous
    November 14, 2008
    Эльдар, а Вы сами-то огородик держали? Ну так чтобы так, как Вы это ярко так описываете: "потеряй он урожай, и вся его семья запросто могла помереть с голоду следующей зимой" - ? Вся Ваша красивая история о доблестном фермере и его натуральном хозяйстве благополучно рушится от одного упоминания наличия у фермера пары-тройки крепких сыновей и еще стольких же не менее крепких дочерей - в результате чего наш "самобытный фермер" вдруг взлетает аж до того самого "менеджера индустриального производства". А все эти россказни про "поваляться в межсезонье" - ну, собственно, как раз с сезонностью сельского хозяйства они и связаны-то. Достаточно дать нашему бравому фермеру комбайн, способный за день убирать все угодья, которые в свою очередь способен обработать человек самостоятельно - интересно только откуда возмется комбайн в условиях нашего "натурального фермерского хозяйства" - как тут же вся красивая пасторальная картина валится в наш современный грубый и невежественный индустриализм. Увы. А если еще вспомнить, что фермеру надо еще и во что-то одеваться, строить дом, и вообще... таки возвращаться к натуральному хозяйству? И с софтом, по моему нескромному мнению, ситуация совершенно и полностью аналогична. Равно как и ситуация с "тупыми наемными рабочими, которым глубоко наплевать на само предприятие" - это что-то Ваше сугубо личное и в нормальной жизни встречается, конечно - но как раз нормальным состоянием не есть - зря Вы это так всех вот совсем, не только программистов, а и вообще, "с барского плеча", простите, "опускаете"...

  • Anonymous
    November 15, 2008
    Интересная мысль, хоть и не новая. Я бы крестьянина называл программистом, а колхозника - кодером. И все станет на свои места. А на самом деле очень неплохое сравнение. Если на тему программистов переиначить труд К.Маркса "Капитал", то можно получить очень неплохие выводы, актуальные и полезные.