![]() | |||
Joel on Software Джоэл о программном обеспечении
| |||
Другие статьи сайта "Joel on Software" на русском языке Другие статьи сайта "Joel on Software" на английском языке Адрес электронной почты автора (пожалуйста, пишите только по-английски) |
Руководство по UI дизайну для программистов Глава 1
Достигая тех высот
Выбор даты выпуска Одна из наиболее весомых причин составить детальный план в том, что он дает вам обоснование для фильтрации функциональных возможностей программы. Если невозможно успеть к положенному сроку выпуска и реализовать функцию MP3-чата, которую предложил программист Боб, то можно легко отсечь эту функцию, не особенно огорчая при этом Боба.
Дорога на FogBugz 4.0: Часть I Большинство наших клиентов, к счастью, понимают, что принципом Fog Creek является создание полностью готового к использованию, незалеживающегося на полках программного обеспечения, которое вы покупаете по минимальной цене и которое готово к выполнению того, что вам нужно, а если оно не готово к тому, что вам нужно, ну тогда мы готовы выслушать ваши пожелания, но за 99$ вы не получите заказную версию, извините.
Совет студентам изучающим вычислительную технику К счастью, большинство студентов достаточно смелы, чтобы никогда не стесняться спрашивать советов у старших, что в области вычислительной техники (Computer Science) весьма уместно, потому что старшие склонны говорить устаревшие глупости, подобные этим: “спрос на операторов превысит 100 000 000 к 2010 году” или “lisp программисты сейчас очень востребованы”. Верблюды и песочница Когда вы устанавливаете цену, вы посылаете сообщение. Если цена ПО вашего конкурента попадает в промежуток от $100 до $500, и вы решаете, блин, все же мой софт находится в процессе разработки, и я буду выставлять счета на $300, так вот, какое, думаете, сообщение вы посылаете своим клиентам? Вы говорите им, что ваш софт это «нуу, понимаете...». У меня есть лучшая идея: требуйте $1350. Теперь ваши клиенты будут думать — ну, чувак, это должна быть нефиговая софта, раз за нее хотят такие бабки. Верблюды и песочница Пожалуйста, сэр, могу ли я получить компоновщик? О компоновщике (linker). Вот что он делает: собирает откомпилированную версию вашей программы с откомпилированными версиями библиотечных функций, которые ваша программа использует. Затем, он удаляет те библиотечные функции, которые ваша программа не использует. И в конце концов, компоновщик создает один бинарный выполняемый файл, который люди могут запустить на своих компьютерах. Пожалуйста, сэр, могу ли я получить компоновщик? Как Microsoft проиграла битву за API И хотя существует часть правды в том, что Linux представляет большую угрозу для Microsoft, предсказания о падении компании из Рэдмонда, по меньшей мере, преждевременны. У Microsoft невероятное количество денег в банке, и они до сих пор невероятно прибыльны. Падение будет долгим. Как Microsoft проиграла битву за API
Не просто удобство использования Моя цель сегодня не хныкать о том, что практичность не важна... практичность важна на границах, полно примеров когда неудобство использования убивает людей в небольших самолетах, создает голод и эпидемию и т.д.
Как сделать так, чтобы ваше резюме прочитали Пожалуйста, не используйте сопроводительные письма, которые вы скопировали из книг. Если вы пишите: «Я понимаю, что от кандидата требуется умение работать в команде, разбираться в деталях, хорошо работать в жестких условиях, умение находить общий язык с людьми из других отделов фирмы», - тогда, в лучшем случае, люди подумают что вы какой-то дурацкий артист, а в худшем, они будут думать, что вы родились без той части мозга которая отвечает за формирование ваших собственных мыслей и идей. Как сделать так, чтобы ваше резюме прочитали Двоекультурие Мастерство Написание кода это не производство, не всегда это и мастерство (хотя может оказаться и им), это -- дизайн. Дизайн -- это та туманная область, в которой вы добавляете ценность быстрее, чем себестоимость. Журнал New York Times писал восхищённые статьи о iPod и о том, что Apple одна из немногих компаний, знающих как использовать хороший дизайн для повышения ценности. Но я достаточно говорил о дизайне, я хочу немного поговорить о мастерстве: что это и как вы его определяете.
Бионический офис Ну что ж. Это заняло гораздо больше времени, чем ожидалось. Мы наконец-то переехали в новый офис Fog Creek, расположенный по адресу 8-я Авеню, дом 535, спустя десять месяцев после того как я начал рыть землю в поисках замены старого дома моей бабушки, в котором мы работали первых несколько лет, разместившись в спальнях и саду. Бионический офис
Лорд Палмерстон в программировании Лорд Палмерстон: “Шлезвиг-Гольштейн вопрос настолько осложнен, что только три человека в Европе вообще понимают его. Один был Принц Альберт, который умер. Второй был немецкий профессор, который сошел с ума. Я третий и я уже забыл все, что знал о нем”. Различные области программного обеспечения настолько огромны. Закон Дырявых Абстракций Абстракций без дыр не бывает. В одних дыр поменьше, в других побольше. И детали, которые эти абстракции пытаются скрыть, просачиваются сквозь дырки, хватают нас за штаны и тормозят. Почитайте об этом в моей статье Закон Дырявых Абстракций. О вреде премирования Идея заключалась в том, что сразу после выпуска продукта вы получаете люситовую надгробную плиту размером с приличный словарь. Это каким-то образом должно было давать стимул к работе, потому как если вы ничего не делаете, то ведь никакого люсита не будет! Удивительно, как фирме Microsoft вообще удавалось выпускать программы до появления этой плиты. О вреде премирования
Пять миров Вы - разработчик программного обеспечения. Я тоже. Но у нас могут быть совсем неодинаковые цели и требования. На самом деле, существует несколько различных миров разработки ПО, и к разным мирам применимы разные правила.
Огонь и движение
Назад, к основам Ещё глубже. Сегодня я хочу поговорить о процессорах. Маленький кусочек кремния, который байты двигает. Представим себе, что мы учимся программировать. Отложим знания об управлении проектами и языках высокого уровня и вернёмся к основам, заложенным ещё фон Нейманом. Забудем на минуту о J2EE. Подумаем о Байтах.
Письмо о стратегии IV: Раздутое ПО и миф 80/20 Фактически, есть куча причин для возникновения раздутых программ. Например, если программистам не надо заботиться о размере конечного продукта, они могут закончить разработку быстрее. А это, в свою очередь, означает, что пользователи получат больше возможностей, которые улучшают жизнь тем, кто их использует, и обычно не мешают остальным. Раздутое ПО и миф 80/20 Весна в Кэмбридже Одну вещь arsDigita делала очень, очень правильно — у нее был свой голос. И с Fog Creek'ом меня прежде всего заботит сохранение собственного голоса. Если мы сможем этого добиться, я буду большим должником Филипа Гринспана. О вреде многозадачности применительно к людям Программисту, работающему в полную силу, приходится удерживать в голове миллион разных вещей: названия переменных, структур данных, системных вызовов и вспомогательных функций, которые были ранее написаны и часто используются, даже название подкаталога, где живут исходники. Если послать этого программиста на три недели в отпуск на остров Крит, то он всё это забудет. О вреде многозадачности применительно к людям
Биг Маки против "обнаженного шеф-повара" Почему так случается, что "крутые" новые консалтинговые компании начинают с череды впечатляющих успехов, метеорного взлета, и быстро деградируют до посредственных? Биг Маки против "обнаженного шеф-повара" По главной улице без оркестра Когда я сажусь проектировать систему, я должен решить, какие инструменты использовать. Хороший проектировщик использует или те инструменты, которым можно доверять, или те, которые можно починить. Иначе шагать вам по главной улице без оркестра. Работа над ошибками малой кровью Если вы пишете код, пусть даже в одиночку, и не ведёте систематизированный учёт всех найденных в коде ошибок, вы обречены поставлять низкокачественный продукт. Работа над ошибками малой кровью
Безболезненные функциональные спецификации
Тест Джоэла: 12 шагов к лучшему коду Вы когда-либо слышали о программе SEMA? Это весьма эзотерическая система, предназначенная для определения того, насколько хороша команда разработчиков. Нет, погодите, не ходите туда, а то потратите лет шесть только чтобы понять, что там написано. Я предлагаю вам свой собственный, совершенно безответственный и несерьёзный тест для определения качества команды разработчиков. Главное его преимущество в том, что он отнимет у вас от силы три минуты. Сэкономленного времени хватит на то, чтобы получить медицинское образование. У Microsoft поехала крыша У Microsoft поехала крыша,
Cтратегические заметки III. Позвольте мне отказаться! Зрелый подход к стратегии - привлекая потенциальных клиентов не пытаться форсировать события. Никто не желает переходить на продукт, ограничивающий свободу действий в дальнейшем. I письмо о стратегии: Ben and Jerry's против Amazon Создаете компанию? Вам необходимо принять одно очень важное решение, поскольку оно касается всех остальных ваших действий. Не важно, какие это действия, но вы, безусловно, должны определить, какому лагерю вы принадлежите, и осуществлять все остальные действия соответствующим образом, иначе вас постигнет несчастье. Пять (неуважительных) причин не иметь тестеров Казалось бы — после мании Качества с заглавной буквы, охватившей мир в 80-х годах, после всех этих бессмысленных международных сертификатов типа ISO-9000 и моды на словечки типа «шесть сигм», менеджеры должны были бы уже понять, что выпуск высококачественных продуктов с деловой точки зрения не так уж и бессмыслен. Кстати, они, в общем-то, это понимают. Большинству из них удалось осознать это — головой. Однако они всё ещё находят множество причин отказаться от тестирования программного обеспечения. Притом все эти причины неуважительны. Ну откуда все эти (неоригинальные) мысли? Все мы прекрасно знаем, что работникам умственного труда лучше всего работается, когда они погружаются "в зону концентрации", или, так сказать, в "трудовой поток", полностью концентрируются на задаче и отключаются от внешних воздействий. Они забывают о времени, и в состоянии чрезвычайной сосредоточенности выдают на-гора превосходные результаты. Вот в такие периоды всю свою творческую работу они и делают.
Планирование программного обеспечения малой кровью
Стратегические заметки II: Вопрос о курице и яйце Итак, если вы в бизнесе, связанном с разработкой платформ, то, вероятно, вы страдаете от того, что общеизвестно как вопрос о курице и яйце. Никто не станет покупать вашу платформу, пока для нее не будет хорошего программного обеспечения, и никто не станет его писать, пока нет большого количества уже работающих программ. Опа! "Я начальник - ты дурак" и команда клоунов Участки работы были ничьи, люди просто работали на них, и руководители разных уровней с удовольствием запускали руки в каждый стряпающийся пирог, раздавая указания направо и налево в стиле, который я стал называть порулил и убегай, потому что начальники появлялись на горизонте вероломно, отдавали глупые распоряжения как именно все, черт побери, должно было сделано, без какого-либо предварительного размышления, и покидали комнату, оставляя всех собирать осколки. Искусство проведения интервью В процессе интервьюирования важно помнить следующее: лучше отказаться от хорошего кандидата, чем нанять плохого. Плохой работник будет стоить кучу денег, усилий и времени, которое другие люди потратят, исправляя его ошибки. В случае любых сомнений лучше сказать «не берем». Искусство проведения интервью
Две истории В Microsoft так заведено — если ты руководишь проектом разработки продукта, то ты — царь и бог во всём, что касается этого продукта. То, что ты работаешь в компании меньше полугода, не имеет никакого значения. Никто не может ставить тебе палки в колёса, даже человек №6. А вот ещё про отпуск В 1995 году я ушёл в долгий отпуск, и сейчас тоже. | ||
![]() Джоель Спольски - основатель Fog Creek Software, небольшой компании по разработке программного обеспечения, расположенной в Нью-Йорке. Окончил Йельский Университет, работал программистом и управляющим в Microsoft, Viacom и Juno. |
Содержимое этих страниц представляет собой мнение одного человека.
Всё содержимое Copyright ©1999-2005 by Joel Spolsky. All Rights Reserved.