1/08/2007

Демонстрация возможностей AJAX

 
Кстати, сделано индусами. А где в рунете есть что-то похожее?!
Сомневаюсь, что есть такое. Зато полно всякого флуда о крутизне :)
А может все-таки есть, а?

Коридорное тестирование

Коридорное тестирование - это процедура, при которой вы выбегаете в коридор, хватаете первого попавшегося человека и заставляете его попользоваться программой, которую вы только что написали. Если вы проделаете эту процедуру на пяти разных людях, вы получите 95% иноформации о проблемах с удобством использования в вашей программе.

Хороший дизайн пользовательского интерфейса - это не так сложно, как вы думаете, и очень важно, если вы хотите, чтобы пользователи покупали ваш продукт и были им довольны.

Самый важный момент, касающийся пользовательского интерфейса, - это то, что вы, показывая свою программу горстке людей (фактически 5-6 человек уже достаточно), очень быстро узнаете, какие проблемы у них возникали. Прочитайте статью Джекоба Нильсена (Jakob Nielsen), в которой он объясняет, почему так происходит. Даже если у вас не хватает опыта в создании пользовательского интерфейса, но при этом вы проводите коридорное тестирование, которое ничего не стоит, то с каждым разом интерфейс будет становится всё лучше и лучше. ...

Как подкупить программиста

Компиляция - это одна из последних задач, которую всё ещё нельзя мгновенно выполнить на домашнем компьютере. Если процесс компиляции занимает у вас больше нескольких секунд, купите себе самый последний продвинутый компьютер. Это сэкономит ваше время. Если на компиляцию уходит 15 секунд, программисты умрут со скуки или переключатся на чтение блога, на что уйдут часы рабочего времени.

Программиста легко подкупить, предоставив ему самое новейшее и продвинутое оборудование. Этот способ мотивации обойдётся вам гораздо дешевле, чем выплата конкурентноспособной зарплаты.

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

Не мешайте программистам!

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

Проблема в том, что попасть "в поток" не так-то просто. Если вы попытаетесь это дело измерить, то окажется, что требуется в среднем 15 минут, чтобы начать работать с максимальной производительностью. Иногда, когда вы устали или уже выполнили большую часть творческой работы за день, вы уже не сможете войти в неё и остаток дня уже проведете, валяя дурака, исследуя интернет и играя в Тетрис.

Другая проблема заключается в том, что очень легко выпасть из "потока". Шум, телефонные звонки, обеды и особенно реагирование на сослуживцев - всё это выбивает вас из колеи. К примеру, ваш коллега задал вам вопрос. Вы отвлеклись всего на минуту, но этого уже достаточно, чтобы выбить вас из режима работы, и вам уже потребуется по меньшей мере полчаса, чтобы вновь втянуться. Ваша общая производительность
может от этого сильно пострадать. Если вы работаете в шумном "загоне", где ребята из отдела маркетинга висят на телефонах, и тут же рядом работают программисты, ваша производительность резко снижается, так как люди умственного труда то и дело отвлекаются и не могут сконцентрироваться.

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

Вот вам простая арифметика. Факты свидетельствуют, что если мы отвлекаем программиста даже на 1 минуту, мы отнимаем у него 15 минут продуктивной работы. К примеру, у нас есть два программиста: Джеф и Мат, сидящие за соседними столами на обычной Дилбертской ферме по откорму телят. Мат забыл название Unicode версии функции strcpy. Он может найти его самостоятельно, для чего надо 30 секунд, или спросить Джефа, на что уйдёт 15 секунд. Так как он сидит рядом с Джефом, почему бы не спросить Джефа. Джеф отрывается от работы и теряет 15 минут продуктивной работы (чтобы сэкономить 15 секунд Мата).

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

Причина неудач Netscape

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

Web браузер Netscape 5.0 вышел почти с двухгодичным опозданием. От части, из-за их самоубийственной ошибки: они выбросили все свои исходные тексты и начали сначала. Та же ошибка что и обрёкшая Ashton-Tate, Lotus, и Apple MacOS стать хламом истории софта. Netscape увидели как распространение их браузера шагнуло от около 80% до около 20%, и всё это время они ни чем не могли ответить конкурентам, потому что их ключевой продукт был разобран на 1000 кусков, так что нельзя было выявить ни каких контуров (was disassembled in 1000 pieces on the floor and was in no shape to drive anywhere). Это единственное плохое решение, более чем что-либо другое, было той ядерной бомбой которой Netscape сами себя сдули как ветром. (Jamie Zawinski - всемирно известная истеричка располагает подробностями). ...

Microsoft Word - это был "смертельный бой"

Самая первая версия Microsoft Word для Windows была проектом типа "смертельный бой". Работа над ней повисла навечно. Вся команда вкалывала, не покладая рук, и при этом выпуск откладывался снова, и снова, и снова, и стресс был просто невыносимым. Когда эту чёртову штуку всё-таки выпустили с задержкой в несколько лет, Microsoft отправил всю команду в отпуск в Мексику и провёл серьёзный анализ.

Вскрытие показало, что менеджеры проектов так упорно придерживались сроков, что разработчикам приходилось гнать во весь опор и писать ужасный код, потому что исправление ошибок не входило в общий план действий. Не было даже попытки вести счёт ошибкам. Как раз наоборот. Говорят, что один программист, который должен был написать код для вычисления высоты строки, просто написал "return 12;" и стал ждать сообщения об ошибке - написаная им функция не всегда правильно работала. План работ был больше похож на список функций, проверка которых переводила их в ранг ошибок. Такой подход получил название "метода бесконечных дефектов".

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