Текст книги "Getting Real"
Автор книги: 37signals
Жанр:
Программирование
сообщить о нарушении
Текущая страница: 2 (всего у книги 8 страниц)
Никакой рутины
Ваша страсть или её нехватка будет ясно видна
Чем меньше в вашем приложении рутины – тем лучше.
Если рутинной работы немного и она управляема – вы можете наслаждаться.
Если ваше приложение не волнует – это плохо. Если вы делаете это только из-за денег – это проявится. И если вы обожаете свое приложение – это проникнет в конечный продукт. Люди умеют читать между строк.
Присутствие страсти
В проекте, где смысл часто спорный, субъективный или непостижимый, немногое более очевидно и ясно, чем присутствие страсти. Может дизайн продукта вызывает у вас восхищение или обдаст холодом; в любом случае трудно не обнаружить, что его делали с душой.
Энтузиазм проявляется с готовностью, конечно, но безразличие – одинаково несмываемо. Если ваши взгляды не охватывают подлинную страсть к работе, это становится пустотой, которую почти невозможно скрыть, независимо от того, как продуманно или привлекательно всё было разработано.
– Кой-Вин, Subtraction.com и соучредитель Behavior LCC.
Пекарня
Американский бизнес призывает к развитию идеи, к получению из этого выгоды, к последующей продаже, в то время как это становиться выгодным, а затем собирает доходы или диверсифицирует развитие. Это высасывает все. Моя идея: если вы печете хлеб, вкладывайте в него свою душу; людям это понравиться и вы продадите больше. Ваша пекарня будет процветать, потому что вкусный хлеб понравится всем.
– Ян Маккэй, член Fugazi и совладелец Dischord Records.
Оставайтесь небольшими
Меньше размеры
Чем вы беднее, тем проще это изменить
Чем больше объект, тем больше нужно энергии для его изменения. Это так же верно в деловом мире, как и в обычном.
В вебе изменения должны проходить легко и дешево. Если вы не можете меняться на лету, вы проиграете тому, кто может. Поэтому вы должны стремиться к меньшим размерам.
Размеры увеличивают:
* долгосрочные контракты
* большой штат сотрудников
* неизменные решения
* совещания о других совещаниях
* долгий процесс
* обширный инвентарь (физический или умственный)
* привязка к оборудованию или программам
* закрытые форматы данных
* управление будущим на основе прошлого
* долгосрочные цели
* офисная политика
Уменьшить размеры позволяют:
* решения, принимаемые по мере надобности
* многозадачность членов команды
* установка ограничений вместо попыток их преодолеть
* уменьшение программного обеспечения, меньше кода
* меньшее количество функций продукта
* маленькая команда
* простота
* открытые исходные коды
* открытые форматы данных
* свободная атмосфера, в которой легче признавать ошибки
Меньшие размеры позволят вам быстрее изменить направление. Вы можете реагировать и развиваться. Вы можете сфокусироваться на хороших идеях и выкинуть плохие. Вы можете слушать своих клиентов и отвечать им. Вы можете внедрить новые технологии сейчас, а не потом. Вместо авианосца вы управляете моторной лодкой. Получайте удовольствие от этого обстоятельства.
К примеру, давайте представим одну маленькую компанию, которая выпустила продукт с небольшим набором функций, и компанию, у которой есть продукт с обширным функционалом. Далее возникает новая технология, например, AJAX, или новая идея, как, например, теги. Кто из них в состоянии быстрее приспособить эти технологии к своему продукту? Команда с огромным проектом, кучей функций и планом на год, или команда с маленьким продуктом и более органичным подходом, который гласит «давайте будем делать то, что нам нужно сделать прямо сейчас»?
Очевидно, что небольшая компания находится в лучшем положении и лучше приспосабливается к реальным требованиям рынка. Более крупная компания будет, вероятно, будет обсуждать изменения или проталкивать их через бюрократическую машину еще долго после того, как маленькая компания уже все сделает. Небольшая компания на два шага впереди, в то время как большая компания все еще думает куда идти.
Ловкие, проворные и легковесные компании могут быстро менять свою бизнес-модель, продукт, его функции и маркетинг. Они могут делать ошибки и быстро их исправлять. Они могут менять приоритеты, и что самое важное – у них есть право передумать.
Снизьте стоимость перемен
Будьте гибкими, снижая препятствия для перемен
Перемены – ваш лучший друг. Чем выше их цена, тем меньше их вероятность. И если ваши конкуренты могут меняться быстрее вас, вы в крайне невыгодном положении. Если цена перемен становится слишком высока – вам конец.
Вот где бедность действительно поможет вам. Копеечная стоимость перемен – это то, что есть у маленьких команд по умолчанию, у больших команд этого не будет никогда. Вот тут большие ребята действительно завидуют маленьким ребятам. В большой организации на какое-то изменения потребуется неделя, а в малой – это займет всего один день. Это преимущество бесценно. Дешевые и быстрые перемены – секретное оружие малого бизнеса.
И помните: все деньги, весь маркетинг, все люди в мире не могут купить проворство, которое вы получаете уже от того, что вы невелики.
Непредсказуемость
Непредсказуемость одно из основополагающих принципов проворства, и очень близко к чистому волшебству. Неожиданно появляющиеся свойства не проектируются или строятся, они просто случаются, как динамичный результат остальной части системы.
«Непредсказуемость» происходит с середины 17-го столетия из латинского словосочетания «непредвиденный случай». Вы не можете спланировать это, но вы можете культивировать окружающую среду, в которой позволите этому случиться и извлечь из этого выгоду.
Классический пример непредсказуемости лежит в поведении стаи птиц. Компьютерное моделирование может использовать только лишь три простых правила (например, параллельные линии не пересекают друг друга), и вдруг вы получаете очень сложную схему, как стая двигается и ведет свой путь грациозно через небо, огибая препятствия. Ни одно из этих правил не предполагает такого поведения, как, например, изменение строя во время преодоления препятствия, это возникает из динамики системы.
Простые правила, как с моделированием птиц, приводят к сложному поведению. Сложные правила, как, например, налоговое законодательство большинства стран, провоцируют глупое поведение.
Методы разработок стандартного программного обеспечения обладают досадным побочным эффектом: они исключают любую возможность непредсказуемого поведения. Большинство попыток оптимизации этого процесса и привязке к конкретным правилам сужают разнообразие взаимодействий и отношений, которые являются источником непредсказуемых поступков. Стая птиц – это пример разумной системы, в которой взаимодействия и взаимоотношения создают любопытное поведение.
Чем больше жестких установок мы применяем, тем меньше места для творческих и необычных решений. Разрабатываете требования прежде чем как следует в них разберетесь, слишком рано оптимизируете код или изобретаете сложную навигацию и схемы действий до того, как пользователи увидят систему – результат один: усложненная, неразумная система вместо простой и элегантной, взявшей на вооружение неожиданность.
Будьте небольшими. Будьте проще. Позвольте вмешаться динамике и непредсказуемости.
– Эндрю Хант, The Pragmatic Programmers
Три Мушкетера
Используйте команду из трех человек для версии 1.0
Чтобы выпустить первую версию вашего продукта, можно начать только с тремя людьми. Это магическая число, которое обеспечит вам достаточный человеческий ресурс и в то же время позволит оставаться быстрым и проворным. Начните с разработчиком, дизайнером, и человеком, – который разбирается в том и другом.
Конечно, это вызов – создать продукт, имея лишь нескольких человек. Но если у вас правильная команда, это того стоит. Талантливым людям не нужны бесконечные ресурсы. У них есть энтузиазм. Их творческий потенциал можно использовать для решения проблем. Недостаток человеческого ресурса означает, что вам придется идти на компромиссы сразу – и это правильно. Это заставит вас раньше задуматься над приоритетами. И вы сможете сразу же наладить связь в команде, не беспокоясь о том, что кто-то останется за бортом.
Если вы не можете создать версию 1.0 с тремя людьми, то или вам нужны другие люди, или необходимо понизить начальные требования. Запомните, простая и легкая первая версия – это нормально. Вы быстро увидите, если ваша идея хороша – у вас будет чистая и простая основа для дальнейшей работы.
Закон Меткалфа и проектные команды
Удерживайте команду насколько возможно маленькой. Закон Меткалфа, который гласит «полезность сети приблизительно равна квадрату численности пользователей этой сети», применительно к участникам команды обретает иной смысл: эффективность команды обратно пропорциональна квадрату количества ее участников. Я начинаю думать, что три человека – оптимально для версии 1.0… Начните с сокращения списка людей, которых вы хотите пригласить в команду, а затем сократите его снова.
– Марк Хедлунд, предприниматель-консультант в O'Reilly Media
Пути взаимоотношений
Пути взаимоотношений в маленьких командах проще, чем в больших. Если вы – единственный человек в проекте, взаимодействие происходит только между вами и клиентом. Если число людей в проекте увеличивается, возрастает и количество путей взаимоотношений. Их количество не возрастает последовательно, как увеличение численности людей, поток увеличивается многократно, пропорционально квадрату числа людей.
– Стив МакКоннелл, ведущий проектировщик ПО в Construx Software Builders Inc. (из статьи Less is More: Jumpstarting Productivity with Small Teams)
Принимайте ограничения
Пусть ограничения ведут вас к творческим решениям.
Многого недостаточно, чтобы не идти кругами. Мало времени. Недостаточно денег. Мало людей.
Это хорошо.
Вместо рассуждений об этих ограничениях, примите их. Пусть они ведут вас. Ограничения управляют новизной и центром силы. Вместо попытки сместить их, используйте как преимущество.
Когда в 37signals строили Basecamp, у нас было много ограничений:
* Мы начинали как дизайнерская фирма
* Существовала текущая клиентская работа
* Было 7 часов разницы во времени (Давид делал программирование в Дании, а остальные находились в Штатах)
* Маленькая команда
* Не было внешнего финансирования
Мы приняли ограничения и взяли большие задачи, разделили их на маленькие куски, чтобы попытаться выполнить их по одному. Мы двигались шаг за шагом и с определенными приоритетами.
Ограничения вынудили нас приходить к творческим решениям. Мы понизили стоимость наших изменений, всегда делая меньшее программное обеспечение. Мы предоставили людям достаточно возможностей, только для того чтобы разрешить их собственные проблемы, а не указать им собственный путь. Разница во времени и расстояние между нами стало серьезным фактором в нашей коммуникации. Вместо встречи, мы связывались почти исключительно через мессенджеры и электронную почту, которые вынудили нас добраться до цели еще быстрее.
Ограничения – часто замаскированы. Забудьте о вкладе капиталов с риском, длинном цикле релизов, и быстром найме людей. Вместо этого, работайте с тем, что у вас есть.
Будьте собой
Дифференцируйте себя от больших компаний, будьте дружественнее и доступнее
Много маленьких компаний делают ошибку в попытках действовать как большие. Как будто бы они не замечают свой размер. Это как слабость, комплекс, который нужно скрывать, и это слишком плохо. Быть маленьким фактически обладать огромным преимуществом, особенно, когда это касается коммуникации.
Маленькие компании наслаждаются меньшими формальностями, меньшей бюрократией, и большей свободой. Маленькие компании ближе к клиенту по умолчанию. Это означает, что они могут связаться прямо и лично с клиентами. Ваш сайт и ваш продукт могут иметь человеческие тексты, вместо зондирования корпоративных трутней. Ваши клиенты будут говорить непосредственно с вами, а не с продавцами, которые тянут вниз компанию.
Есть также преимущества во внутренних коммуникациях. Нет никакой потребности в куче формальностей и многоразовых отчетах на все. Каждый в процессе может говорить открыто и честно. Это снимает оковы с потока идей – одно из самых больших преимуществ небольшой компании.
Будьте с гордостью, вызывающе правдивы
Вы, возможно, думаете, что клиента могут дурачить преувеличения числа штатных сотрудников в вашей компании или широта ваших предложений. Те, клиенты, которых вы действительно хотите, будут всегда искать правду – через интуицию или вычисления. Потом останется только смущение морально неоправданной лжи в прошлом, и ни одна из тех ситуаций не приведет к тому, что в бизнесе имеет значение: к взаимовыгодным отношениям с людьми, с теми, кто имел реальную потребность в предложенных услугах. Лучший курс – быть с гордостью, вызывающе правдивым и сообщать о точном размере компании и широте предложений.
– Khoi Vinh, Subtraction.com and co-founder of Behavior LLC
Всегда в любое время
Неважно, в каком бизнесе вы находитесь, хорошее обслуживание клиентов должно быть. Мы требуем этого в услугах, мы используем это, почему бы нам ни подумать, что наши клиенты ждут того же от нас?
С самого начала мы сделали легким и прозрачным все, чтобы клиенты могли связаться с нами по любому вопросу. На нашем сайте мы указали бесплатный номер и наши мобильные телефоны и на наших визитках каждый из нас оставляет контактную информацию. Мы делаем упор на то, что клиенты, могут добраться до нас и связаться в любое время, и неважно в чем, возможно, была бы проблема. Наши клиенты ценят этот уровень доверия, и никто никогда не злоупотребил нашим обслуживанием.
– Edward Knittel, Director of Sales and Marketing, KennelSource
Приоритеты
В чем идея
Явно и точечно определите видение для вашего приложения.
Что ваше приложение должно делать? Это действительно все?
Перед тем как вы начнете проектировать или кодировать что-либо, вам нужно знать цель вашего продукта – видение. Думайте. Почему это может существовать? В чем будут отличия от других подобных программ?
Это видение будет вести вас, и ваши решения держать на последовательном пути. Каждый раз, когда есть сомнения в решении, можно спросить себя: «Мы остаемся верными видению?»
Ваше видение должно быть кратким и содержать идею. Вот – виденье для каждого нашего продукта:
Basecamp: Управление проектом – это коммуникация
Backpack: Соединить детали вместе
Campfire: Чат группы против IM
Ta-da List: Конкуренция post-it запискам
Writeboard: Слово – массовое оружие (Word is overkill)
С Basecamp, например, виденье было таким: «Управление проектом – это коммуникация». Мы считаем, что эффективная коммуникация втягивает по инерции собственные инвестиции и силы в проект. Каждый получает работу в направлении общей цели. Мы знали, что Basecamp достигнет этого, все другие линии провалились бы.
Это виденье заставляло нас делать так, чтобы Basecamp был как можно более открытым и прозрачным. Вместо ограничений коммуникации в пределах фирмы, мы предоставили такой же доступ и клиентам. Мы меньше думали о разрешениях и больше о поощрении, чтобы все приняли участие в проекте – это то, почему мы опустили диаграммы, графики, статистику и электронные таблицы. Вместо чего сосредоточились на приоритетах коммуникаций: сообщениях, комментариях, списках и распределению файлов.
Найдите свою большую идею и примите решение о видении, все маленькие решения в будущем станут проще и легче.
Философия Whiteboard
Andy Hunt и я делали debit card transaction switch. Главным требованием было, что потребитель дебетовой карты не должен иметь одну и ту же сделку, совершенную дважды. Другими словами, такая проблема считалась бы ошибкой и обрабатывалась бы только одна сделка.
Так что, мы написали об этом на нашем общем whiteboard: «Ошибка на пользу потребителей».
Это присоединило к себе дюжину других принципов. Совместно, они ведут все хитрые решения, которые происходят, когда строишь что-нибудь комплексное. Вместе эти принципы создают внутреннюю и внешнюю последовательность действий.
– Dave Thomas, The Pragmatic Programmers
Создавайте молитвы
Организациям нужны указательные столбы. Им нужен план; работникам каждый день нужно знать, когда они просыпаются, почему они собираются идти на работу. Этот план должен быть кратким и сладким, и затрагивать все: Почему вы существуете? Как это мотивируете? Я называю это молитвой – описание в трех-четырех словах причин, по которым вы существуете.
– Guy Kawasaki, author ( from Make Mantra)
Пренебрегайте деталями в начале
Работайте от большего к меньшему
Мы сумасшедшие до деталей.[9]9
Более правильно, наверное, «мы сходим с ума от деталей» (прим. выполнившего форматирование)
[Закрыть]
* Пространство между объектами
* Совершенный цвет
* Совершенные слова
* Четыре линии кода вместо семи[10]10
Судя по всему, должно быть «четыре строки кода вместо семи» (прим. выполнившего форматирование)
[Закрыть]
* 90% vs 89%
* 760px vs 750px
* $39/month против $49/month
Успех и удовлетворение находится в деталях.
Однако, успех не единственная вещь, которую вы найдете в деталях. Вы также найдете – застой, разногласие, встречи, и задержки. Эти вещи могут убить моральное состояние и снизить вероятность успеха.
Как часто вы сидите над одной строчкой кода в течение целого дня? Как часто ваша работа сделанная за один день не дала никакого прогресса? Это случается, когда вы сосредоточиваетесь на деталях, слишком рано. У взыскательного человека будет еще много времени на детали. Просто отложите это.
Не волнуйтесь о размере шрифта в заголовках. Вы не нужна совершенная тень. Вам не нужно перемещать кнопку на три пикселя вправо или влево. Просто поместите материал на страницу. А затем используйте. Убедитесь, что это работает. Позже вы можете все усовершенствовать.
Детали проявляются, пока вы используете то, что вы строите. Вы будете видеть, чему нужно уделить больше внимания. Вы будете знать, какие выбоины надо замостить, потому что вы будете продолжать биться об них. Именно тогда, на них следует обратить внимание, не раньше.
Дьявол в деталях
Если вы начинаете втягиваться в детали немедленно, можете быть уверены что рисунок будет плохим. Фактически, вы целиком не понимаете суть дела.
Вы должны получить пропорции для целого. А затем делать эскиз наибольших объектов, переходя к самым маленьким. Эскиз должен быть простым вплоть до этого пункта. Затем вы можете возобновить штриховку, которая приведет объем в чувство.
Вы начинаете только с трех тонов (светлый, средний, темный). Это будет тональный эскиз. Затем для каждой части вашего рисунка оцените три тональных тени и примените их. Сделайте это, пока объемов нет (требует многоразового повторения)…
Работайте от большего к меньшему. Всегда.
– Patrick Lafleur, Creation Objet Inc. (from Signal vs. Noise)
Проблема тогда, когда это проблема
Не тратьте бесцельно время на проблемы, которых у вас еще нет
Вам действительно нужно волноваться о вычислениях для 100 000 потребителей сегодня, если это будет у вас через два года?
Действительно вам нужно нанять восемь программистов, если сегодня нужно только три?
Действительно сейчас нужны 12 первоклассных серверов, если вы можете обойтись двумя на протяжении года?
Люди часто тратят слишком много времени на попытки решить проблемы, которых у них нет. Не делайте этого. Мы начали делать Basecamp без клиентов! С тех пор, как мы взялись за разработку продукта, у нас было 30 дней. Мы использовали это время, чтобы разрешить более срочные проблемы, а затем, после создания основы, мы попытались провести подсчеты и определить, сколько же клиентов у нас будет.
Это было простым C8; отличным решением, без ненужных смет и усилий.
Не работайте над материалом, пока вы фактически не должны этого делать. Не надстраивайте. Увеличивайте технические средств и системное программное обеспечение по мере необходимости. Если вы задержитесь на неделю или две – это не конец света. Просто будьте честным: объясните вашим клиентам, что вы растете и решаете некоторые проблемы из-за этого. Они, возможно, не будут в восторге, но оценят искренность.
Совет: Принимайте решения вовремя, когда у вас есть доступ к реальной информации, которая необходима. Тем временем, вы сможете сосредоточить внимание на вещах, которые требуют непосредственной заботы.
Работайте с правильными клиентами
Найдите основной рынок для вашего приложения и сосредоточьтесь исключительно на нем
Клиент не всегда прав. Правда в том, что вам придется определять кто прав, а кто ошибается – в рамках вашего приложения. Хорошая новость в том, что интернет делает поиск правильных людей легче, чем когда-либо.
Если вы ориентируетесь на всех, вы не удовлетворите никого
Когда мы построили Basecamp, мы сконцентрировали свой маркетинг на дизайн студиях. Сузив рынок, мы увеличили вероятность привлечения страстных клиентов, которые, в свою очередь, проповедовали продукт как Евангелие (evangelize the product). Знайте, для кого ваше приложение действительно предназначается, и сконцентрируйтесь на их удовлетворении.
Лучший вызов, который когда-либо мы сделали
Решение нацелить Campaign Monitor строго на рынок сетевого проектирования был лучшим вызовом, который мы когда-либо сделали. Это позволило нам легко выделить особенности, которые были действительно полезны и важны. Мы привлекли больше клиентов, нацеливаясь только на тех, у которых есть подобные потребности. Они делают нашу работу, намного легче. Есть масса особенностей в Campaign Monitor, которые бесполезны для всех, кроме сетевого проектировщика.
Фокусировка на основном рынке также помогает намного легче распространить информацию о вашем программном обеспечении. Теперь, когда у нас есть определенная аудитория, мы можем рекламироваться, в тех местах, где они часто бывают онлайн, издаем статьи, которые возможно, найдут интерес, и в общем строем сообщество вокруг нашего продукта.
– David Greiner, founder, Campaign Monitor