пятница, 27 июня 2008 г.

Мотивация разработчиков

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

Приведу наш пример, мы занимаемся разработкой программного обеспечения в одной крупной американской компании. Изначально процесс работы был построен так что разработчики находились очень далеко от пользователей , т.е. были люди которые проверяли наш продукт (тестеры) , люди которые писали нам что делать (product managment), команда осуществляющая продажи и команда обеспечивающая поддержку. При этом как не трудно заметить разработчики были окружены огромным бюрократическим аппаратом закрывающим их от любых недовольств с любой стороны. Если разработчикам говорили что они что то не так сделали то ответ чаще всего был "нам так поставили задачу" , если находили баги то виноваты были тестеры , если продукт не зарабатывал денег то продавцы или те кто его придумал. Разработчики же всегда были "белыми и пушистыми".

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

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

воскресенье, 22 июня 2008 г.

Вставка фрагментов исходного кода в блог

Частенько возникает необходимость вставить в блог тот или иной исходник или фрагмент конфигурационного фаила , причем функционал станадртных тегов code и pre явно недостаточне ибо теряет всякую возможность подсветки.
После некоторых поисков в инете и подсказок коллег нашел вот такой вот сервис Syntax Colorizer который позволяет делать вот такие вот вставочки:

public void Write(params object[] objs)
{
if (objs == null) return;
string result;
if (objs.Length > 1 &&
objs[0] is string &&
(objs[0] as string).Contains("{0}"))
{
object[] args = cutFirstArg(objs);
result=string.Format((objs[0] as string), args);
}
else
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < objs.Length; i++)
{
object obj = objs[i];
if (obj != null)
{
sb.Append(obj.ToString().Trim()).Append(' ');
}
}
result = sb.ToString();
}
lock (logSyncRoot)
{
Out(result.Trim());
}
}

суббота, 21 июня 2008 г.

Google Docs

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

четверг, 19 июня 2008 г.

Opera 9.5

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