Pull to refresh
  • by relevance
  • by date
  • by rating

Microsoft предлагает садиться по два человека за ПК

GTD
В индийском R&D-подразделении Microsoft изобрели новую технологию, которая позволяет разделить монитор на две независимые части, так что за одним ПК могут спокойно работать два человека: один — на правой половине монитора, второй — на левой.

Разумеется, на две части делится не только монитор, но и все остальные ресурсы компьютера, в том числе загружаются две копии операционной системы Windows с двумя курсорами, поддержкой двух клавиатур и двумя наборами приложений. Каждый пользователь может «залезать» курсором на чужую половину и помогать напарнику в работе.


Читать дальше →
Total votes 23: ↑18 and ↓5+13
Views541
Comments 83

Короткие релизы vs Длинные релизы

Project management
Практика экстремального программирования включает в себя «Small Releases» — частый выпуск «коротких» релизов программ с интервалами в несколько недель.
Подразумевается, что нужно это для того, чтобы получать «обратную связь» от пользователей и вовремя вносить изменения. Сами релизы при этом, как правило, включают 1-2 «фичи» и исправление некоторых (а не всех) ошибок.

Мне интересно, насколько эта практика имеет смысл и пользу при разработке коммерческих программных продуктов. Нужны ли пользователям на самом деле частые релизы? Какой им интерес выступать, по сути, постоянными бета-тестерами?
Мне представляется, что короткие релизы не позволяют планировать заранее большие изменения. Насколько такая практика способствует (или не способствует) сохранению идейной и архитектурной целостности продукта?
Total votes 11: ↑9 and ↓2+7
Views1.1K
Comments 27

XP. Недопарное программирование (Code review).

Website development
Все много писали про «Парное программирование». Как это клёво и всё такое. Но как бы возникает проблема, что два программиста за день пишут как бы 150% работы одного программиста. Ну то есть теоретически меньше.

А вот у нас в компании было так, что просто за каждым коммитером (тот кто имеет право добавлять код в основную ветку программы) был назначен ревьюер и после коммита в trunk (основную ветку программы), тикет (да!!! каждый коммит должен быть сделан по тикету) переводился на ревьюера (в тикете писался номера коммито(ов) для этого тикета). Ревьюер отсматривал изменения и или переводил тикет тестеру или же возвращал его коммитеру по одной из причин: логическая ошибка, не соблюдение правил кодирования, сложный код который нельзя прочитать и он не задокументирован, ну или же он явно видел ошибку в коде (напр. забыл проэскейпиться).

Таким образом повышалась как читаемость — соблюдались все правила кодирования, так и документированность — сложные участки кода были задокументированы.

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

А у вас что-нить подобное использовалось/используется?

UPD. понял свою ошибку. Переименовал топик.
Total votes 49: ↑42 and ↓7+35
Views2.1K
Comments 68

Экстремальное программирование, знакомство с Behavior Driven Development и RSpec

IT systems testing

Теория


Для начала, давайте разберемся, что же такое Behavior Driven Development(в дальнейшем BDD) и чем данная техника отличается от Test-Driven Development(в дальнейшем TDD)

Разрабо́тка че́рез тести́рование (англ. test-driven development) — техника программирования, при которой модульные тесты для программы или её фрагмента пишутся до самой программы (англ. test-first development) и, по существу, управляют её разработкой. Является одной из основных практик экстремального программирования.
Читать дальше →
Total votes 65: ↑55 and ↓10+45
Views39K
Comments 36

А вы ноктюрн сыграть могли бы на флейте водосточных труб?

Intel corporate blog
Достоверно неизвестно, изучают ли в Финляндии творчество Владимира Владимировича Маяковского. Похоже, что да, ведь додуматься до такого можно только под воздействием классики… Пятеро финских программистов развлекаются на досуге:

Опережая ваш вопрос: да, некоторые команды в Интел практикуют экстремальное программирование :). Если у вас появятся интересные вопросы к героям ролика – оставляйте их в комментариях, а я постараюсь связаться с бригадой CannonBells.
Total votes 57: ↑39 and ↓18+21
Views8.6K
Comments 38

Иллюстрированный конспект лекции Кента Бека «Четыре стратегии отзывчивого дизайна» (с комментариями)

Website development
"Отзывчивый" - в данной ситуации означает "изменяющийся в зависимости от окружающих реалий".
Предлагаю вниманию свой взгляд с иллюстрациями на сущность «отзывчивого», развиваемого дизайна. Меня заинтересовал конспект лекции об «отзывчивом дизайне», поскольку текущая наша разработка идёт именно в таком ключе — функционал добавляется понемногу, в процессе уточнения и переосмысления задач, без революций, с хорошим пренебрежением к академической идеальности и законченности, которой в процессе развития просто не имеет права быть. Это по-своему замечательно — пренебрегать правилами валидности (они — для будущего), кроссбраузерности (функционал есть, но отображается в IE c долей снисхождения) и концептуальности до момента, пока функционал системы не определён. Она имеет только те куски «мяса», которые работают, отработавшие куски постепенно удаляются. Именно это описывает Кент Бек в своей лекции, поэтому так живы и богаты ассоциации с его классификацией о четырёх стратегиях.
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Views1.7K
Comments 7

Напоминание: до HackDay #7 осталось 5 дней

GTD

Поздравляем всех с Днем программиста и напоминаем, что уже через 5 дней в Москве начнется HackDay #7.

На хакдее сможете:
  • собрать команду под свою идею или присоединиться к существующей;
  • послушать практические мастер-классы и на их основе разработать свой проект;
  • научиться разрабатывать приложения для iPhone/iPad;
  • разработать приложение виртуальной реальности;
  • разработать приложение дополненной реальности.

А также обзавестись новыми контактами и провести время весело и с пользой.

Регистрируемся здесь.
Читать дальше →
Total votes 35: ↑31 and ↓4+27
Views407
Comments 34

18 классных проектов за выходные: 17-19 сентября прошел HackDay#7

Студия Михаила Кечинова corporate blog
В Москве наблюдался дефицит программистов, но было больше бизнес-ориентированных проектов, в отличие от Питера. Мы собрали 250 человек из Москвы, Петербурга, Ростова, Минска и Воронежа. (http://hackday.ru)



Целью HackDay#7 была разработка IT-проектов от идеи до прототипов за выходные.

Читать дальше →
Total votes 47: ↑31 and ↓16+15
Views11K
Comments 29

Игра за два дня

Game developmentUnity3D
Sandbox
Как-то здесь на хабре была заметка о мероприятии про игру за два дня. Предлагалось зарегистрироваться, найти себе команду (всех тех, кого раньше не хватало), вспомнить старые залежавшиеся задумки, укрыться от внешнего мира на два дня и реализовать игру. Идея мне понравилась, и мне сразу захотелось попробовать ее на практике.

Вот что у нас получилось.

Читать дальше →
Total votes 140: ↑135 and ↓5+130
Views32K
Comments 58

Заканчивается регистрация на конференцию для разработчиков XP Days Ukraine

Website development

С 15 по 17 декабря в Киеве пройдет одна из крупнейших и авторитетных конференций по разработке программного обеспечения. Как легко понять из названия конференция носит практический, а не теоретический характер. На основную часть конференции уже зарегистрировалось более 200 человек из более 50 компаний.

Организаторы приложили максимум усилий для того, чтобы привезти на конференцию известных докладчиков и тренеров, которые стояли у истоков современных инженерных подходов. Это даст участникам возможность получить информацию из первых уст. Будут освещены основные инженерные практики: Unit Testing, TDD, Continuous Integration, BDD, Code Review, Refactoring, Acceptance Testing и другие. Также будут обсуждаться вопросы архитектуры в Agile проектах, борьбы с технической задолженностью, взаимоотношений разработчиков и тестировщиков, а также многие другие проблемы современной разработки.

Давайте посмотрим, что нам приготовили организаторы конференции!
Читать дальше →
Total votes 6: ↑4 and ↓2+2
Views532
Comments 0

Несколько недоразумений парного программирования

Abnormal programmingProgramming
Translation
У меня достаточно много опыта в программировании, накопленного за последние несколько лет. Часть опыта я приобрёл работая в своей команде, что-то при работе с клиентам, а некоторый опыт появился благодаря coding dojo и работе на open source проектах.
Для программистов знающих как использовать парное программирование оно предоставляет возможность улучшить свою производительность. Но при этом не стоит ожидать, что программисты значительно улучшат свою производительность с самого начала работы. Парное программирование требует постоянного обучения, а также осознания самими программистами чёткой разницы между исполнителем (тот кто стучит по клавиатуре), и штурманом. Ниже приведено более детальное описание.
Читать дальше →
Total votes 22: ↑17 and ↓5+12
Views3.6K
Comments 3

Экстремальное программирование: Pair Programming

Agile


Парное программирование является одной из практик XP. Эта практика воплощает экстремальную (преувеличенную) идею Code Review. Если ревью позволяет улучшить качество кода, то давайте делать его постоянно, во время рефакторинга и написания нового кода.

Проблема проведения обычного Code Review заключается в том, что программисты дают очень поверхностную обратную связь, когда просто смотрят на ваш код. Но как только они начинаются с ним работать, вот тогда прилетает настоящая обратная связь по всем тонким местам и недочетам.
Читать дальше →
Total votes 53: ↑46 and ↓7+39
Views35K
Comments 63

Остров, о котором забыл Scrum

ProgrammingPerfect code
Translation
На оригинал данной статьи я наткнулся случайно, разгребая почту и наткнувшись на новостную рассылку от ScrumAlliance. Тема метрик Scrum команд и непосредственно кода, меня интересует уже давно. Особенно любопытно, что с этими метриками делать дальше, и первостепенно — зачем они вообще нужны?

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

Чтобы расширить свой кругозор, а также получить ответ на свои внутренние вопросы, добро пожаловать под кат…
Да, я пережил конец света!
Total votes 36: ↑30 and ↓6+24
Views25K
Comments 52

Test::Spec: плюсы, минусы и особенности

REG.RU corporate blogPerlIT systems testing
Tutorial
image

Test::Spec (https://metacpan.org/pod/Test::Spec) — модуль для декларативного написания юнит-тестов на Perl. Мы в REG.RU активно его используем, поэтому хочу рассказать, зачем он нужен, чем отличается от других модулей для тестирования, указать на его преимущества, недостатки и особенности реализации.

Эта статья не является вводной ни в юнит-тестирование в целом, ни в использование Test::Spec в частности. Информацию по работе с Test::Spec можно получить из документации (https://metacpan.org/pod/Test::Spec и https://metacpan.org/pod/Test::Spec::Mocks). В статье же речь пойдёт о специфике и нюансах этого модуля.

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Views8.7K
Comments 16

Визуализация интеграционных приложений

ICL Services corporate blogInstant MessagingUML DesignData visualization
Translation
image

С тех пор как я начал выполнять обязанности системного архитектора, мне чаще приходится рисовать прямоугольники и стрелки, чем писать программный код. С этим можно было бы бороться, например, бессонными ночами участвовать в проектах с открытым исходным кодом, создавать подтверждения осуществимости концепции и демонстрационный код, но и там тоже нужно рисовать прямоугольники, чтобы продемонстрировать архитектуру. Эта статья посвящена визуализации обмена сообщениями в распределенных системах, сервис-ориентированной архитектуре (SOA) и микросервисным приложениям при использовании методологии разработки agile (этот термин потерял свое значение, но более подходящего в данном случае нет).
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Views20K
Comments 6

«Гибкая разработка»: кратко о методологиях Agile

ИТ Гильдия corporate blogIT StandardsDevelopment for e-commerceDevelopment ManagementProject management
Разработка программного обеспечения — это труд, который требует своевременного принятия правильных решений. CTO, архитекторы, тимлиды и сами разработчики регулярно делают выбор в пользу тех или иных инструментов, платформ и фреймворков.

Но все принимаемые решения нужно как-то «синхронизировать». Один из резидентов Hacker News отметил, что ему приходилось наблюдать за тем, как пяти сотням разработчиков в одной крупной компании разрешили самостоятельно принимать некоторые решения в «отрыве» от команды. По его словам, это был хаос. И хотя команда начала работать быстрее, она двигалась в никуда, потому что позднее возникали проблемы на этапах поддержки ПО.

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

Поэтому мы решили начать серию постов о «гибких» методологиях, чтобы еще раз рассмотреть их особенности, сравнить варианты и помочь вашим компаниям оптимизировать процессы. Сегодня мы говорим о Scrum, канбан и экстремальном программировании.

Читать дальше →
Total votes 23: ↑19 and ↓4+15
Views36K
Comments 9

Спецификации сигнатур методов в Ruby с синтаксисом как в Elixir

Ruby

Спецификации сигнатур функций (Typespecs)


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


Вот введение в typespecs, а вот здесь можно ознакомиться с ними подробнее.


Если вкратце, мы можем определить спецификацию сигнатуры функции, и если вызов не соответствует объявленным ожиданиям, статический анализатор кода, известный как dialyzer, заругается. Формат этих спецификаций выглядит довольно изящно:


@spec concat(binary(), any()) :: {:ok, binary()} | {:error, any()}
def concat(origin, any), do: origin <> IO.inspect(any)
Давайте сделаем так же в ruby
Total votes 8: ↑6 and ↓2+4
Views679
Comments 2

О плюсах парного программирования

Райффайзенбанк corporate blogProgrammingDevelopment ManagementPersonnel ManagementIT career


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

Парное программирование


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

Так же и в парном программировании.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Views7.8K
Comments 17