В основной массе производственных профессий есть разделение на конструкторов, которые решают что мы будем делать, технологов, которые решают как мы будем делать и рабочих, которые собственно воплощают в жизнь задуманное конструкторами, используя решения технологов. Соответственно, хотя обычно работа рабочих требует меньшей квалификации, чем работа конструкторов и технологов, их работа никак не менее важна, т.к. без работы рабочих работа конструкторов и технологов никому не нужна.
Однако в программировании столь четкого разделения не произошло, из-за того, что средства производства программиста-конструктора, программиста-технолога и программиста-рабочего ничем не отличаются друг от друга, соответственно один и тот же программист легко может выполнять работу и конструктора, и технолога, и рабочего. Поэтому в программировании у нас есть два пути: 1) использовать только высококвалифицированных программистов, заставляя их заниматься и работой конструктора, и работой технолога, и работой рабочего 2) пойти по пути других производственных профессий, разделяя программистов на конструкторов, технологов и рабочих(кодеров).
В чем недостатки первого подхода, который сейчас можно считать общепринятым в программистской отрасли?
1) Трудности с набором сотрудников. Понятно, что точно также как и в любой другой профессии количество высококвалифицированных работников много меньше, чем общее число работников. Соответственно высококвалифицированных работников на всех не хватет и хватать не может. Если же мы берем (по ошибке или потому что других нет) работника менее квалифицированного, то он оказывается малополезен, т.к. при такой организации труда нет явно выделенных конструкторов и технологов, задачей которых было бы переформулирование исходной задачи в понятную менее квалифицированному программисту форму.
2) Высокая стоимость рабочей силы. Если нам повезло и все нанятые работники действительно оказались высококвалифицированными, то им и платить надо соответствующе. Однако если программист-технолог написал решение для типовой задачи, то производительность использования этого решения, что более высококвалифицированным, что менее квалифицированным программистом обычно близка. Соответственно возникает вопрос зачем платить больше?
3) Проблема с мотивацией. В любой работе есть рутинные задачи, типовое решение для которых уже давно найдено. И если программисты-технологи занимаются делом, то круг задач с типовыми решениями постоянно увеличивается. Если у нас есть только высококвалифицированные программисты, то хочешь не хочешь этими рутинными задачами приходиться заниматься им. Естественно они от этого не в восторге, т.к. для них эти задачи слишком примитивны и соответственно неинтересны. Кодеров же мотивировать на таких задачах проще, т.к. и сложность этих задач более близка к способностям кодера, и людей в кодеры можно набирать с предрасположенностью к рутинной работе.
4) Проблема с амбициями. Если у нас есть только высококвалифицированные программисты, то каждый имеет свое мнение на тему что и как делать. Соответственно либо приходиться ради единообразия решений в проекте выбирать решения одних программистов и ущемлять других, что не очень хорошо с точки зрения обстановки в коллективе. Либо мириться с тем, что каждый программист имеет свой зоопарк стандартных решений, что плохо с инженерной точки зрения. При использовании кодеров такой проблемы нет, кодер наоборот рад, что ему предлагают решение с помощью которого он может выполнять свои задачи проще.
Второй, т.е. традиционный производственный подход этих недостатков лишен, хотя естественно в нем есть свои проблемы. Однако как мне кажется эти проблемы существенно меньше, чем в первом подходе, а сегодняшнее доминирование первого подхода объясняется не его эффективностью, а молодостью профессии, в силу которой специализация труда в программировании еще не успела развиться.
В чём суть, доктор?
1) когда заказчик хочет три в одном 2) В том что когда говорят сделай тото но незнаю как или в особенности сделай такто а не так незная последствий и дороговизны и сложности решения хочется в бубен дать
подозреваю, что ноги у топика растут из фразы "Я не могу вам дать точное ТЗ, это все еще на уровне ощущений".
Спец ведь на то и спец, чтобы знать не только свои инструменты, но и предметную область, в которой он специализируется. В сфере 1с (правильно угадала?) только так.
1. Как писал Радищев - узкий специалист подобен флюсу.
2. Прогаммисты есть еще и с проф уклоном. Как например есть экономисты в области IT или менеджеры в области мед препаратов и т.д.
3. Если вы не просто специалист, а еще и профессионал - то освоение смежных ремесел - не должно вызывать затруднений.
4. Я не знаю как вас, а меня в ВУЗе учили не какой-то определенной специальности, а давали базу в образовании и умению обучаться и в основной массе самостоятельно исползуюя литературу или другие источники...
На сём, считаю тему исчерпаной...
В программировании как в индустрии с этим проблем как раз таки нет. Есть проектировщики, есть компановщики, есть кодеры, и прости господи менеджеры. А еще делят на функциональщиков, интерфейсников и т.п. Другое дело как оно все обстоит у нас.
Ага, а еще важен навык телепатии. Когда я работал с 1С (примерно 2003 год, стаж на тот момент более 5 лет, чтобы еще раз я взялся за 1С - чур меня, чур!), то одна амбиционная бухша хотела, чтобы ЗП начислялась нажатием всего на одну кнопку, при этом зависела от фазы луны, настроения этой самой бухши и ее менструального цикла. Учитывая, что работники были как штатники, так и сдельщики и контрактники, половина с алиментами сложность задачи становится знающим ясна. Тем не менее, задачу решил примерно на 90% (по своему мнению). :3 Не_хотеть.
А вот с этим, HardWareMan, действительно нельзя не согласится, но и тут все просто, этот "бух",просто не специалист(профессионал)...
Само хреново работать через посредника который сам нехира незнает.Если есть посредники то делаю так чтобы невмешивались или изначально ищу таких.Самые назящие посредники это бывшие программисты.(к мелочам прикапываются только так а они заказчику нах ненужны).