четверг, 27 августа 2009 г.

Мотивация и состояние потока

Иногда разработчик работает с удвоенной энергией: всё спорится, решения принимаются мгновенно, идеи переполняют голову. В общем-то, и никакой особо дополнительной мотивации не нужно. Вам такое знакомо? Когда код, который в другой раз писался бы с неделю, вдруг полностью куется за один день. В психологии такое состояние называется “состоянием потока” или попросту “поток”.

А иногда сидишь битый день за компом, бесцельно двигаешь мышкой, тестируешь “тетрисы” и “шарики”, без конца серфишься по всем мало-мальски интересным сайтам в сети. Причем абсолютно бесцельно серфишься. О таком же синдроме рассказывает и Джоэл Сполски (Joel Spolsky), так что, похоже, не боги горшки обжигают.

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

Вот несколько способов, которые применялись с переменным успехом:

А поговорить?
С пользователями все равно рано или поздно общаться надо. Так вот, почему бы не потратить это “бесцельно прожитое” время на трёп с пользователями!?! С одной стороны, вроде и работка - не мешки ворочать, а с другой стороны позволяет побыстрее включить мозги в рабочее состояние. Попиз…Потрепаться завсегда лучше, чем работать. Но будет ли от конкретного трёпа толк, это еще бабушка надвое сказала.
Приятность: 3,5-4 баллов; полезность: 3-3,5 баллов (по 5 балльной шкале)

Рабочая тетрадка
Покопаться в старых рабочих тетрадках, планах фич, списках идей. Опять же занятие как бы всё созерцательное, и вроде как ни к чему не обязывающее. Но все же заставляет настроиться на нужный лад. В общем, мозги “включает”, но иногда изучение старых невыполненных планов нагоняет тоску.
Приятность: 3-3,5 баллов; полезность 4-4,5 баллов

Веб-дизайн 
На сайте обычно всегда хватает какой-то работы. Что-то переформулировать, выкинуть старые материалы в архив, поразвлекаться с дизайном. Действенный способ, но абсолютно не настраивает на разработку. Скорее это сродни “рисованию пейзажей” – занятие больше для души, чем для цели. Что тут сказать!?! Дизайн он же сравни искусству, прекрасному. Но столь ли своевременно им заниматься – “чем бы дитя не тешилось, лишь бы не работать” :).
Приятность: 4,5-5 баллов; полезность 3 балла

Чтение литературы
Один из самых приятных способов. Особенно если работаешь дома, и диван не за горами. Книжку в руки и “в горизонт“. И вроде при деле, не подкопаешься, и совесть не грызет, на тему“сколько можно гонять в шарики”!?! :). Конечно же, всему хорошему в себе мы обязаны книгам ©. Но нежелание разрабатывать давно назревший код, обычно приводит к чтению хоть и специализированного, но совершенно не сию секунду нужного чтива.
Приятность: 5 баллов; полезность 2 балла :)

Пожалуй и всё. Хм… Хорошо, но мало. А неплохо бы собрать целую копилку способов выхода из загула перехода в рабочее состояние.
Мысли есть?

Ссылка по теме: мотивация (обсуждение на RSDN.ru)

PS: “Чем бы дитя не тешилось, лишь бы не руками”. И какую только муть я не согласный писать в блог, лишь бы не доделывать Маплю. Епрст млин, ведь основное все еще сделал аж два месяца назад – а довести до релиза… и э-э-эх, а ну его, скукотища! Уже подумываю над написанием статьи “100 уважительных причин для переноса релиза” :)

среда, 19 августа 2009 г.

Веб разработка

Может стоит перейти на веб разработку?

web-team
Навеяно постами с RSDN, оригинал картинки был взят отсюда.

P.S. К вопросу о разнице веб- и десктоп-разработки. На днях в сети обнаружил весьма любопытные рассуждения Игоря Ашманова, почему у Гугла вряд ли скоро получится с что-то приемлемое ОС Chrome, и почему они нескоро попрут Microsoft с рынка операционных систем.

четверг, 6 августа 2009 г.

Управление требованиями к ПО

Дочитал до конца use-case аналитику Коберна, про которую рассказывал в прошлом посте. Удивительная книга! Читается, если вникать, безусловно очень медленно – язык тяжеловат. Но вникать надо – только когда разберешься, да попробуешь, да покрутишь описанные приемы на конкретных реальных проектах, начинаешь ощущать  фактическую пользу от прочитанного!

Лично мне приёмы Коберна во многом более чем близки! Я согласен, что хорошее текстовое описание доминирует над всякими там UML-диаграммами. По крайней мере в начальной стадии – в любом случае сначала придется разобраться, а что мы вообще пытаемся сделать, а как собственно оно примерно будет работать, а уж только потом “рисовать”. Все эти UML-рисования суть есть уже проектирование, причем проектирование скорее техническое, когда уже ясно “что, куда и зачем”. Но на начальном этапе требования кружочками да эллипсами не выразить – от текста никуда не деться.

Раньше подобные текстовые списки “требований” вел в своей же Aml Pages. Aml Pages обладает для такой работы ощутимыми преимуществами:

  • Текст, текст и только текст. Но не “ничего кроме” текста! Надо? Можно и файл прицепить, и гиперссылки поставить, и отформатировать, и рисунки и все такое в том же духе. Но это дополнительный функционал.
  • Мгновенное и наглядное изменение “статуса”, “важности” записи через автоматическую подсветку, стили форматирования, категории, иконки. Т.е. все-же нужную атрибутику можно менять “на лету” – причем изменения будут наглядны – что может быть нагляднее цвета.
  • Отсутствие излишнего формализма. Не нужно вводить даты, проценты завершенности и тому подобную хрень. Всё это, возможно, и понадобиться, но позже. Сначала только описание самих требований, пожеланий пользователей, багов и.т.д.

Но все же в Aml Pages это были скорее простые wish list – списки пожеланий – безо всякой лишней иерархичности, зависимостей. А вот когда уже понадобилось вести действительно именно списки “требований”, что завершено, что нет, какое требование часть другого, то от иерархий никуда не деться. Требования по сути своей иерархичны.

Попробовал поискать софт для управления требованиями… Ан фиг! Или уж монструозные приложения от гигантов вроде IBM или Rational, которые ну очень уж и сложны в использовании, или… или просто напросто ничего нет.

Пробую использовать ToDoList. Единственное, что хоть каким-то образом выполняет обязательные требования: иерархичность, простенький учёт (завершено\нет), и немонструозность.
Но юзабилити ToDoList хромает более чем! Так себе, на “троечку”. Очень много лишнего – рабочая область очень сильно перегружена элементами управления.
Близкие по смыслу элементы разбросаны по всему экрану, вроде приоритет задачи показывается в гриде, а изменить его можно в комбобоксе аж на другом конце экрана. Да чего уж там - невозможность подвигать столбцы в гриде. В общем, “хорошо, но мало” ©.

Вот и чего теперь делать? Как и в чем управляться с требованиями? Похоже, опять двадцать пять! “Что же? Мне всю жизнь по этой пустыне мотаться!?!” (© Сухов). 
Как же это?  “Снова здорова” - писать что-то с нуля самому? Дык не хочется! Народ, а вы чем пользуетесь?