22:23 Программист как рынок сбыта | |
предлагаем перевод статьи из блога Дэниэла Мархэма "Programmer as Market". Кое-что уже давно раздражало меня в деятельности Microsoft и некоторых других технологических компаний. Эта мысль окончательно оформилась у меня в голове, когда я отвечал на комментарий на Hacker News. Один из комментирующих поинтересовался, полезны ли для стартапов практики экстремального программирования TDD и BDD. Само собой, правильный ответ, как и ответы на все подобные вопросы: "Смотря по обстоятельствам". Но у меня был приступ язвительности, а потому я просто написал "нет", а потом сжато обосновал свой ответ. И тут же получил отпор, суть которого сводилась к фразам типа "но ведь TDD и BDD - это правильный подход. Вы же не имеете в виду, что мы должны быть плохими разработчиками!" Да, именно это я и имею в виду. По сути, цель любого стартапа состоит в том, чтобы создавать вещи, которые нужны людям. А никак не в том, чтобы быть крутым разработчиком. То, что вы там напрограммируете, находится на пятидесятом месте по важности. Вы можете написать десять строчек на Javascript и заработать миллион долларов. А можете написать самый чистый и самый великолепный код из когда-либо созданных и не заработать ни гроша. Код - это не главное. Главное - это умение находить и удовлетворять потребности клиентов. Фактически, с вероятностью 20:1 все ваши усилия окажутся бессмысленными вне зависимости от того, какой код вы написали, а потому не имеет смысла писать код, который в дальнейшем будут поддерживать. Не имеет смысла писать красивый код. Программируйте как можно быстрее, чтобы перейти к более важной игре: клиентам. Но у большинства так не получается. Я знаю, что и у меня не получалось. Проблема состоит в том, что разработчики сами по себе стали рынком сбыта. И, как на любом другом рынке, нам все время пытаются втюхать какой-нибудь хлам. И торгаши не задумываются о наших клиентах, потому что их клиенты - это мы, программисты. Вместо наших клиентов они думают о нас. Нам пытаются продавать вне зависимости от того, хотим ли мы это покупать или нет, и вне зависимости от того, будет ли это полезно тем людям, которым мы как программисты стараемся помочь. И это создает несколько извращенную мотивацию. Не любите разговаривать с людьми? Ну и хорошо. Прочтите сотню книг по программированию, и ни в одной вы не встретите ни слова о том, что вам надо разговаривать с людьми. Даже несмотря на то, что эти самые "разговоры с людьми" - самое важное в работе программиста. Любите прикольные маленькие прибамбасы и не любите решать проблемы? Ну и ладушки. Ведь вокруг пасется целый табун торгашей, готовых толкнуть вам прикольные маленькие прибамбасы на любой вкус. Можете потратить на это десять лет и стать экспертом по прибамбасам. Понимаете, я обнаружил, что компания Microsoft ни капли не заинтересована в том, чтобы содействовать мне в помощи моим клиентам. И в этом Microsoft не отличается от всей остальной индустрии. Все, чего они хотят - это соответствовать предрассудкам, которые у меня сформировались как у программиста. Интересуетесь новыми фишечками, которые появятся в C%23 5.0? Ну и кого в реальном мире это волнует, помимо нас, программистов? Я шел к пониманию этого довольно долго. Как и любой жертве мошенников, мне понадобилось время, чтобы пробудиться. Неужели?! Вы хотите сказать, что все те вещи, на которые я тратил деньги, были бесполезны? На той неделе я решил прибраться в офисе. И знаете, сколько программерских инструментов, языков и тому подобной чепухи я накупил за прошедшие годы? Бессчетное количество. В конце концов, сколько одному человеку нужно календарных приложений? Неужели нас ждет конец света, где каждого заставят написать собственный календарь-ежедневник? Я потратил сотни тысяч долларов на программы и инструменты для их создания, оборудование и книги, которые говорили мне то, что я хотел услышать. Что программирование - это сложная, но замечательная сфера деятельности, включающая в себя массу технических деталей и необходимость постоянно быть в курсе новейших технологий. Но программирование - это помощь людям, а не вся эта дребедень. Это касается как TDD и BDD, так и многих других вещей. Нас подсадили на идею, что программирование - это высокое искусство. Что есть "хорошие" программисты и "плохие" программисты. И что "хорошие" программисты делают всё неким определенным образом. Да, некоторые инструменты и правда лучше других. В этом нет никаких сомнений. Но почему-то те люди, которые продают нам разную дребедень, не спешат предупредить нас, в каких случаях эту дребедень не стоит применять. В их глазах она хороша почти для любой задачи. У них нет стимулов говорить об уместности продаваемых ими средств, ведь зачастую то, что они продают, имеет очень ограниченную сферу применения, а наше воображение может нарисовать куда более широкий контекст для применения этой дребедени. Знаете ли вы, сколько сотен миллионов, а то и миллиардов долларов прямо на моих глазах было потрачено на корпоративный софт, всё назначение которого сводилось к тому, что "вашим программистам нужно помочь делать всё должным образом, и наши инструменты изменят их поведение, чтобы это не пришлось делать вам самим"? Это не работает, но деньги на это всё равно тратятся. Маркетологи продают покупателям их мечту, которая не имеет никакого отношения к реальности. Да, я бы тоже хотел жить в мире, где новый набор инструментов означал бы, что у меня уже есть обалденный стартап. Или что я могу помочь людям одним нажатием кнопки. Но за пределами семинаров, конференций и презентаций такого мира не существует. В реальном мире реальные люди сталкиваются с неясными сложными вопросами, не всегда ладят друг с другом и претворяют в жизнь неоптимальные решения просто потому, что это лучше, чем ничего. Помогая кому-либо, я ни разу не сталкивался с тем, чтобы некий элемент технологии действительно мне помог. То есть, я думал, что наличие таких технологий помогает, это уж будьте уверены. Благодаря торгашам, я был запрограммирован на то, чтобы думать: "Ничего себе! Как же хорошо, что у меня есть то-то и то-то! Ведь оно позволяет в два счета справляться с проблемами!" Но, конечно же, так оно никогда не выходило. (Единственное исключение, о котором стоит упомянуть - это реляционные базы данных и веб-приложения, которые стандартизируют хранение информации и методы распространения приложений). С другой стороны, я видел сотни программистов и десятки команд, тратящих массу времени на возню с теми "полезностями", которые были приобретены им "в помощь". Я видел такие команды, которые были практически парализованы всей этой “помощью” в виде накупленных ими инструментов, языков, технологий и методологий. У одного из моих клиентов человек сто работало над одной-единственной проблемой. И эти люди уже достигли той стадии, когда вплотную подошли к выводу, что у их проблемы решения не существует. После недели прототипирования я продемонстрировал им простое решение их проблемы. И что они мне ответили? Что ничего не получится, поскольку это не подходит к нашим инструментам! То есть, они не сказали, что это не понравится заказчику, или что это не является решением. Они просто не смогли это реализовать, поскольку имеющийся набор инструментов не давал им возможности справиться с проблемой. Той самой, для решения которой эти инструменты, по идее, и предназначались. Есть у меня несколько коллег, которые постоянно жалуются в "Твиттере" на трудности, которые они испытывают с тем или иным инструментом или технологией - вместо того, чтобы решать проблемы заказчиков. Им по-прежнему кажется, что освоение новейших технологий приведет к внезапному всплеску продуктивности. Но этого не случается. Просто с каждым годом появляются всё новые и новые волшебные инструменты и технологии. И это конвейер, который никогда не остановится. Производители будут выпускать всё новые и новые продукты и обещать, что благодаря этим продуктам исчезнут все проблемы, увеличится технологическая сложность и глубина. Это будет продолжаться до тех пор, пока у программистов есть деньги. Многие инструменты программиста и в самом деле полезны, это бесспорно. Но мы должны быть очень внимательны, чтобы в один прекрасный день не оказаться в каком-то воображаемом маркетинговом мире, который существует только ради создания ощущения нашей собственной крутизны - но который не существует больше ни для кого. Все это мы делаем на свой страх и риск. | |
|
Всего комментариев: 0 | |