Oberon space

General Category => Общий раздел => Тема начата: Geniepro от Июль 29, 2013, 01:26:05 pm

Название: [Oberon way] Об индустриализации программирования
Отправлено: Geniepro от Июль 29, 2013, 01:26:05 pm
Ещё об индустриализации профессий (http://scholar-vit.livejournal.com/313867.html)
Цитата: scholar_vit
Комментируя мою предыдущую запись (http://scholar-vit.livejournal.com/313821.html), pigbig указала (http://scholar-vit.livejournal.com/313821.html?thread=12091869#t12091869) на идеи Ритцера о Мак-Дональдизации общества (см. изложение концепции в рецензии на книгу Ритцера (http://www.anglohigher.com/key_announce/key_announce_detail/11)).

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

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

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

 Я не знаю, получилось ли с этим у менеджеров, но сам подход тогда поразил меня размахом, достойным сэра Томаса Мора или Угрюм-Бурчеева. Уходящие в бесконечность правильные геометрические ряды одинаковых серых кубиков, в которых сидят взаимозаменяемые программисты, пишущие стандартный код. Они едят стандартную еду в стандартных Мак-Дональдсах, лечат их от типовых болезней типовые доктора (если два врача увидят одинаковые симптомы, они должны выписать одинаковые рецепты!), а взаимозаменяемые юристы оформляют им типовые разводы.

 См. мультипликационную заставку к "Иронии судьбы".
Название: Re: [Oberon way] Об индустриализации программирования
Отправлено: Илья Ермаков от Июль 30, 2013, 09:51:37 pm
... и решают стандартные задачи в 100 раз...

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

А в рассуждении относительно менеджеров есть полу-правда. Если есть большой разрыв по производительности между разными людьми, то не нужно принимать это как норму. Нужно искать способы "отчуждить" хотя бы часть того, что раньше считалось "искусством", "талантом неизвестно откуда" - и научиться этому учить других...
Название: Re: [Oberon way] Об индустриализации программирования
Отправлено: valexey_u от Июль 30, 2013, 10:36:12 pm
... и решают стандартные задачи в 100 раз...

Oberon way - это стандартизация базовых "кубиков" и приёмов, для концентрации на решении нестандартных задач.
И, кстати, стремление к простоте исключает  стандартность мышления... Чтобы сделать просто, нужно много думать - и думать не так, как все.
Кстати, а что такое нестандартная задача? А то отовсюду слышу это деление на стандартные и не стандартные задачи а что это, и где прочесть стандарт - никто не говорит.
Название: Re: [Oberon way] Об индустриализации программирования
Отправлено: Губанов Сергей Юрьевич от Июль 31, 2013, 08:36:27 am
Кстати, а что такое нестандартная задача?
Хороший вопрос. Наверное, нестандартная задача - это такая которая требует самостоятельного придумывания нескольких слоёв абстракции. А вот когда для решения задачи все слои абстракции хорошо известны, остаётся только сидеть и долго колбасить по клавиатуре - вот это стандартная задача. Реальные задачи где-то посередине: что-то известно, что-то нет.
Название: Re: [Oberon way] Об индустриализации программирования
Отправлено: DddIzer от Июль 31, 2013, 08:49:31 am

Кстати, а что такое нестандартная задача?

1. Задача , для которой отсутствует  общедоступное решение ( алгоритм или реализация)
2. Задача, которая формулируется отлично от известных задач - например, на ее возможные решения накладываются дополнительные требования.
Название: Re: [Oberon way] Об индустриализации программирования
Отправлено: valexey_u от Июль 31, 2013, 09:24:20 am
Кстати, а что такое нестандартная задача?
Хороший вопрос. Наверное, нестандартная задача - это такая которая требует самостоятельного придумывания нескольких слоёв абстракции. А вот когда для решения задачи все слои абстракции хорошо известны, остаётся только сидеть и долго колбасить по клавиатуре - вот это стандартная задача. Реальные задачи где-то посередине: что-то известно, что-то нет.
Есть ряд задач, которые решаются без построения дополнительных слоев абстракции (с точки зрения программинга), это чисто алгоритмические задачи, или там DSP какое-то, или что-то еще из смежных областей. Ну и еще как пример - задачи спортивного программирования. Абстракции могут быть добавлены потом, просто для удобства, но соль не в абстракциях.
Название: Re: [Oberon way] Об индустриализации программирования
Отправлено: valexey_u от Июль 31, 2013, 09:41:22 am

Кстати, а что такое нестандартная задача?

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

Первый пункт - относителен. То есть с точки зрения программиста на js/php, задача, скажем, восстановления поврежденных областей изображения (inpainting) является не стандартной (в либах, которыми пользуется такой программист, этого нет, а как делать и где искать он даже приблизительно не представляет). Но с точки зрения программиста занимающегося компьютерным зрением и использующий OpenCV задача сама по себе представляется тривиальной - алгоритм Telea и всё. Один вызов стандартной функции из opencv.

Второй пункт приводит к дополнительному вопросу: известных кому задач? Человечество уже столько всего придумало, и столько задач поставило и решило, что жизни не хватит на то, чтобы просто этот список осилить (и найти там свою задачу). Достаточно копнуть по самым верхам - по патентной базе, скажем, США. И если в этой куче не удается найти свою задачу, это еще не означает что её там нет. Ну, для примера, на запрос "inpaint image processing" google patent search выдает 12700 патентов. Счастливого поиска :-)

То есть выходит, что нестандатность задачи - штука субъективная. Если для тебя это новый класс задач, то почти любая задача будет нестандартной, а если же ты над этим работает уже долго, то задачи для тебя уже стандартны (пример: занимаешься компьютерным зрением, соответственно распознование лиц задача для тебя стандартная, а вот написать на php гостевуху, так как хочешь этого ты сам, задача уже сразу не стандартная).
Название: Re: [Oberon way] Об индустриализации программирования
Отправлено: DddIzer от Июль 31, 2013, 10:19:35 am

То есть выходит, что нестандатность задачи - штука субъективная.
гыыы. дожить до 30 лет и не знать прописных истин.. нда...  ;D