Официальные и не очень события нашей команды, потенциально интересные и за пределами компании.
Как правило, это анонсы и отчеты о разного рода семинарах и конференциях, часть из которых мы проводим у нас в компании (см. Категория:Открытые Семинары).
Блог,
как и весь этот сайт, реализован на Mediawiki4Intranet — «прокачанной» нами MediaWiki на стероидах.
Уважаемые разработчики!
Местами проскакивает информация, что сборку CUSTISWIKI с вашими суперплагинами где-то можно скачать, попробовать. Это так? Если да, то дайте пожалуйста ссылку.
Зараннее спасибо.
Стас, у меня уже полгода вот такой монитор Dell ST2220T. Мультитач (2 точки), гнется хоть до горизонтального положения, устойчив, достаточно тяжел. Правда, скрость реакции тачскрина не очень - это может сказаться на возможности рисовать.
Спасибо! «E-IPS» — типа углы обзора должны быть хороши? (полезно для докладчика).
А попробуйте порисовать на вашем! (Поставьте Inkscape или хотя бы ZoomIT, например).
Интересно, будет ли получаться.
Но меня все-таки идея моноблока греет (портабильность, проводов почти нет...).
Может у кого-то дома есть тачсмарт? Или кто-то знает шоурум, где его можно попробовать?
Стас, ко мне можно на ты, всё ж таки 6 лет вместе работали :)
Углы обзора замечательные.
Попробовал порисовать в Paint.NET - и точности не хватает, и "сигнал пропадает" время от времени. Этот тачскрин рассчитан только на тычки и драги :(
Добрый день. Я был на нескольких семинарах у вас ранее, и с удовольствием бы сходил на этот семинар, но увидел в rss-ленте только сейчас, да и пост насколько я вижу размещён 30го числа. Подскажите, может быть есть возможность узнавать о ваших семинарах хотя бы за неделю?
Студенты, интересующиеся курсом «Разработчик СУБД» — немного подождите, курс обязательно будет, мы готовим его изо всех сил.
Будут и лекции, и живые тренинги, и тренажеры — и главное, мы готовим-препарируем большой реальный проект для практики.
Ожидаемая «точка сборки» — следующаяпятница, 13. HR-команда будет обзванивать всех изъявивших желание, на всякий случай уже можете присылать им письма на hr@custis.ru.
Анонсируембесплатный семинар «Теория и практика Agile».
Будут следующие доклады:
Андрей Бибичев, «Аналитик в Agile: Архаизм или необходимость?». Доклад был уже представлен на SECR-2008, доступны все материалы (аннотация, слайды, статья и даже видео), но ожидается активная живая дискуссия по изложенным положениям.
Александр Байкин, «Гибкий анализ требований». Приблизительные тезисы: 1. Agile — это методология или набор практик? 2. Возьмем немного от Agile. 3. Возьмем немного от RUP. 4. Перемешаем RUP и Agile или 15 принципов гибких требований. 5. 13 чертей требований. 6. Гибкий бизнес-анализ. 7. Гибкий анализ требований и управление изменениями. 8. Гибкое взаимодействие в проекте. 9. Преимущества и недостатки «гибкого» анализа требований.
Время: 4 марта, среда, 19:00; Место: в центре, место легко достижимо с пяти станций метро веток трех цветов — достаточно удобно.Формат: Доклады в конференц-зале с проектором, два тайм-слота по 1:00-1:30 (40 минут доклад, 30-40 минут обсуждение/круглый стол). Между докладами — кофе-брейк (с кофием из кофе-машины и бесплатными плюшками). Все участники обеспечиваются раздаточными материалами.
Мы ожидаем ≈30-50 участников ибо с большим количеством людей, как показал опыт, конструктивное обсуждение организовать очень сложно.
Технический момент — при регистрации нужно указать ФИО — это нужно, чтобы выписать пропуск, поэтому, если ваши ФИО не указаны — пошлите их по почте (stas@custis.ru).
Конкретную программу пока объявлять рано, но там будут и базовые средства групповой работы — системы контроля версий и вики-системы (MediaWiki и Subversion), аналитик-skills (UML, интеллектуальные карты), и самое основное — реляционные СУБД (Oracle) и программирование серверной логики (PL/SQL).
Конкретно график занятий будет определятся демократически (голосованием студентов), но приблизительно мы расчитываем на два месяца — март и апрель, как самые «ненапряжные» для студента месяцы, т.е. планируем завершить все до сессии.
Будет использоваться ударная комбинация методов — лекции с проектором, практические тренинги в компьютерном классе, обучающие тренажеры с тестами, командная работа над игровым проектом, презентации реальных проектов руководителями, и активная дистанционная работа — будут выделены доступные через интернет сервера. В общем, скучно не будет!
В процессе обучения будет подкормка сладостями и чаем/кофе, специальные призы, по окончании — наш сертификат о прохождении курса, а самые лучшие получат суперприз — работу в нашей команде!
Кто заинтересовался — оставайтесь на связи и следите за объявлениями.
И снова хорошие новости для любителей Agile — мы исправили видео с конференции AgileDays-2008, победив мерцание проектора и шум, добавили флеш-видео для обзорного просмотра, и теперь его можно посмотреть или скачать со страницы нашего отчета о AgileDays.
Видео с Физерсом пока не опубликовано по просьбе самого Физерса.
В продолжении поднятой нами темы про IT-комиксы, нельзя не пройти мимо комикса блога «Stuff That Happens». Настоящий программистский комикс, в темах — религиозные войны языков программирования и фреймворков, модные веб-два-ноль сервисы и современные гаджеты, вопросы дизайна и юзабилити. Ну разумеется, есть также романтика, политика, социальные вопросы, вопросы жизни и смерти и т.п. Манера рисунка близка к комиксу XKCD (т.е. совершенно, скажем, без претензий на художественное совершенство), но автора это не смущает.
Итак, год успешно завершен. Вообще, год был исключительно удачным, настолько удачным, что было ясно, что так не бывает — и Гомеостатическое Мироздание не замедлило нанести ответный удар…
Но несмотря на Кризис™, мы достаточно уверенно смотрим в будущее — полно работы от Очень Надежных Заказчиков, и мы их не подведем!
У нас нет массовых сокращений, даже наоборот, мы активно набираем сильных профессионалов — сейчас, в период массовых сокращений, часто «режут» не только случайных людей, но и целые команды с сильными ребятами — так вот, мы ждем мощных программистов, аналитиков, руководителей. Хотя конечно, нам пришлось ужесточить планку отбора — на рынке сейчас действительно стало очень много людей, и многие из них, скажем, в IT-отрасли оказались случайно, на волне «кадрового пузыря»… Но если вы настоящий профессионал, мы вас ждем! Да, возможно зарплаты перестанут расти «по инерции» (как раньше рос фондовый рынок), но у нас всегда есть место для подвига — Производительность и Качество у нас без награды не останется. Но хватит о грустном, возможно мы посвятим следующие посты нашей процедуре отбора более подробно.
А так, мы совершенно с чистой совестью встретили Новый Год традиционным корпоративом, ну и наиболее невинные фотографии с праздника, мы, как обычно, замешали в коллаж:
Еще раз поздравляем всех наших сотрудников, заказчиков, и просто друзей компании с Новым Годом!
Надеемся, кому-то видео окажется полезным, и позволит немного взбодрить мозг после развлекательной новогодней телепрограммы, возможно оно также даст некоторое инсайд-представление о наших внутренних семинарах.
Стас Фомин, «MediaWiki: серебряная пуля или швейцарский нож?».Аннотация: Сейчас вики-системы активно используются не только открытыми сообществами, но и компаниями-разработчиками для написания документации и внутрикорпоративного управления знаниями. При этом вики-системы вытесняют «классические» системы документооборота и технологии документирования. Мы рассмотрим причины этого и обозначим границы применимости, указав также на минусы вик, из-за которых они так и не стали «серебрянной пулей».
Затем мы рассмотрим выбор внутрикорпоративной вики-системы, где мы рекомендуем MediaWiki, имеющую огромный опыт использования и доработок, открытая архитектура которой позволяет, как легко расширять возможности, так и «срезать» неудобные углы в использовании.
В конце мы предложим решения наиболее острых проблем в использовании вики-систем.
Решили выложить видео (вместе с презентациями и статьями) некоторых внутренних семинаров. Видео мы выкладываем в виде нормальных AVI-файлов максимально возможного разрешения, ибо никакое «веб»-качество и «флеш»-видео не дают достаточного качества, а вопросы объема/веса видео, для большинства наших читателей, имеющих безлимитный интернет, больше роли не играют.Если вы из регионов со слабым каналом, но есть большое желание посмотреть видео — напишитенам, мы вам бесплатно вышлем диск почтой.
Андрей Бибичев, «Аналитик в Agile: Архаизм или необходимость?»
Аннотация: Среди вопросов о применимости и использовании Agile-методологий можно выделить три наиболее популярных: совместимость с проектами фиксированной стоимости; какова роль менеджеров; как быть с аналитиками. Что касается первых двух, то им уже посвящен целый ряд докладов и статей от гуру Agile-движения. А вот последний вопрос освещен не так здорово, что и пытается поправить данный доклад.
В первой части обсуждаются причины, по которым возникает мнение, что в Agile аналитикам не место. Основная из них – неверная (гипертрофированная) интерпретация некоторых тезисов и «слоганов» из описаний Agile-методологий, таких как кроссфункциональность членов команды, отрицание необходимости в подробных спецификациях, стремление к избавлению от создания ненужной документации и т.д.
Вторая часть посвящена описанию задач, которые возникают на разных этапах Agile-процесса разработки и при решении которых роль аналитика почти незаменима: формирование модели предметной области; формулировка задач на итерацию; взаимодействие с представителями бизнеса (экспертиза в предметной области, прояснение деталей постановки); контроль качества; пилотное внедрение и начальное сопровождение программного обеспечения.
В третьей части подробно рассматриваются и анализируются возможные варианты взаимодействия аналитика(ов) и команды разработчиков: аналитик внутри команды; Product Owner, исполняющий функции аналитика; аналитик – помощник Product Owner-а; обособленный отдел аналитиков. Обсуждаются плюсы и минусы каждой из схем, условия применимости.
Заключительная часть коротко затрагивает такие смежные вопросы как: что такое Agile-постановки; где, как и зачем вести внутреннюю проектную документацию; почему модели предметной области снова в моде; как выращивать аналитиков.
Весь материал основан на практическом опыте внедрения и использования Agile-методологии Scrum в российской компании-разработчике программного обеспечения enterprise-уровня, а также соотнесен с авторитетными мнениями и высказываниями.
видео (1.5Gb).Это «черновая» репетиция доклада на внутреннем семинаре, сам доклад был успешно прочитан на конференции SECR-2008, но время доклада было неудобное (ранее утро), а видеозаписей на конференции не велось. Так что, думаю видео может быть вполне интересно тем, кто по тем или иным поводам интересуется темой, но пропустил доклад на SECRе.
Видео (с сайта хостинга можно скачать и AVI-файл в лучшем качестве):
В день конституции наша команда десантировалась на конференции AgileDays-2008 — от нас было два докладчика, десяток участников и спонсорское участие.
Пара слов об аудитории в обоих смыслах:
Все действие происходило в переоборудованном буфете компании Luxoft, который широко известен в узких кругах — там регулярно проходят собрания различных IT-сообществ: тестировщиков, аналитиков, разработчиков.
По ряду косвенных признаков можно утверждать, что аудитория состояла скорее из тестировщиков, чем разработчиков, и занималась скорее entreprise-разработкой, чем массовыми web-проектами.Мы попробовали снять видео, это было достаточно сложно, ибо аудитория была забита под завязку (по крайней мере первые несколько часов) и удалось приткнуться с видеокамерой только в дальнем углу — это дало возможность снимать аудиторию (дискуссии, вопросы), но существенно ухудшило шумами качество аудиозаписи. Еще одна проблема — низкоскоростной DLP-проектор дал раздражающие мерцания при съемке экрана. Новости:Наши парни разработали специальный видеофильтр, который победил мерцание этого проектора! Звук тоже исправлен! Все более чем смотрительно!
Да, видео мы выкладываем в двух вариантах: флеш-видео в высоком разрешении (размещенном на профессиональном хостинге) и нормальных AVI-файлов максимально возможного разрешения (чтобы рассмотреть нетривиальный текст или живую демонстрацию программы), которых можно скачать перейдя (клик в правом нижнем углу) на страничку видео на хостинге, и проследовав по ссылке опять в правом нижнем углу. Мы проверяли — скачивания 700 мегабайтного файла с этого хостинга в московских домашних сетях идет со скоростью не меньше 1МБ/c и проходит меньше чем за 10 минут. Если что-то с видео «не слава богу» — не скачивается там, или обрезано — пожалуйста, сообщите почтой или комментарием. Объявление: если мы вручили вам на конференции флешки (с логотипом CustIS), пожалуйста, прочтитеэто объявление. Итак, вернемся к конференции. От нас было два доклада.Введение в непрерывную интеграциюДокладчик: Андрей Сатарин.Презентация, презентация-handout, статья.Есть аудиозапись.
Мы несколько опоздали к началу, поэтому рекомендуем скачать полное видео с сайта agiledays.ru.
Доклад про Continuous Integration, возможно уже несколько набил оскомину у продвинутых тестировщиков и разработчиков, — ведь мы по более-менее схожей теме уже проводили открытый семинар, доклад на конференции SECR-2008, не говоря уже о паре внутренних лекций. С другой стороны, в отличие от некоторых авторов (включая западных гуру), выступающих с одной темой годами, достигая в ней неизмеримых высот и глубин, мы считаем, что лучше «отбомбиться» по теме сразу и до конца, пока она актуальна, чтобы избежать обидных обвинений ([:|||||||:] ). И действительно, семинар показал, что в целом, концепция непрерывной интеграции у аудитории удивления не вызывает, споров полезна она или вредна, уже не ведется (примерно как ранее стало бессмысленно спорить о необходимости систем контроля версий), многие попробовали несколько различных продуктов, а многие даже гордятся возникающими сложностями — «наш проект настолько длинныйвелик, что даже самая непрерывная интеграция прерывается и превращается в ночные сборки» и «наша команда настолько распределенная, что наши сборки не поспевают за Солнцем…». Такие настроения было несложно предугадать, и продемонстрировать «карту в рукаве/рояль в кустах» — «слайды с ответами на ожидаемые вопросы». В целом мысль такова: долгое время сборки это либо проблема неправильных инструментов (не используются правильные менеджеры сборки, типа SCons, Ant, make, …), либо проблема архитектуры (наличие крупных ядер, где «все зависит от всего»). Конечно, такие случаи есть, и странно, что аудитория на них не указала (тогда бы мы показали еще слайдов). Например, классическая реляционная база данных, как известно, очень плохо стыкуется почти со всеми agile-практиками, и в случае continuous integration «кошерное» пересоздание тестировочной базы с нуля в большинстве случаев выглядит неподъемной задачей. Но и в этом случае можно «бороться за живучесть» концепции, применяя разные лайфхаки. Например, классический паттерн ускорения непрерывной интеграции — наращивание памяти на сборочном сервере, и использование tmpfs для файлов и специальных in-memory SQL СУБД для тестирования SQL СУБД функциональности. Но несмотря на все эти гитики, действительно, тема непрерывной интеграции не такая уж и обширная, в целом тянет на полдесятка статей, так например, книга «Continuous Integration» Пола Дюваля и К° (есть русский перевод — «Непрерывная интеграция»), явно имеет «надутый водой» объем.Безудержный Рефакторинг: как не убить себя об стену.Докладчик: Андрей БибичевПрезентация: http://agilerussia.ru/files/agiledays/Bibitchev.Refactoring.pdf
Поднята достаточно оригинальная тема. После десятков регулярных докладов agile-евангелистов о безусловной пользе рефакторинга, появления удобных инструментов, сделавших рефакторинг автоматизированным и доступным для применения в режиме «не приходя в сознание», наконец появился кто-то, чтобы остановить разогнанный маятник, одуматься, рассмотреть случаи, когда применение рефакторинга, как ковровых бомбадировок, вредно, и прояснить причины, почему собственно. Причем «разбор полетов» проходил не на абстрактных примерах (коде типа Foo/Bar), а на настоящих живых примерах на C# и Java из репозитория нашей компании и компании Microsoft.
Доклад концептуальный, не ограничивается рамками достаточно «канцелярского» названия, мыслей много. Основная драматургия: противостояние людей (опытных творцов, весельчаков и разумных лентяев) и механизмов (инструментов, жестких социальных организаций, регламентов и методологий). Мысль — жесткие/водопадные методологии разработки — это если ваши бойцы тупая пехота. Тогда да, муштра и вперед на минные поля — ненадежность отдельного солдата спасет дублирование и избыточность, и заплаченная цена будет оправдана.Но если у вас мощные, кросс-функциональные парни-коммандос, то нужно организовать им комфортную команду и обеспечить полную поддержку. Холить, лелеять, обеспечивать имFun иProfit. А то, что agile проекты иногда проваливаются, виновата не избалованность людей, а отсутствие способностей —в agile проекты нужно нанимать лучших, а дальше пускай они уже выкручиваются сами, главное их не обижать.В качестве метафор «подходов прошлого тысячелетия» автор использовал концепцию стимпанка, иллюстрируя ее картинкой из steampank-style календаря «The other side of the coin» (остальные картинки, если заинтересовали, можно найти тут [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] ).Со своей стороны, мы заметим, что это несколько натянутая, и нехарактерная визуализация стимпанка. Стимпанк — это не депрессивные ржавые железяки, чешущие зад лоснящегося мускулистого рабочего (ммм…?), а скорее идея максимальной эволюции старинных технологий, в предположении, что им так и не было найдено замены. А вершина эволюции — это всегда красиво (дредноуты времени Iмв, последние паровозы, американские автомобили эпохи дешевой нефти). Так что если хотите взглянуть, что есть стимпанк, лучше смотреть соответствующиеаниме-мультфильмы. Вообще видов тестирования очень много (Unit testing,Integration testing,System testing,Performance testing,Reliability testing,Security testing,Usability testing,Portability testing,Acceptance testing) и хорошо автоматизируется только первый (Unit testing), а автоматизация всего остального — это увы, всего лишь пропаганда вендоров, которые втюхивают дорогущие инструменты автоматизации. Так что в тестировании все остальное надо делать вручную «на коленке» и здесь на первый план выходит квалификация тестировщиков (люди — самый ценный ресурс!).
Следующая мысль — несправедливость Agile-благ для программистов и тестировщиков. Пророки Agile многое дали программистам —Refactoring,Unit-тестирование,Continuous Integration, парное программирование,Scrum со всеми его играми и т.п. Power и Fun, как и заказывали. Тестировщикам же из этого ничего не обломилось, кроме фреймворка FIT, но докладчик с негодованием открестился от этого убогого подарка («недопрограммирование» на вики-разметке, тотальная неполнота и ограниченность). С учетом предыдущей мысли, что для правильного тестирования все равно нужны крутые супертестировщики, возникает идея, что не «тестировщик — друг программиста», а «программист — студент, сдающий экзамен тестировщику». Т.е. нанимать надо самых лучших и задорого («Разве вы не знали, что тестировщики везде получают больше разработчиков?» Profit!), желательно из программистов достигших совершенства, и потерявших интерес к программированию («Саваоф Баалович был всемогущ. Он мог все. И он ничего не мог. Потому что граничным условием уравнения Совершенства оказалось требование, чтобы чудо не причиняло никому вреда.»), программистов надо отдать тестировщикам на съедение (отдать их код на Code Review), ведь единственная корректная метрика кода — это количество WTF-ов в минуту при проведении code-review. Ну не говоря уж о том, что Scrum/Agile для тестировщиков означает одно — больше Fun-а, а Scrum Master должен быть помесью пионер-вожатого и массовика затейника! Местами этот фан выглядит несколько беспредельно. Только компания привыкла, что все вертикальные поверхности, включая шкафы-купе для одежды обклеены Scrum-taskами, возникают тестировщики и исписывают стены в туалетах (концепция «Testing on the Toilet»). Докладчик рассказал, что в Беларуссии была конференция SQA Days 4 на которой был доклад «Funny testing: как добавить драйва в работу» — какой еще Fun можно придумать команде что бы не работать. Ну и в целом, нужно смотреть видео. Хотя бы для того, чтобы узнать о силе волшебной фразы «Ну и что?». Тестирование в Agile проектах Докладчик: Илья Гаврилов Презентация: http://agilerussia.ru/files/agiledays/Gavrilov.TestingInAgile.pdf
Хотя название доклада похоже на название предыдущего доклада, тут совсем о другом, скорее о чисто тестировании, чем об Agile. Вполне можно представить этот доклад с небольшими изменениями для тем «тестирование в RUP-проектах», «modern testcase management» и т.п.
Т.е. упор действительно сделан на управление сценариями (use case), тестами (test-case и unit tests). Указывалась необходимость покрыть все сценарии тест-кейсами не меньше чем на 60%, и 80% кода (больше бессмысленно) — юнит-тестами.
В качестве универсального инструмента для ведения и сценариев тестирования, и расчета различных метрик и графиков докладчик рекомендовал Excel.
Основной вопрос, обсуждавшийся после доклада — это как держать все эти планы тестирования в актуальном состоянии. Предложение докладчика простое и очевидное: планировать их актуализацию также, как и все остальные работы, т.е. при оценке задачи сразу оценить какие изменения нужно делать не только в коде, но и в тестах.Unit testing with XML Докладчик: Дмитрий Всехвальнов Презентация: http://agilerussia.ru/files/agiledays/Vskehvalnov.XmlUnitTesting.pdf
По сути доклад был посвящен исключительно использованию библиотеки XmlUnit для написания unit-тестов, связанных с проверкой корректности сформированного XML-я.
Доклад состоял из двух частей:
перечисления задач, которые возникают при написании тестов на сформированный XML:
проверка эквивалентности структур с учетом и без таких нюансов как: неймспейсы, порядок атрибутов и тегов, пробельные символы, комментарии, управляющие конструкции;
вычисление XPath-выражений;
валидация по XSD/DTD;
XSLT-трансформации;
работа с разными XML и XSLT-процессорами.
живой демонстрации по написанию несложных тестов на Java:
проверка по точному совпадению;
проверка с игнорирование отдельных атрибутов (по их именам);
проверка с игнорированием целых узлов и их содержимого (опять же, по именам тегов);
валидация по XSD;
проверка существования узла по XPath-выражению;
проверка совпадения значения, извлеченного по XPath-выражению.
По сути, библиотека XmlUnit — это набор готовых ASSERT-ов для JUnit-а (Java-версия библиотеки) и NUnit-а (.Net-версия библиотеки). При этом .Net-версия, судя по описанию на сайте, развита значительно слабее своего Java-аналога.Тестирование Web 2.0Докладчик: Владимир КолесниковПрезентация: http://agilerussia.ru/files/agiledays/Kolesnikov.TestingWeb2.0.pdf
Краткий, 20 минутный доклад, как можно и нужно тестировать вебдванольные проекты.
Основной посыл доклада: очень много javascript-а, больше 4-х браузеров (каждый со своими нюансами и глюками), аудитория пользователей огромная — нужна гарантия качества. Далее перечислил что и как можно тестировать:
бизнес-логику — это оставил за рамками доклада, так как это стандартно не только для web-проектов и здесь все используют unit-тесты;
серверную часть — выполнение http-запросов к web-серверу и проверка их результата (ну здесь вроде как всё просто и понятно — во всяком случае так счел докладчик);
клиентский javascript — здесь нужны тесты, которые выполняются внутри браузера, для чего почти в каждой известной javascript-овой библиотеке классов (включая jQuery, Prototype, Dojo) есть свой набор функциональности для удобного написания и выполнения unit-тестов прямо внутри браузера;
автоматическое UI-тестирования при помощи инструментов, эмулирующих действия пользователя — здесь докладчик упомянул набивший многим оскомину Selenium. Далее докладчик в основном рассматривал именно unit-тестирование javascript-а и навороты вокруг этого. Когда его спросили всё же про автоматическое UI-тестирование, то он ответил, что этим занимается другой отдел и лично он не очень в курсе их успехов…
Еще запомнилось, что им сильно помогает логгирование исключений, произошедших на стороне клиента. Делают они это при помощиwindow.onerror, правда работает это только в IE и FireFox-е. Именно благодаря этому приему они узнают об успешности версии (если за несколько часов таких ошибок не поступает, значит версия успешна).
Как мы уже заметили, в аудитории было мало вебразработчиков, в основном тестировщики и разработчики enterprise-приложений, вероятно поэтому, вопросов доклад практически не вызвал.Working Effectively with Legacy Code
Доклад Майкла Физерса был «guest star» всего мероприятия, хотя стоит отметить, что не все смогли выдержать плотную конференцию до самого конца — слушателей было существенно меньше, чем в начале дня.
Но тема доклада всегда актуальна,Legacy Codeэто вечное проклятие невезучих программистов (т.е. тех, которых бросают на поддержку чужого кода), и legacy code вечен — да, старые информационные системы умирают, но проходит пару лет, и даже твой супер-крутой код становитьсяlegacy… . Трудно удержаться и не процитировать соответствующие комиксы Дильберта:
На модельном примере класса «расписание» (Schedule), написанном на Java, Физер показал как сделать его тестопригодным. Основной прием свелся к N-кратному применению Dependency injection. Причем, на наш вкус с некоторым перебором: даже статические helper-методы определения является ли день выходным или рабочим были перенесены в нестатический класс, а в тесте было предложено их «заглушить», написав соответствующего наследника. ИМХО это уже другая крайность: когда тестируется функциональностьровно одного класса, а всё, что он использует, либо заглушено при помощи Stub-ов, либо эмулируется при помощи Mock-ов (см. http://martinfowler.com/articles/mocksArentStubs.html). Это так можно получить результат как в репризе Райкина «претензии к пуговицам есть — нет, пришиты намертво…»
К сожалению, по просьбе Майкла, мы (пока?) воздерживаемся от публикации видео — Майкл хотел бы вырезать некоторые моменты. Возможно мы передадим видео Асхату Уразбаеву, и Асхат уже опубликует одобренную часть.
Мероприятие удалось! Очень удачно выбранный формат, резервирующий 20-25 мин, после каждого доклада на вопросы, делает осмысленным личное присутствие на конференции, а доступ к презентациям и видео — неограниченно расширяет аудиторию. Полезность мероприятия явно не уступает «стандартной» Software конференции, типа SEСR, — и это еще одно доказательство, что Agile-подход рулит и в организации конференций. Это подтверждают и отзывы.
Надеемся, что Асхат сможет продолжить линию таких миниконференций.
Если чуть-чуть уменьшить число участников (до 50), то мы могли бы предложить и свою площадку для участников — зал с креслами, мощным проектором и экраном с 4-метровой диагональю, в центре Москвы, в 5-минутной доступности от 5 станций метро.
Объявление. На конференции AgileDays мы раздали несколько 4Gb флешек с материалами к нашим докладам. Но выяснилось страшное — поставщик нас подвел, и вместо 4Gb флешек нам продали «перепрошитые» 2Gb флешки (т.е. 2Gb-флешки, изображающие, что они 4Gb). Т.е. резюме — вероятно большинство материалов будут вам, увы, недоступны. Во-вторых, не храните на ней свои файлы! Она бодро дает записать 4Gb, но считать их не удасться!
Что делать? Есть два варианта. Простой — выкинуть и забыть. Чуть более сложный — выкачать фирменную утилиту, запустить ее, воткнуть флешку и нажать кнопку «Start All», ну а по окончании — отформатировать ее. Флешка будет корректно откалибрована на 2GB, и еще долго послужит вам.
Семинары В нашей компании регулярно проводятся технологические семинары, способствующие поиску, усвоению и трансляции новых технологических и гуманитарных знаний. Одним ударом мы убиваем множество зайцев — стимулируем и выделяем время на исследование и апробацию новых технологий, транслируем знания внутри компании, обсуждаем актуальные задачи и тренды, и наконец — тренируем «презентационные качества» каждого сотрудника, включающие:
умение сделать грамотную презентацию (а не типичную «смерть от Powerpoint», вгоняющую в скуку и сон);
овладение риторикой и вниманием зала;
готовность к публичным дискуссиям и аргументированной защите собственного мнения. Выступающие получают самый разнообразный профит. Во-первых, ведь классно поделиться интересным, будь то технология, фреймворк, язык программирования, и даже хобби — и заслужить уважение коллег. Во-вторых, есть и небесполезные денежные бонусы — за участие, за лучший семинар (с демократическим свободным выбором раз в квартал).
Как правило, семинары внутренние — т.е. создана комфортная среда для выступающих, присутствуют только сотрудники и представители заказчиков, но иногда устраиваем и открытые семинары-презентации, приглашая всех желающих.
Выступить может любой сотрудник (один и или в соавторстве), тема может быть почти совершенно любая. Главное — выступающий должен ей более-менее овладеть (например, тема специфичная для его направления), и тема должна представлять интерес для сотрудников. Впрочем, дальше мы покажем «цветущую сложность» и многообразие тем. В распоряжении сотрудника будет достойная инфраструктура — просторный зал, проектор-экран-компьютер-сеть, маркерные доски, и самое главное — заинтересованная и благожелательная аудитория. Для тех, кто не смог посетить семинар вживую — в компании записываются и публикуются видео и аудио-запись, слайды, вспомогательные материалы.
В целом, практика показала жизненность такой схемы — и у нас появилось много сотрудников, активно выступающих на тематических конференциях и выставках, и публикующихся в IT-прессе.
Чтобы показать разнообразие тем, мы приведем краткие обзоры некоторых прошедших семинаров, в разбивке по годам.
2006Конкурентная работа в Oracle
Ключевые уникальные возможности СУБД Oracle, целостные чтения и RollBack Segments (RBS). Транзакции и Savepoint-ы. Особенности consistent get-ов и уровни изоляции. Блокировки и транзакции, взаимные блокировки (DEADLOCK), явные и пользовательские блокировки.
Технологии проектирования информационных систем
Процесс проектирования ИС — с чего начать, на что обратить внимание, о чем не забыть. Цели, критерии и метрики успеха. Бизнес-объекты и модель предметной области. Переход к архитектуре ПО. Орструктура и документооборот, учет существующих практик и алгоритмов, внутренние регламенты и законодательные акты. Информационная модель — источники, документы, преобразования, получатели. Оперативная и нормативно-справочная информация. Модели предметной области — модель сущностей-связей и иерархия типов, схемы состояний документов. Виды учета: «ресурсный-купеческий» и «требования-обязательства». Способы борьбы со сложностью. Интерфейсы — эргономика и дизайн.
ЗИС: «вчера, сегодня, завтра»
История компании: первые проекты, первые сотрудники, хронология интересных и знаковых событий. Мифы и легенды. Позиционирование компании. Эволюция управления, основы корпоративной культуры и кадровой политики, системы оценки и мотивации, экономическая модель компании. Клиенты и качество их обслуживания.
Принципы оценки проектов и организация работ
Оценки проектов — необходимость, отличия от оценки продукта, основные проблемы плохого качества. Предварительная оценка — цель, особенности, принципы проведения. Дизайн концептуальныйvs.реальный.Методы оценки трудозатрат.Оценки при планировании работ — от «от потолка» до математических методов. Модели декомпозии программного продукта.Оценка в ходе выполнения проекта — cбор информации, выполнение в срок, ретроспективный анализ. Многомерный анализ данных
OLAP и Информационные Хранилища: основные концепции. Недостатки реляционной модели. Многомерная модель: показатели, измерения, агрегации, разрезы… Основные OLAP-операции. OLAP vs. OLTP. Архитектура многоуровнего Хранилища. Многомерная модель (схемы «Звезда»/«Снежинка»). OLAP-архитектуры: ROLAP, MOLAP, HOLAP. Cерверные и клиентские инструменты: основные игроки и модные термины, что делать и как выбирать. Стандарты и языки: MDX, XMLA. Бесплатный OLAP на коленке: локальные гиперкубы.Концепция регулярного маркетинга
Различия между маркетингом и продажами. Этапы внедрения. Привлечения новых клиентов и удержание существующих. Процедура планирования и бюджетирования. Результаты исследований и база знаний. Классификация маркетинговых событий и методы оценки маркетинговой деятельности.
Оптимизация запросов в СУБД Oracle
Как выполняются запросы: запросы по одной таблице и методы выполнения join-ов. «Планы решений» Oracle и cost-based оптимизация. Работа над запросом — выявление проблем, планы выполнения, оптимизация. Алгоритмические улучшения.
CruiseControlиCruiseControl.NET—cервера непрерывной интеграции для Java и .NET. Управление тест кейсами (test case managment). Устройство сетей
Модели TCP/IP и OSI. Нижний уровень: физическая топология, Ethernet,HUB,SWITCH,BRIDGE. Internet Layer: IP-адресация v.4, маршрутизация, ARP. Общеупотребимые «сетевые» команды ОС. Сеть с несколькими маршрутизаторами, компьютер с несколькими сетевыми платами. Transport Layer: TCP и UDP, зарезервированные стандартные порты. Application Layer: HTTP, SMTP, POP3, FTP, LDAP. DNS —Domain Name Service. NAT —Network Address Translation. Организация DMZ (ДеМилитаризованной Зоны), VPN, SSH-туннель, IP/SEC.
Знакомство с SharePoint 2007
Что это и зачем:решаемые проблемы и области применимости. Основные концепции и объекты: cайты, страницы, вебчасти, списки, документы, рабочие области, календари, форумы, задачи, опросы, … Оповещения через почту и RSS. Поиск. Представления. Групповая работа над документами и интеграция с MS Office. Персонализация. Sharepoint Designer. Создание приложений.
Учетные модели
Документооборотная модель в целом: «Документы-Операции-Проводки-Отчеты». Концептуальные варианты учета: ресурсная модель, активно-пассивный (бухгалтерский) учет с двойной записью, планово-бюджетная модель: план и его выполнение, система показателей. Учетные регистры: синтетические и аналитические счета, остатки (сальдо) и обороты. Схема реализации, принципы расчета проводок и создания отчетов. Проектирование плана счетов.
Внутренняя архитектура и развертывание SharePoint Server 2007
Информационная архитектура: SSP, фермы, структура сайта, эталонная модель корпоративного интранета. Программная архитектура. Развертывание SharePoint Server 2007.
Средний уровень для описания и генерации RML-документов Внутренние технологии компании: некоторые вопросы использования фреймворка генерации отчетов специфицированных на RML (Report Markup Language).
Право интеллектуальной собственности и вопросы правоприменительной практики
Интеллектуальная собственность как объект гражданского права. Авторское право: его понятие и содержание, объекты и субъекты, договоры о передаче. Права на программы для ЭВМ и базы данных. Права на средства индивидуализации. Исключительные права на секрет производства (ноу-хау). Ответственность за нарушение прав интеллектуальной собственности.
Применимость Agile-методологий
Водопадная модель (waterfall model): общие концепции и стандартная критика. Agile-методологии: история, Agile-манифест, базовые принципы. Семейство методологий:eXtreme Programming (XP),SCRUM,Feature Driven Development (FDD). Применимость Agile-методологий в ЗИС: что есть, чего не хватает, что не подходит. Обзор:Rational Unified Process (RUP и AUP),Microsoft Solutions Framework (MSF), ISO 9000/9001, CMM(I).
Приемы схематизации при описании бизнес-процессов
Разные виды схем: методологии описания бизнес-процессов, модели, блок-схемы, схемы размещения предметов… Схема Захмана (архитектурная схема предприятия). Схемы деятельности в нотации Йордана-ДеМарко, Гэйна-Сарсона. Модель сущностей и связей. IDEF: Методология процесса моделирования (IDEF0-IDEF14). UML. Схематизация и моделирование. Схематизация как инструмент (деятельностный подход). Схемы в СМД-методологии. Схематизация в коммуникации, мышлении, действии. TestLink — система управления тестами
Теоретическое введение (QA, QC, определение и виды тестирования). Обзор текущей ситуации (тест Гринкевича). Обзор инструмента TestLink.
Интеграция Open Source-систем для управления разработкой ПО
Предпросмотр доклада для конференции SECR-2007. Интеграция бесплатных систем с открытыми исходными кодами для полноценного управления процессом разработки программного обеспечения. Bugzilla, Mediawiki, CVS, Subversion, Bonsai.
Безопасное хранение в СУБД Oracle
Базовая безопасность вOracle: пароли; права; синонимы; роли. Использование пакетов шифрования данных. Разграничение доступа: на уровне представлений;Oracle Database Vault;Oracle Label Security. Авторизация и аутентификация: с учетными записями базы данных; прокси-аутентификация;Enterprise User Security.Oracle Advanced Security. Обзор:Oracle Internet Directory;Oracle Virtual Directory;Oracle Enterprise Single-Sign On (eSSO);Oracle Identity Manager;Oracle Audit Vault;Oracle Secure Backup;Web Services Manager;Oracle Information Rights Management;Oracle Adaptive Access Manager. Платформа: CustIS Universal .Net
Внутренняя разработка компании — фреймворк CustIS Universal .Net: основные принципы, сравнение с ближайшими аналогами (NHibernate), концепция посткомпиляции, метаданные и код. Экземпляры и состояния сущности, объектные запросы.
2008Приемы эффективной работы в PSPad, PL/SQL Developer, ...
Обучение полезным инструментам (как бесплатный, так и купленный компанией софт). PSPad и его внутренние доработки (мультикомпиляция, syntax highlighting, …). Сборка SGML документации (Jade, интеграция с PSPad, проверка синтаксиса, сборка RTF, сборка CHM). PL/SQL Developer: настройки, управление сессиями и блокировками, работа с SQL, PL/SQL, работа с несколькими коннектами, типичные проблемы. Работа с XML в SharpDevelop-е и не только. Бесплатные UML-редакторы (Violet, ArgoUML, …)
Новая система описания, сборки и проноса патчей
Внутренний фреймворк компании. Идеология управления версиями (версионность системы, нумерация версий, инсталяция, обновление, горячее исправление, порции исправлений, их тестирование,…). Утилита для описания и сборки патчей: инструментарий для редактирования, утилита сборки (PatchBuilder), утилита ручного проноса, как это фиксируется в БД, ошибочные ситуации, принципы восстановления… . Модуль для централизованного проноса и мониторинга версий. Типы личностиПо книгам Отто Крегера «16 типов личности...» и сопутствующим материалам. Многие проблемы общения обусловлены тем, что люди плохо представляют себе разнообразие взглядов и типовых схем поведения других людей, степень возможного отличия. Если это представлять, то многие конфликты и проблемы, если не снимаются, то сильно упрощаются, поскольку поведение других людей становится для тебяболее объяснимо.
Методология: Типизация людей — средство отделить личные особенности от поведения, свойственного определенным типам (средство, с помощью которого решаются реальные проблемы, а не цель). Подход классификации — предпочтения в разрезе этапов деятельности. Пары предпочтений. Характерные признаки, статистика. Общение —Экстраверты(E) иИнтроверты(I). Сбор информации:Сенсорики(S) иИнтуиты(N). Принятие решений:Мыслящие(T) иЧувствующие(F). Претворение в жизнь:Решающие(J) иВоспринимающие (P). Четыре типологических темперамента. Соционика как альтернатива. Примеры типологических шаблонов (как разные типы ставят и понимают цели, руководство, относятся к командной работе). Эволюция типа личности человека со временем. Истинная мотивация
Борьба с демотивацией. Что такое хорошо и что такое плохо. Компенсация.
QCon 2008Наша компания командировала эксперта на одну из ведущих международных конференций разработчиков — QСon-2008, проходящей в Лондоне. Сразу после возвращения («по горячим следам»), наш сотрудник устроил обзор основных трендов этой конференции.
Обзор конференции (участники, вендоры, темы). Обзор треков и тем: управление разработкой, архитектура, технологии. Развитие и пропаганда agile-методов. Архитектура: принципы и шаблоны масштабируемости систем, продукты и технологии для масштабируемых систем, ресурсно-ориентированные веб-сервисы (REST-архитектура),Cloud computing.
Зачем разработчику знать основы бухучета? Бухгалтерский, налоговый, управленческий учет. Классические счета БУ: синтетические, аналитические. Группировка синтетических счетов: по балансу, по разделам. Примеры отражения хозяйственных операций. Основная регламентированная отчетность (баланс, отчет о прибылях и убытках).
Обзор конференций по IT в торговле
Посетившие несколько российских и зарубежных выставок и конференций сотрудники поделились впечатлениями.
Обзор мероприятийEuroshop 2008 Dusseldorf,Buissines Solutions: Retail Кёльн/Дюссельдорф,AHConference Москва, Мариотт Тверская.Обзор выступлений: новые технологии, оборудование (Self Checkout, Self Return, Счетчики перемещений), идентификация (Databar, RFID и многое другое), мобильные технологии:Visa Paywave,Visa Mobile Platform,Accinity. ИТ проекты: «Детский Мир»; «Копейка»; «Монетка»; «O'keй»; «Купец», «Стройбери»; «Кей»; «ТопКнига»; «Лента»; «Адамас»; «Л'Этуаль». Принципы управления ИТ в Рознице —принципы управления ИТ в региона, проблемы с западными принципами управления в России, инструментарий описания бизнес-процессов, опыт CIO из Европы и Штатов. MDM+EDI :Teradata; «Метро групп»;SOLQUEST;GS1. Проекты внедрения SAP: «Лента»; «Мир»; «Эльдорадо». BI-проекты и решения: внедрение («М-видео», «Адамас», «Азбука Вкуса», «Монетка»), cистема прогноза продажForseason, Sybase IQ, Advizor Visual Discovery, платформа для выявления out-of-stocks ECR, SAP Pos DM, GMCS.
Почтовая система компании или как подружить Outlook c Exchange
Обзор почтовой системы компании. Обзор и настройка почтового клиента Outlook. Связка Outlook и Exchange, переезд на серверную почту. Outlook Web Access. Переезд с других клиентов.
UML 2.0
Коротко про UML: что такое UML, способы использования UML (эскизирование / проектирование / программирование, бизнес-анализ / системная архитектура), обзор видов диаграмм, что такое допустимый UML. Диаграмма классов. Диаграмма состояний. Диаграмма пакетов. Диаграмма деятельности. Use case (прецеденты). Диаграмма прецедентов. Диаграмма последовательностей. Графическая нотация «от CustIS». Инструменты (доступные нам): Visio + шаблоны к нему / Violet / ArgoUML / StarUML / …
Практики управления проектами
Обще-философская часть: что должен делать руководитель, типы проектов по типам ожиданий, ключевые особенности наших проектов, «продукт vs. услуга», орг. структура производственных подразделений и альтернативы ей. Практическая часть: cтарт проекта, устав / ключевые игроки / оценка проекта, текущая деятельность, планирование работ / постановка и формирование ТЗ / разработка / QA / сопровождение / документирование и т.д., закрытие проекта. Переговоры и клиентские отношения: переговоры, управленческие приемы, управление ожиданиями, риски. Варианты развития.
Scrum: перезагрузка
Дополнения к предыдущему семинару: документирование, комментирование кода, автоматические тестирование и сборка, code review, обязанности руководителя проекта. Nokia-тест: блог Джефа Сазерленда, варианты теста, про agile-спецификации, выводы. Scrum checklist от Книберга: блог Книберга, общий обзор checklist-а (в виде mind-map), Definition-of-Done (DoD), выводы для нас. Полезности из презентаций Книберга: наиболее частые проблемы (или узнайте себя!), роль менеджера в Agile (или измените менеджмент!). Наш roadmap. Подборка полезных ресурсов.
Практика работы с мастер-данными
Что такое мастер-данные и НСИ. Проблема двойственности терминологии: мастер-данные и НСИ . Выделение мастер-данных из общего объема данных: цена вопроса. Обзор существующих практик ведения МД/НСИ. Этапы создания управляемого ведения МД/НСИ. Проектирование системы ведения МД/НСИ: с чего начать MDM, необходимые условия успеха, четырехпараметрическая модель информационного обмена, модели ведения МДМ, сравнительный анализ по функциональности . «Звезда» в торговой сети.
Что выбрать: краткий обзор готовых решений для MDM.
Основные идеи и реализация Главной книгиВнутренние технологии компании — механизмы (фреймворки, библиотеки) организации универсальной учетной машины.Организация бизнес-процессов и учета по сделке . Принципиальная схема и характеристики учетной машины . История развития — эволюция учетных машин:Custis Transactions,Custis Accounting,Custis Universal,Custis GL/XML,CisUni.Net. Принципиальная схема. Структура модели «Главной книги». Объектное ядро и отображение в структуру хранения (ORM). Документооборот (состояния, методы).
Система прав доступа. Учетные счета, синтетические счета, субсчета, аналитические счета, аналитики (субконто). Хранимые показатели (агрегация). Синхронизация объектной и учетной моделей. Генерация операций при изменении документа. Сбор отчетности. Прозрачность модели (drill down,traceability).
Распределенное ведение и использование справочников и классификаторов. Производительность. Гибкость. Масштабируемость.
Функциональное программирование
Что такое функциональное программирование? Блажь математиков и эстетов от программирования или что-то полезное? История, достижения, найденные сферы применимости. Какие проблемы решаются, а какие — создаются. Примеры: HASKELL, OCAML, F#, LINQ.
В теории применение технических практик Agile кажется очень привлекательным. Test Driven Development, Continuous Integration, Refactoringи прочие позволяют разработчиком повышать качество кода и эффективность разработки. Однако на практике возникает множество вопросов. Как делать рефакторинг в реальном проекте при отсутствии юнит тестов? Окупиться ли применение Continuous Integration? Как использовать TDD для наших технологий и архитектуре? И, наконец, как писать тесты при наличии большого объема унаследованного кода? На первой в России конференции по техническим практикам разработки мы постараемся ответить на эти вопросы. Конференция пройдет 12 декабря 2008 года в Москве с 10-00 до 19-00.
На этой конференции выступят и наши ведущие специалисты:
Андрей Бибичев — «Безудержный Refactoring: как не убиться об стену» На тему рефакторинга кода написано немало книг. Правильный рефакторинг кода поможет любой команде эффективно и безопасно модифицировать свою систему. Но не всегда рефакторинг применяется и понимается правильно. В этом докладе мы расмотрим, как делать рефакторинг с пользой для системы и при этом не «Убить себя об стену» в борьбе за качество кода.
Изюминкой доклада являются примеры – все они не модельные, а из реальных систем, находящихся в production-эксплуатации. Причем примеры будут как удачных, так и неудачных преобразований. Это тот опыт, который получен в ходе боевых действий (а не учений) и которым хочется поделиться.
Андрей Сатарин —«Введение в непрерывную интеграцию»Использование непрерывной интеграции в процессе разработки программного обеспечения обещает много преимуществ: быстрое обнаружение ошибок, устранение проблем интеграции, меньшее число дефектов. При более подробном рассмотрении оказывается, что эта практика сильно зависит от других, таких как модульное тестирование, стандарт кодирования и т.д. Множество ожидаемых преимуществ не реализуются без использования этих дополнительных практик. Складывается парадоксальная ситуация когда не ясно, имеет ли непрерывная интеграция независимую ценность или вся ценность обусловлена только «сторонними» методиками. Нет ли здесь обмана, когда под предлогом внедрения непрерывной интеграции пытаются использовать преимущества других инженерных практик?Спешите зарегистрироваться, конференция бесплатна, но помещение небольшое и количество мест ограничено!
Очень часто на встречах соискатели спрашивают про наличие у нас социального пакета. Отвечаем:
Каждый сотрудник может застраховать себя или кого-то из родственников (жену, например) на определенную сумму. Можно выбрать среди нескольких программ:
со стоматологией или без стоматологии (ведь у многих есть свои «прикормленные» стоматологи);
с госпитализацией или без;
со скорой помощью;
с вызовом врача на дом
и так далее.
В пакете услуг от страховой компании (мы сознательно опускаем ее имя, чтобы нас не заподозрили в ангажированности) идет полис медицинского страхования для путешествий за границу. Теперь при оформлении отпускной поездки сумма договора сотрудника будет уменьшаться на стоимость медицинской страховки, что, согласитесь, приятно.
Выступали и на «Дне специалиста» — так называется ярмарка вакансий для студентов мехмата МГУ.
Кроме нас, из софтверных компаний был Deutche Bank (вернее его российское софтверное отделение, ранее известное как «Pushkin Project») и SAS Institute.
Были и представители ВПК, и тот же (с той же табличкой), что и на физтеховской ярмарке вакансий, рекрутер ФСБ. Неудивительно, что он вызвал большой интерес — за квартиру многие выпускники (и не только) готовы продать душу.
Но и нам удалось вызвать аншлаг, с викториной (организованной как компьютерное тестирование) и раздачей 2GB-флешек с свободным софтом для матмоделирования, верстки математических статей и презентации исследований.
Пара неожиданных моментов — большую часть контингента составили младшекурсники, для многих из которых наша «отсечка» на викторине (лежащая ровно посередине между минимумом, определяемым матожиданием случайных ответов и максимумом), оказалась «неподъемной», и все же было принято решение (чтобы не обидеть тех, кому отказали в начале), держать выбранную «планку». Возможно это кого-то огорчило — поймите, нам совсем не жалко этих флешек, вопрос в правилах игры. «Разбрасывать их в толпу» можно (и мы пару лет назад так и делали), но, как показал опыт, это совершенно бессмысленно — полученный бесплатно подарок, не воспринимается как что-то ценное, а даритель не вызывает никакого интереса («какой-то лох раздает халяву»). Это не то, чтобы мы хотели. А полученный в борьбе приз (пусть даже в несложном состязании), вызывает заслуженную гордость и другие положительные эмоции — чего мы и добиваемся. Возможно в следующий раз мы сможем придумать более дифференцированную схему, дающую фору первокурснику относительно выпускника.
Было активное общение с молодежью, мы раздавали советы на тему актуальных знаний и навыков, нужных начинающему разработчику ПО, чтобы быть востребованным на современном сложном рынке труда.
С большой вероятностью, если не будет форс-мажорных обстоятельств, после студенческой сессии мы снова проведем обучающий курс для студентов. Наши курсы (да, совершенно бесплатные, да мы кормим плюшками с кофием, раздаем футболки и сертификаты прохождения курса), как показал опыт, прекрасный трамплин для ищущих работу, ну а самых лучших, мы приглашаем к себе.Как обычно, пара фотографий с мероприятия.
21 ноября «выступали» на ярмарке вакансий МФТИ. Характерное, хотя и ожидаемое, отличие от прошлых лет — отсутствие банков и компаний-аудиторов. Хорошо это или плохо — вопрос дискуссионный, но по-крайней мере, нам гораздо легче вести диалог со студентами, когда они не оппонируют «а вот на стенде соседней компании XX, физтехам-выпускникам предлагают $YYYY, а студентам $YYYY/2, и никаких специфических знаний не требуется».
Вообще присутствовали три сильных софтверных компании: ABBYY, Cognitive Technologies, и мы (да, мы причисляем к сильным компаниям). От нефтянников была Schlumberger, компания, известная плотным взаимодействием с МФТИ. Для милитаристически ориентированных студентов, было несколько компаний от ВПК, и кроме того, представитель ФСБ, скромной табличкой «Решаем проблемы с квартирой и детским садом» собравший немало интересующихся.
Да, каждая компания использует свою стратегию привлечения — Cognitive устроил олимпиаду по программированию, ну а мы шли по опробованной нами технологии, и развернули три ноутбука с простым тестом «Викторина: три буквы», который призван отделить студентов минимально интересующихся разработкой ПО, от других специализаций. Ранее мы использовали тот же тест, но в бумажном варианте — это было несколько муторно (проверять галочки на бумаге недостойно ведущих автоматизаторов), допускало возможность читинга — «утащить вариант и прогуглить ответы», очевидный вариант для любителей легких путей.
Хотя надо заметить, что сначала мы столкнулись с боязнью студентов «игры» с компьютером (при том, что с удовольствием отвечали «бумажный вариант»). Это явно какая-то иррациональная боязнь, сродни боязни «потери души при фотографировании», и причины ее нам выяснить так и не удалось — впрочем, после того как появились первые желающие, этот «синдром» вроде бы у всех прошел.
В качестве призов мы, как обычно, выдавали 2GB флешку с подобранным нашими лучшими специалистами набором свободного программного обеспечения, полезного для математических исследований, курсовых, дипломов (верстка, публикация, презентации).
Впрочем, тем кто не мог пройти этот тест, мы предоставляли возможность продемонстрировать свои знания в другой области — у нас в запасе было множество тестов, как на знание языков программирования или IT-технологий, так и на компьютерную математику. В общем, без призов почти никого не оставили.
В подразделении «Финансовые институты» ведется разработка информационной системы для одного из крупнейших банков. У Вас есть возможность принять участие в решении:
учетно-аналитических задач;
сложных интеграционных задач;
задач оптимизации нагрузки потоков данных.
Проект предусматривает применение технологической платформы на базе СУБД Oracle, .Net и ряда внутренних технологий компании.Нужно знать обязательно:
Опыт разработкиPL/SQL;
Опыт разработки под реляционные СУБД (преимущественноOracle);
Уверенное знание C# 2.0, опыт разработки ПО на платформе.NET;
Владение XML-технологиями (XSD, DOM).!!!!!Обратите внимание!!!!! — знаниеPL/SQL на первом месте.Желательные навыки и знания:
Знакомство с возможностями C# 3.0;
Представление о современных методологиях разработки (итеративная разработка,unit-тестирование, непрерывная интеграция);
Навыки коллективной работы в проектной команде (в частности, использование системы контроля версий, системы бэг-трекинга);
Разработка приложений на Java (финансовая тематика).
Взаимодействие с аналитиками и заказчиком.
Участие в проектировании архитектуры.
Участие в составлении и доводке проектной документации. Обязательно:
Общая культура программирования: владение системами контроля версий (Subversion, CVS), грамотные понятия об интеграции и тестировании, навыки работы в команде (желательно иметь понятие о Scrum).
Базовая культура Java-разработки (Ant, Maven, JUnit, …).
Необязательно, но очень приветствуется знание:
Шаблонов проектирования (паттерны не панацея, но позволяют избежать ошибоки и облегчают коммуникацию в команде).
Oracle Application Development Framework (oracle.adfm), и вообще линейки оракловых продуктов и технологий.
Опыт работы с J2EE, и а также опыт работы с следующими Java библиотеками/фреймворками:
Apache ActiveMQ;
Apache Log4J;
Apache POI;
Java Message Service (JMS);
Spring Velocity;
Caucho: Resin, Hessian;
PDFBox;
Microba controls;
Jgoodies.
Для любителей кросс-функциональности, можно, при наличие навыков, работать параллельно и в позиции серверного J2EE-разработчика.
Update: В принципе, успешно провели набор по этой вакансии. Но есть некоторая вероятность, что будет еще одна вакансия по этой позиции, так что если вы действительно хороший специалист, и ищете работу — пошлите нам резюме.
Широко распространен стереотип, что программисты в массе — страшные, косолапые, страдающие (или наслаждающиеся?) избытком или недостатком веса. В это многие верят — ну да, вроде как работа малоподвижная, а спортсооружения в офисных кварталах — редкость.
Так вот, это не про нас. Мы, за счет компании, арендуем зал недалеко от офиса, и регулярно, раз в неделю играем в футбол. Вообще там можно и в волейбол играть (есть сетка), и в баскетбол (есть кольца с щитами), но как-то оказалось, что играющих в футбол большинство. Играют все, включая Самое Высокое Руководство.
Но никакого принуждения нет — если игровые виды спорта не радуют, а хочется «фитнеса с бассейном» — то у нас, в одном здании с офисом, есть настоящий гламурный фитнес-центр. Некоторые наши сотрудники ходят туда и до работы, и после, и даже в перерывах. Кстати, по слухам от посещающих сотрудников, 80% посетителей там — молодые девушки, а по вечерам, в саунах, иногда бывает весело. Это только слухи, но вы вполне можете их проверить.
На улице Кризис, но мы продолжаем расширяться, нам опять нужны Java-разработчики. Профиль примерно такой, как мы уже указывали — J2EE, (Spring Framework, Apache Wicket, контейнеры OC4J), СУБД Oracle, ну и вебграмотность конечно (HTML/JavaScript).
Важный момент — обычно мы берем и успешно доучиваем студентов и неопытных разработчиков, но сейчас нужны сильные парни, уровня team lead!
Update: В принципе, успешно провели набор по этой вакансии. Но есть некоторая вероятность, что будет еще одна вакансия по этой позиции, так что если вы действительно хороший специалист, и ищете работу — пошлите нам резюме.
Андрей Бибичев, «Аналитик в Agile: Архаизм или необходимость?»: презентация, статья;
Стас Фомин, «MediaWiki: серебряная пуля или швейцарский нож?»: презентация, статья.Со своей стороны, заметим, что хотя конференция продолжает оставаться уникальным местом, где собираются разработчики не только из Москвы/Питера, но и со всего СНГ, организаторам стоит подтянуть организацию (такая вот тавтология), ориентируясь на молодые динамичные конференции, такие как, например, «Highload». А для тех, кто не был на конференции, возможно будет интересно пролистать сборник статей с конференции (слайды, видео и аудиозаписи, к сожалению, недоступны).
[ Хронологический вид ]Комментарии
Уважаемые разработчики! Местами проскакивает информация, что сборку CUSTISWIKI с вашими суперплагинами где-то можно скачать, попробовать. Это так? Если да, то дайте пожалуйста ссылку. Зараннее спасибо.
Вам надо сюда http://wiki.4intra.net/Mediawiki4Intranet, а может прямо сразу сюда http://wiki.4intra.net/Wampp-mediawiki4intranet
Благодарю!!!
Про префиксный поиск в PostgreSQL неправда, он там есть.
Хм, действительно. Что-то фигово доку просмотрел. Спасибо, исправил, заодно добавил про их "веса"...
Стас, будет ли видео? Когда и где?
Валера, привет. Ну как-то так: Блог:События/2011-09-20_Whale_Rider_2011, т.е. Мишин доклад уже был и его можно посмотреть (и прокомментировать ^_^), у Виталия можно полистать статью-презентацию (правда тема там более-менее наша обычная), а у меня только краткие заметки о конференции. Видеозапись велась, но кто были эти люди, и когда опубликуют — увы, неизвестно. Надо следить за Олегом Буниным.
Спасибо!
Стас, у меня уже полгода вот такой монитор Dell ST2220T. Мультитач (2 точки), гнется хоть до горизонтального положения, устойчив, достаточно тяжел. Правда, скрость реакции тачскрина не очень - это может сказаться на возможности рисовать.
Спасибо! «E-IPS» — типа углы обзора должны быть хороши? (полезно для докладчика).
А попробуйте порисовать на вашем! (Поставьте Inkscape или хотя бы ZoomIT, например). Интересно, будет ли получаться.
Но меня все-таки идея моноблока греет (портабильность, проводов почти нет...). Может у кого-то дома есть тачсмарт? Или кто-то знает шоурум, где его можно попробовать?
Стас, ко мне можно на ты, всё ж таки 6 лет вместе работали :) Углы обзора замечательные. Попробовал порисовать в Paint.NET - и точности не хватает, и "сигнал пропадает" время от времени. Этот тачскрин рассчитан только на тычки и драги :(
Понял, вычеркиваю. Углы это хорошо, но рисование должно быть настоящим.
Как я это могу понять? Ты бы хоть страничку свою заполнил....
Эх вы шуток не понимаете :-))
Дима, мы понимаем шутки! Это вообще лучшая реклама! Тебе стоит сделать визитку с этими Ж!
Добрый день. Я был на нескольких семинарах у вас ранее, и с удовольствием бы сходил на этот семинар, но увидел в rss-ленте только сейчас, да и пост насколько я вижу размещён 30го числа. Подскажите, может быть есть возможность узнавать о ваших семинарах хотя бы за неделю?
Войдите, чтобы комментировать.