Getting Real: The Smarter, Faster, Easier Way to Build a Web Application
37 Signals
Сделайте меньше чем ваши конкуренты, чтобы ударить по ним. Решайте простые проблемы и оставьте сложные, противные проблемы всем остальным. Вместо превосходства попробуйте делать недостаточно.
Главное здесь — понять, что вы не одни. Если у вас есть проблема, вероятно сотни тысяч других людей находятся в том же положении.
Если вы решаете собственную проблему, вы создаёте инструмент с душой. И это является ключевым. Это означает, что вы сделаете всё отлично. И это является лучшим вариантом.
Так что сделайте всё, что вы можете с теми деньгами, что уже у вас есть. Усиленно думайте и расставьте приоритеты.
Имея ограниченные ресурсы, вы будете вынуждены считаться с ограничениями на ранней стадии и сильнее это ощущать. И это хорошо. Ограничения заставляют делать по-новому. Ограничения также вынуждают развивать идею как можно скорее — ещё одна хорошая вещь. Месяц или два обдумывайте идею и поймите, стоит ли она того. Если «да», и вы будете быстры и жизнестойки, вам не понадобятся инвесторы. Если ваша идея еще «не созрела», вам придётся вернуться к чертежам. По крайней мере, теперь вы узнаете какие будут препятствия, не потратив на это много времени. И сможете легко отступить.
Лёгкий способ начать вовремя и уложиться в бюджет: фиксируйте время и бюджет.
Если вы не укладываетесь в отведённые время и бюджет, не увеличивайте их. Вместо этого сократите возможности. Время добавить их чуть позже будет всегда. В начале лучше будет меньше запланированных возможностей, чем посредственным, громоздким и с кучей дыр безопасности.
Фиксация ожиданий — ключевой момент. Если вы фиксируете время, бюджет и возможности, вы не поставите их выше качества.
Рекомендуем сократить возможности. Лучше сделать половину продукта, но качественно, чем недоделку.
Важно быть не слишком одержимым борьбой с врагом. Тщательно анализируйте другие продукты и вы будете ставить ограничения своим идеям. Наблюдайте, и только потом двигайтесь к собственному видению и к собственным идеям.
Один из быстрейших способов придумать проблем на свою голову — смотреть на то, что делают ваши конкуренты.
Чем меньше в вашем приложении рутины — тем лучше. Если рутинной работы немного и она управляема — вы можете наслаждаться.
Перемены — ваш лучший друг. Чем выше их цена, тем меньше их вероятность. И если ваши конкуренты могут меняться быстрее вас, вы в крайне невыгодном положении. Если цена перемен становится слишком высока — вам конец.
Если вы не можете создать версию 1.0 с тремя людьми, то или вам нужны другие люди, или необходимо понизить начальные требования. Запомните, простая и легкая первая версия — это нормально. Вы быстро увидите, если ваша идея хороша — у вас будет чистая и простая основа для дальнейшей работы.
Перед тем как вы начнете проектировать или кодировать что-либо, вам нужно знать цель вашего продукта — видение.
Остерегайтесь подхода в развитии сетевого приложения, в котором все готово, но вот что-то не работает и это что-то очень важное.
Начните быстро создавать приложение и позвольте ему приобретать инерцию. Затем вы можете начать добавлять функции и возможности твердой основе, которую вы построили.
Если вы сможете сфокусировать работу и взгляд, на том, что имеет значение, вы достигнете производительности, которую никогда не воображали.
Сделайте добавление новых функций, трудно осуществимой задачей
Секрет создания законченной половины продукта вместо недоделанной половины — снизить количество функций.
Перед тем как добавить функцию, задумайтесь, сколько это с виду простое решение может принести головной боли.
Для каждой новой функции от вас потребуется:
- Сказать «нет».
- Вынудить функцию доказать свое значение.
- Если снова «нет», уже конец. Если, «да», продолжайте…
- Сделайте эскиз экрана\/ интерфейса.
- Спроектируйте экран\/ интерфейс.
- Закодируйте. 7-15. Испытание, испытание, испытание, испытание…
- Проверка текста помощи, возможно, его нужно изменить.
- Обновите ознакомительный тур продукта (если необходимо).
- Обновите маркетинговую копию (если необходимо).
- Обновите условия обслуживания (если необходимо).
- Проверка, на то, какие предыдущие обещания были затронуты.
- Проверка, на то, как это воздействует на общую структуру.
- Запустите.
- Затаите дыхание.
Запуск программного обеспечения — лучший способ добиться инерции, поучаствовать в ралли командой, и отсеять идеи, которые не работают. Это должно быть приоритетом номер один в первый же день работы. Хорошо сделать меньше, опустить детали, и сократить процесс так, чтобы выпустить программное обеспечение быстрее.
Настройки — зло, потому что они раздувают программное обеспечение и требуют больше кода.
Не нужно никаких бета-версий. Версия должна быть одной. Бета-версия допускает поверхностное использование, а реальная версия получает полное и реальное использование.
Сокращайте время разработки, разбивая месяцы на недели.
Поэтому можно установить правило: сделать половину рабочего дня единым временем для работы. В это время не отвлекаться на телефонные звонки, чтение почты, ненужное общение с коллегами и т.д.
Если все-таки вы не можете избежать встречи (что должно быть очень редким событием), воспользуйтесь простыми правилами:
- Встреча должна быть не более 30 минут. Установите таймер, после 30 минут прерывайте встречу.
- Пригласите как можно меньше участников.
- Никогда не участвуйте во встрече без ясной повестки дня.
Закон Брукса Привлечение людей к просроченному проекту задержит его ещё больше. — Fred Brooks
Всегда, когда это возможно, назначайте потенциальному новому члену команды тестовое задание.
Проекты с открытым кодом — находка для того, кто ищет техперсонал.
Вашей команде нужны те, кто обожает программирование и умеет довести начатое до конца.
Берите того, у кого есть энтузиазм. Того, кому вы доверите остаться самому и доделать работу.
Если вы задумываетесь над тем, какого рода специалиста можно еще пригласить на не занятое место, — наймите того, кто лучше других умеет вести документацию.
Создавайте дизайн интерфейса до того как начнете программировать
Делайте дизайн для обычного, пустого, и ошибочного состояния страницы.
Каждая буква имеет значение
Дизайн интерфейсов — это копирайтинг.
Лучшие интерфейсы написаны.
Вы должны говорить тем же языком, что и ваша аудитория.
Хорошая документация — это хороший дизайн.
Не создавайте отдельного интерфейса для настроек, просто встройте его функции в основной.
каждый раз, когда вы увеличиваете объем кода, сложность программы возрастает экспоненциально.
- Меньшим объемом программы легче управлять.
- Меньший объем программы — меньше кода, а это значит
- Меньше скучной работы по сопровождению (и более счастливый персонал).
- Меньший объем программы снижает стоимость изменений — так что вы можете быстрее адаптироваться к обстоятельствам. Вы можете менять свои решения без того, чтобы менять мегабайты кода.
- Меньше кода — меньше ошибок.
- Меньше кода — меньше техподдержки.
Нет кода более гибкого, чем отсутствие кода!
Не теряйте время на то, чтобы заполнить текстом длинные тома; никто не будет их читать.
Вставьте настоящий текст вместо lorem ipsum
Как можно скорее используйте настоящие и подходящие слова.
Делайте, как ваши клиенты — и вы станете их лучше понимать. Когда вы лучше их понимаете и чувствуете то, что чувствуют они, вы построите лучший интерфейс.
Избегайте долгосрочных контрактов, платы за подключение и т.д.
Не придумывайте всякие «фокусы» чтобы получить побольше денег. Зарабатывайте их.
Лучшее средство для продвижения продукта — сам продукт. Если вы создали приложение, которое действительно нужно клиентам, об этом непременно узнают.
Обзор: Расскажите о приложении и его достоинствах.
Экскурсия: Покажите пользователям различные свойства.
Скриншоты и видеоролики: Покажите, как выглядит программа и как ею пользоваться.
Манифест: Объясните философию программы и идеи, лежащие в ее основе.
Примеры: Приведите примеры из жизни, иллюстрирующие возможности программы.
Отзывы: Отзывы пользователей, обзоры, пресса и т.д.
Форум: Предложите место, где члены сообщества пользователей смогут помогать друг другу.
Цены и регистрация: Заполучите пользователей как можно быстрее.
Блог: Блоги освежают ваш сайт: помещайте туда новости, советы и т.д.
Изучайте свои логи, чтобы следить за дискуссиями Вам полезно знать, кто о вас говорит. Проверьте свои логи и узнайте, что откуда берется.
Дайте вашему приложению легко запоминающееся название
Также не слишком увлекайтесь фокус-группами и комитетами в процессе поиска имени. Выберите имя короткое, яркое, запоминающееся — и вперед.
Заметим еще по поводу новостей, плохих и хороших. Когда появляются плохие новости, выпустите их сразу. Хорошие новости, с другой стороны, выпускайте медленно. Если вы можете продлить прекрасные чувства, сделайте это.
Разделите ваши ошибки по приоритетам (и даже проигнорируйте некоторые из них)