Думайте при разработке

Думайте при разработкеНедавно наткнулся на ошибку в Android приложении Яндекс.Метро. Если бы был чемпионкой мира по синхронному плаванию, то обязательно спросил бы: «Кто создавал программу „для галочки“? Кто работал „на отшибись“? Кто слабое звено?». Недоумение вызывала не сама ошибка, а то, что она попала в приложение и всё ещё не исправлена.

В данной статье опишу простые советы, которые помогут улучшить качество программ. Проиллюстировать их смогу с помощью ошибок приложения Яндекс.Метро. Надеюсь, что это окажется полезным как разработчикам и тестировщикам, так и руководителям проектов.

Начать хотелось бы с главы «Изучение знаменитых (и не очень знаменитых) ошибок» из книги «Наука отладки». Если ещё не читали, то рекомендую прочитать. В этой главе описаны «глупые» ошибки и стечения обстоятельств, которые стоили жизней и миллионы долларов. Все эти ошибки объединяло то, что выявляющий их тестовый сценарий было чрезвычайно сложно воспроизвести, в результате многие проверки были просто пропущены.

В статье же мы будем рассматривать распространённые приложения, которые протестировать может любой участник команды. Давайте проведём небольшой эксперимент. Если у вас нет Android устройства, то попросите минут на десять у коллег или друзей. Скачайте приложение Яндекс.Метро и попробуйте его протестировать. Интересует актуальная на текущий момент версия 1.63 от 02.11.2012 сборка 159 (на Google Play стоит дата 21.01.2013). Для корректности проверки предлагаю снять галочку «Автообновление» в настройках Google Play.

Проверять будем основную функцию: нахождение маршрута между двумя станциями метрополитена Москвы. Посмотрите на карту метро. Подумайте, что следовало бы протестировать в приложении, что могло бы быть неправильно реализовано. Явной ошибкой будет сообщение «Маршруты не найдены», что некорректно, поскольку нет изолированных станций.

Эта же ошибка может проявить себя не так явно:

небольшая подсказка

Программа отображает маршруты между двумя станциям, но наиболее очевидный (и короткий) не находит.

(далее…)

Пол Грэм: Как найти идею для стартапа (часть вторая)

Пол Грэм: Как найти идею для стартапа (часть вторая)
Данный пост является продолжением первой части перевода одной большой статьи Пола Грэма о том, как найти свою стартап-идею. Это не пошаговая инструкция, а скорее глубокое философское эссе Грема, основанное на его богатом опыте в качестве основателя YCombinator — самом успешном стартап-акселераторе. Продолжаем:

Сознание

Но как определить, есть ли путь «наружу» у идеи? Как понять, является ли это зачатком большой компании или всего лишь продуктом, обреченным на узкую нишу? Часто это не возможно сделать. Фаундеры AirBnb не осознавали в начале, на рынок какого масштаба они покусились. Изначально у них была более узкая идея. Они собирались позволить владельцам сдавать свое пространство во время выставок, конференций. Они не предвидели экспансию этой идеи; она сама себя навязывала постепенно. Все что они знали в начале, что на крючке какая-то рыба. Возможно, это столько же, сколько знали изначально Билл Гейтс и Марк Цукерберг.
(далее…)

Никогда не отвлекай программиста!

Во многих компаниях программистам запрещают работать в наушниках или отвлекают их по мелким вопросам. Вероятно, причина кроется в плохой информированности менеджеров и других сотрудников, насколько вредно так делать.

Крис Парнин (Chris Parnin) из технологического института Джорджии решил восполнить этот недостаток и опубликовал чрезвычайно насыщенную статью со ссылками на различные исследования по этой теме.

Для начала, несколько фактов, которые относятся ко всем работникам интеллектуального труда. Задача, прерванная по ходу выполнения, занимает в два раза больше времени и содержит вдвое больше ошибок, чем та же задача, которая выполнялась без прерывания (Czerwinski:04). Офисные сотрудники вынуждены отвлекаться при выполнении 57% задач (Mark:05). Опросы говорят о том, что сотруднику требуется в среднем 15 минут, чтобы вернуться в нормальный ритм после того, как его отвлекли (vanSolingen:98).
(далее…)

К чему приводит «излишняя» доброта проджект менеджера

В большинстве софтверных компаний проджект менеджеры выполняют сразу несколько основных функций. Они общаются с клиентами, выясняют требования, контролируют следование процессам, ну и конечно работают с подчиненными. Помимо прочего, работа руководителя с подчиненными включает в себя такую немаловажную вещь, как выдача обратной связи.

В чем ее суть?

Проджект менеджер (ПМ) всегда видит, кто работает лучше, а кто хуже. Кто радеет за проект, а кто относится к работе формально. Кто постоянно выбивается из сроков, а кто успевает и еще тянет на себе отстающих. Кто постоянно предлагает какие-то улучшения, а кто ведет себя пассивно. Кто опаздывает на работу и на митинги, а кто проявляет постоянную пунктуальность. Кто пишет кривой код, а кто старается сделать свою работу качественной и считает для себя унизительным показывать коллегам некачественный код. Кто проверяет свою работу, стараясь минимизировать количество багов, а кто торопится, лишь бы отстреляться, а там хоть трава не расти.
«Добрый» ПМ редко или никогда не подходит к подчиненным и не указывает им на недостатки, не ругает за плохую работу. При этом, если что-то сделано хорошо, то большинство ПМов всегда рады похлопать сотрудника по плечу и сказать: «Ты молодец!»

К чему же приводит такая «доброта»? (далее…)

Стройте бизнес, а не «стратегию выхода»

Молодые стартаперы часто мечтают о миллионе долларов кешем. Их часто даже не особо интересует то, что они делают (не важна конкретная идея), а интересует “срубить бабла по-быстрому и отвалить” (hit and run). Быстро сделать прототип, получить финансирование, что-то доделать на угасающем интересе, продать свою долю. Если быстро не получается (а дело-то сердцу не мило) стартап загибается, и молодой стартапер, может быть и не с первого раза, но превращается в старого.

Вот и мы в Alconost часто задумываемся: “Может, ну его эти мутные стартапы и журавлей в небе? Может быть, реальный бизнес приносит больше счастья?”

Как раз об этом и рассуждает в своей статье Melanie Io.

image

(далее…)

Пол Грэм: Как найти идею для стартапа (часть первая)

Пол Грэм: Как найти идею для стартапа (часть первая)
Недавно вышла статья Пола Грэма о поиске идеи для стартапа. Грем — сам по себе культовая личность Силиконовой долины и уже только поэтому достоин внимания. Но на мой взгляд, это статья одна из лучший в своем роде. Да, о Customer Development и Lean Startup сейчас не пишет разве что ленивый, но она отличается глубокой внутренней философией Грема и обобщает его богатый опыт в качестве основателя YCombinator, обещающегося с тысячами стартаперов в год.
Статья очень длинная, поэтому я взял на себя смелость разбить ее на 5 частей, дабы никого не утомить. Поехали:

Лучший способ найти идею для стартапа — не думать о ней. Найдите проблему, и лучше — если она есть у вас самого.
(далее…)

Бен Хоровиц: «Нам нравится инвестировать в тех, кто бросил колледж и имеет безумные идеи для крошечных рынков без монетизации»

image

В ходе DLD Conference в Мюнхене венчурный капиталист Бен Хоровиц рассказал, почему он и его фирма Andreessen Horowitz инвестирует в определённую компанию и её основателей, пишет TechCrunch. В прошлом году Andreessen Horowitz нашла 2355 компаний, которые потенциально были достойны инвестирования. Однако в итоге фирма закрыла только 24 сделки (не считая начальных инвестиций). Дошедшие до финала компании, как утверждает Хоровиц, были основаны «теми, кто бросил колледж и имеет безумные идеи для крошечных рынков без монетизации».

Говоря о сумасшедших идеях, Хоровиц отметил, что в 1975 году программное обеспечение не было тем, во что кто-то стал бы инвестировать. Рынок был слишком мал, и большинство людей не думали, что что-то вроде Altair Basic является жизнеспособным продуктом. Однако Microsoft считал иначе. В 1998 году веб-поиск считался плохой идеей для инвестиций, поскольку большинство уже существовавших поисковых компаний не умели на этом зарабатывать. Однако Google придумал как.
(далее…)

Об инвесторах

От переводчика: Основатель imgix, бывший разработчик Youtube Chris Zacharias рассуждает о прохождении курсов YCombinator и опыте получения инвестиций. Недавно я также публиковал перевод второй статьи из блога автора — Кое-что о весе страницы.

Когда летом 2011 года я проходил курсы YCombinator, мне казалось, что я единственный человек в группе, который ничего не знает об инвестировании. Я отчётливо помню, как Джессика Ливингстон сообщила о $150 тыс., которые мы можем получить от SV Angel и Start Fund. Когда она рассказала об условиях инвестирования, аудитория наполнилась овациями. Я же сидел и нервно гуглил, пытаясь понять, что только что было сказано и должен ли я вообще здесь находиться.

Находясь в подобной отобранной группе учредителей компаний, пребывающих на различных стадиях развития своего бизнеса, вы очень быстро получаете нужную вам информацию. Это самое ценное в трёхмесячных тренингах YCombinator. Одна из вещей, которые вы узнаёте на раннем этапе, – это то, что инвесторы зачастую обладают стадным мышлением. Позже путём наблюдения я обнаружил, что учредителям компаний это тоже свойственно.
(далее…)

Несколько слов о продуктивности

Вопрос продуктивности и ответственности всегда стоит на первом месте среди требований к новым сотрудникам.

Если пойдете в любой книжный магазин, то найдете много литературы на тему тайм-менеджмента. В этих книгах есть описание практик и упражнений, которые помогут (или нет, как кому) научиться управлять своим временем и приоритетами. Но если вам лень пробовать разные методики, но вы действительно хотите работать меньше, а успевать больше, то потратьте несколько минут на прочтение этой статьи, где я поделюсь несколькими практическими советами.
(далее…)

Google Wave в новом обличии

Когда компания Google объявила о закрытии проекта Wave, я понял, что совсем отказаться от использования этого сервиса окажется значительно дороже, чем доработать его наследника — Apache WIAB, переданного в вотчину open source. К сожалению, он не слишком стремится быть похожим на оригинал от Google, а для нашей компании необходим функционал, максимально близкий к оригинальному. Поэтому и другие аналоги, в частности, Rizzoma, нас не устроили.

Ниже перечислен ряд улучшений, которые мы произвели в Apache WIAB для того чтобы он стал как можно больше похож на волны от Google:

  • возможность архивирования волн;
  • поддержка тэгов;
  • улучшенный поиск по содержимому и тэгам;
  • возможность одновременного редактирования волны в реальном времени несколькими пользователями;
  • кнопки для быстрого поиска — аналог Searches;
  • загрузка файлов/картинок;
  • импорт публичных волн Google Wave;
  • увеличение скорости работы и повышение надежности.

Кроме того, были добавлены и новые возможности, которых не было в оригинальном Google Wave:

  • быстрый поиск контактов при добавлении в волну;
  • возможность резервного копирования и переноса волн в другую инстанцию.

Попробовать все это можно на Wiab.Pro.

(далее…)