В Практическом Руководстве по Дефектному Предотвращению авторы упоминают, что один творческий способ повысить производительность в разработке программного обеспечения состоит в том, чтобы реализовать "игры производительности", где сотрудники конкурируют друг против друга в некотором роде подобного получению репутации и значков на Переполнении стека.
Одним примером, который они дают, является Microsoft "Vista Внутренняя Бета 1 Игра", где членов команды попросили выполнить задачи, которые заставят их буква записывать "b e t 1". Они получили эти буквы:
У них был веб-сайт, который отследил список лидеров в течение каждой недели. Авторы описывают результат:
Бета 2 игра подробно остановилась на понятии и присудила очки за тестовое действие. Было несколько уровней призов и случайных рисунков, и игроки могли заработать браслеты на основе участия. В некоторых случаях браслет стал символом на встречах и в прихожих, которые поощрили конкуренцию.
Эти игры достигли высшей точки в игре выпуска, которая была распределена общекорпоративная. Призы были основаны на случайных рисунках для тех, кто завершил установку и определенные тестовые операции. Еще раз результаты были феноменальны с большинством компании, участвующей в последние дни тестирования Windows Vista.
Кто-либо реализовал или участвовал в чем-то подобном в Вашей компании? Как это пошло бы? Что подходило, что не удалось?
P.S. Никакие придирчивые комментарии о Vista, поскольку это - все еще главное ядро Windows 7 и я думаю, что игровая идея имеет некоторую заслугу.
ОБНОВЛЕНИЕ: Добавленная щедрость для получения большего количества идей. Я приму самый интересный после того, как неделя щедрости закончится. Я ищу практические идеи, которые могли быть сделаны с группой разработчиков 20 + люди.
ОБНОВЛЕНИЕ 2: похоже, что Facebook имеет метаигру "кармы нажатия" для определения, чьи фиксации обычно хороши.
Я слышал, что некоторые люди играют в Интеграционную игру непрерывного действия. Есть даже плагин Гудзона для ведения счета .
Другой вариант - использовать прокси, которые наследуют объекты, которые вы хотите получить (следуя примеру некоторых объектно-реляционных сопоставителей, таких как NHibernate).
Это обеспечивает некоторую степень неосведомленности при сохранении кода доступа к данным отдельно от модели домена:
public class MyLazyDTOClass: MyDTOClass {
// Injected into the constructor by the MyDtoClass repository
private INoteRepository noteRepository;
public ICollection<Note> Notes {
get {
if(base.Notes == null) {
base.Notes = noteRepository.GetNotes(projectId);
}
return base.Notes;
}
}
}
MyDTOClassRepository
объявляет базовый объект в качестве возвращаемого типа, но возвращает ленивый объект вместо него:
public MyDTOClassRepository {
public MyDTOClass GetMyDTOClass(int id) {
// ... Execute data access code to obtain state ...
return new MyLazyDTOClass(this, state);
}
}
пользователям MyDTOClass
не нужно знать, что они имеют дело с прокси, и им не нужно взаимодействовать с репозитариями.
Нет, Java не имеет этой функции. Во-первых, я думаю, что это сделает перегрузку практически невозможной (некоторые утверждают, что перегрузка в любом случае плохая идея, но это не правильный форум для этих дебатов). Кроме того, я понимаю, что дизайнеров Java просто чувствуют, что гибкость что-то подобное (я знаю это из Perl, где он называется AUTOLOAD
) перевешивается гарантией того, что любой код, который компилирует только вызов методов, которые на самом деле существуют (запрет двоичной несовместимости).
Я сам не участвовал ни в каких таких играх, однако я помню, как где-то читал интересную статью, предупреждавшую о риске заставить сотрудников чувствовать себя покровителями таких игр.
Я постараюсь найти артель.
Процесс, о котором вы говорите, называется Serious Gaming (см. также SeriousGames.org), и использовался не только Microsoft, но и рядом компаний и организаций, чтобы подтолкнуть людей к выполнению определенных желаемых действий. Этот подход хорошо работает в большинстве случаев при соблюдении следующих правил:
Я участвовал во многих серьезных играх и действительно получил удовольствие от них. Небольшие призы - это ключ к успеху, поэтому люди играют для того, чтобы похвастаться своими правами и не получить совершенно новый iPhone.
Я еще не участвовал в одном, но, как это происходит одна из компаний, я хочу подать заявку на эту действительно интересную ссылку в своем описании: http: // CODINGDOJO.ORG/ - Говорят, что они регулярно делают эти вещи, и кажется, что именно то, что вы ищете (хотя и о возможном масштабе).