Здравствуйте, Геннадий Васильев
Очень интересное письмо, но я вынужден с ним не согласиться.
AC>>Хм, вы против конвеера?
ГВ>В программировании — да. Ещё уточню: под "конвейером" я понимаю такое разделение труда, которое подразумевает обязательное наличие низкоквалифицированных программистов (кодеров).
Имхо, проблема в том, что слово кодер в данном топике является синонимом низкоквалифицированного программиста. Это не правильно. Так же неправильно сравнивать программирование с конвейером. Ведь конвейер, это лента, по которой движутся запчасти, к которым очередной рабочий прилепливает очередную байду. Что-то я не вижу здесь аналогии с разработкой ПО.
Имхо, более близким здесь выглядит строительство здания. Когда каждая бригада делает свой кусок работы. Кто-то пробивает разрешение на строительство, кто-то ищет деньги, кто-то делает проект, кто-то роет котлован, кто-то закладывает фундамент, кто-то строит стены, что-то прокладывает коммуникации, кто-то штукатурит, кто-то красит и т.д. И что, проффессиональный маляр менее важен для успешного строительства, чем проффессиональный архитектор? Или все здание строит группка мнящих себя талантливыми и универсальными архитекторов?
Можно провести еще одну аналогию -- больница. Врач назначает лечение. Но без медсестер и санитарок выздоровление вряд ли возможно. При этом и от врача и от медсестры требуются разные навыки и знания, а так же умения. Но что нужно обязательно -- это проффессионализм. Но, если есть хороший врач и хорошая медсестра, то можно ли врачу снисходительно отзываться о младшем медперсонале? Да, врачу потребовалось больше усилий и для получения диплома, и для получения места. И ответственность на нем лежит большая, чем на медсетре. За это врач и получает больше. Но реально ли он более важен? Имхо, здесь вообще степень важность сравнивать вряд ли возможно, т.к. занимаются они разными вещами но в одной области -- медицине.
Так же и в программировании. Есть архитекторы, есть главные программисты, есть программисты (кодеры), есть менеджеры. Можно ли сравнивать степень важности каждого из них? На ком-то действительно лежит большая ответственность. Но все они должны быть проффессиональными.
Но проффессионализм архитектора и кодера разный. Уровень знаний и умений у них разный. Должен ли программист разбираться в тонкостях технологии или обладать таким же объемом знаний о всей системе, как архитектор? Вряд ли. Зато кодер должен сделать свою работу точно, качественно и в срок. При этом он, естественно, должен хорошо владеть технологией (будь то STL, Boost, MFC, ATL, Swing, Corba, JSP, EJB, ...), но главные его качества, имхо, в другом. Он, в отличии, от архитектора (т.к. творчество вряд ли можно вместить в жесткие рамки), должен быть надежен, взаимозаменяем и предсказуем. И, есть у меня такое подозрение, эти качества не так уж часто встречаются. Например, имхо, большинство участников форума "Философия программирования" просто не смогут быть кодерами, т.е. не смогут качествено и надежно выполнять монотонную однообразную работу в течении длительного времени (не важно, что именно это будет -- рисование формочек, вклепывание чего-то в БД, тестирование и др.).
И здесь можно затронуть вопросу о том, почему кто-то является кодером, а кто-то нет. Имхо, причин здесь может быть много. Например, как в моем случае, амбиции и вера в то, что я могу что-то придумать и самостоятельно довести придуманное до реализации (и в моем случае есть две проблемы: во-первых, я могу ошибаться о своих способностях, во-вторых, не правильно в наше время что-то делать самостоятельно). У кого-то еще могут быть свои причины.
Но есть много программистов, для которых программирование -- это всего лишь работа. За счет своих способностей и старания они смогли стать программистами, а не, скажем, токарями. Но суть не меняется. Они садятся за компьютер не как художник за мольберт, а как токарь становится к станку. Можно ли их в чем-то обвинять или относиться к ним снисходительно? Обзывать их кодерами, говорить о низкой квалификации? Лично я бы не смог.
Более того, по словам Суворова (поководца), самый важный человек в армии -- это солдат. Так и в программировании, чем больше проект, тем важнее в нем роль кодера. Если взять мой проект объектного хранилища ObjESSty, то моих способностях в нем на долго не хватит. Если он будет развиваться, то неизбежно настанет момент, когда потребуются дополнительные рабочие руки. Причем не амбициозные архитекторы со своими идеями, которые захотят повернуть ObjESSty в свою сторону, а именно добросовесные исполнители, которые точно и качествено воплотят мои идеи, которые я не в состоянии сделать сам. Что в этом плохого? Только то, что амбициозные товарищи, вроде меня, вряд ли захотят быть винтиками в таком проекте. Но именно винтики (в самом хорошем смысле) и нужны будут для получения результирующего продукта.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>