Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Sunday, September 21, 2008

Немного про AgileSummer

В пятницу состоялась милая конференция, посвященная гибким методологиям разработки приложений, или по-нашему, просто Agile.

(что это за зверь — Agile на Википедии)

Лично мне было интересно по нескольким причинам:
1. Сама тема. Я работаю в небольшой команде, и мне не всегда нравится, как у нас налажена коммуникация. Одним из составляющих методологии Agile является формирование команды — как это сделать быстрее и безболезненнее. Ну и на будущее может пригодиться.

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

Минус по сути был только один — свободное время, которого никогда нет. Конференция шла почти целый день, и я все равно не смогла остаться до конца.

Итак, поехали.

Приехать предстояло к 9 часам утра. Юго-запад, небезызвестный IBB, где часто проводятся всякие айтишные конференции. Организаторами выступало Agile-сообщество в Беларуси, командовал парадом Денис Петелин — он вроде бы занимается тренингами на тематику IT. Мероприятие неслабо проспонсировали епамовцы (рассказывать не надо)), а также Exigen services, которые недавно открыли филиал в Минске (сама контора большая, по городам России и Украины — более 2000 человек, у нас пока 60. По agile, насколько я поняла, у нас они не работают).

Организация
С регистрацией были определенные проблемы: на всех желающих не хватило мест. Зато все остальное в плане организации было проведено достаточно четко. Докладчики постарались уложиться в отведенный им час, обед и кофе-брейки как положено, дали симпатичный бейджик, майку (!!! девушки спросили размер!))), ручку и блокнотик, только что из типографии. В общем в этом плане было все довольно мило.

Доклады
Самое главное — на конференцию было заявлено около 10 докладов, в результате пару докладчиков не соизволили приехать, но в общем-то и не страшно. Повеселило то, что один из неприехавших должен был рассказать "Почему я не верю в Agile?" — видимо уверовал за день до конференции. Или испугался помидоров из зала.

Все доклады были по часу, и одновременно проходило от 1 до 3 докладов, в разных залах. Расскажу о тех, на которых я была.

Началось все с выступления Павла Габриэля — к сожалению не имею представления о его основной деятельности, но видно что товарищ грамотный. Доклад был вводный, ознакомительный — "Как правильно начать внедрение Agile?". Порадовала презентация — полностью ассоциативная, одна фраза на слайд и запоминающаяся картинка на фоне.

"Важные практические моменты при переходе на Agile" — Сергей сжутковыговариваемой фамилией Андржеевский из Exigen-Россия, рассказал очень подробно и информативно про сложные проекты для Agile'a, про парное программирование, игру в планирование и многое другое... Вообще было видно что ему есть что сказать, он вроде даже не совсем уложился во время.

Денис Миллер — очень обаятельный молодой человек, его доклад назывался "Динамика развития Agile-команды". Немного бестолковая презентация, и ему немножко не хватает опыта, но харизма по-любому решает. Было весело)) Не терялся, держал контакт с аудиторией — короче, молодец. Рассказывал про что? Запомнилось — про то, что Agile придумали в СССР и называлось это дело Научная Организация ТРуда. По сути доклад был о том, как команде, которая собралась вместе работать, побыстрее преодолеть период шторминга (это когда между людьми идет борьба за лидерство и правоту вместо совместной борьбы за результат).

Анна Лукашик, Беларусь. "Внедрение тестирования в Scrum-проект". Этот доклад не понравился многим. Было скучновато, тема сама по себе занудная, не в обиду тестировщикам, но тестирование — одна из скучнейших областей деятельности, аж сводит челюсти. Она рассказывала, как в их компании внедрялся Scrum и что при этом делали тестировщики. С другой стороны, тестировщикам наверное было интересно.

Влад Жидков, представитель Epam'a. Рассказывал про Continuous Integration. Про то, как замечательно и дружно в Epam'e собираются билды. Как один билд-инженер билдит десяток проектов, какой инструментарий используется... Его завалили кучей вопросов, в основном в плане ПО, которое они там в Епаме используют на эту тему. Не люблю, когда начинают задавать вопросы только чтобы задать, тут его мурыжили наверное минут 20. В нашей компании кстати все по-моему немного проще, и мы избавлены волею Rational многих проблем. Узнала, что в SVN'e, например, нет активностей и собирать патчи одним щелчком, как у нас, практически нереально. Там какая-то мегаутилита сравнивает для этого бинарники от даты до даты.... Короче, жуть.

Последний доклад делал Асхат Уразбаев. Хороший дядя, классно рассказывает, по теме, толково. Ну короче, заслуженный мастер. Что рассказывал — как внедрять Scrum на больших проектах. Feature teams — команды, занимающиеся разработкой отдельной фичи, еще куча разных teams (например, architecture, и даже communication team — люди, которые всегда в курсе и переносят информацию между командами). Далее — как все эти тимс между собой синхронизировать и получить счастье. К нему было много вопросов, к сожалению я не смогла остаться до окончания конференции, но мне и этого хватило.

Получила огромный заряд позитива и энергии двигаться вперед, увидела приятные для себя возможности развития, узнала много нового и вообще просто порадовалась. Чего и вам советую.

Еще немножко инфы по теме:
Agile-сообщество в Беларуси
Обзор методологии Scrum
Хорошая брошюрка по Scrum на английском

Tuesday, May 29, 2007

Getting real

Прочитала "Getting real" от 37signals, компании, создавшей RoR. Очень хорошая книжка про то, как хорошо оставаться маленьким и бедным и при этом писать хорошие программы. Про то, как их писать, с чего начинать и на что обращать внимание. Как сказал товарищ Phoebus, прочищает мозги, и при этом книжка короткая, ясная, в ней нет ничего лишнего. Getting real — это целая мини-философия, такая я бы сказала нехарактерная для запада и западной ментальности, но тем не менее появившаяся у них, и я за них рада=) В общем, читать (по-русски).

Tuesday, March 13, 2007

Lost in translation.

Что бы там ни говорили насчет того, что на родном языке учиться легче, все-таки многие детали при переводе теряются настолько, что на английском если прочитать — будет понятно, а на русском — точно что-то упустишь. И то ли это трудности перевода, то ли невнимательность переводчиков...
Скоро начну смешивать в мыслях русские и английские понятия, особенно если это касается программирования. Больно английские хороши=) И потом, нативные названия дают хорошее интуитивное представление о возможном объекте или действии, даже если не знаешь, чего это такое.
А еще потихоньку проникаюсь истинным духом ООП. Молодец был тот, кто эту парадигму придумал. Просто слов нет, насколько молодец (и большой оригинал местами=)))...

Нитяное.

Читаю про потоки, никак не могу себя заставить согласовывать поток в мужском роде: для меня это она, Thread. То ли потому, что ее поведение не гарантировано после применения большинства методов (ох уж эти фемели...), то ли просто потому, что слово "поток" слишком заезженное (всяк может быть: и поток ввода-вывода, и поток выполнения), хоть по смыслу и подходит.
Можно было бы перевести Thread поромантичнее, как "нить" (да хоть бы и оставили инглишизм, "тред", и никто бы не путался), но поток-то конечно звучит солиднее.
А про себя пусть все равно будет она. Как-то приятнее=)

MalePerson IS-A FemaleThings?

Хорошая штука в Java — перечисления, особенно для хранения констант. Потому что когда пихаешь константы в интерфейс, а потом прилепливаешь к классу, может получиться бред с точки зрения того, что слово "implements" равносильно отношению "is-a":
interface FemaleThings { int MAX = 256; int MIN = -258 }

class MalePerson implements FemaleThings {
void doSth() {
}
}

Примерчик не особо наглядный, но в том же свинговском API такие вещи встречаются очень часто.

Sunday, March 11, 2007

Радость

Уф. Полдня возилась с судоками, в результате прикрутила прелоадер и сделала (алла-алла!!!) границы в таблице. Но какой ценой! Ужас. Нельзя так извращаться (вместо одной таблицы сделала 9, фиктивных), но по-другому у меня не получилось, да и времени заняло гораздо меньше, нежели когда я пыталась разобраться в устройстве JTable.
Вот. Ну, зато теперь красота=)) Осталось, в общем-то всего-ничего: сделать генерацию и доделать алгоритм под решение. Уф. Это с точки зрения алгоритма. А с точки зрения интерфейса еще пахать и пахать. Эх.
Итак, выводы: 1. Средствами JTable границы жирные в блоках сделать можно, но сложно. Смотрела пример, не впечатлило.
2. Можно было бы добавить прозрачную панельку с рисованными линиями сверху над таблицей, используя JLayeredPane. Это у меня тоже не получилось. Таблица из-под низа никак не хотела выглядывать. К тому же стала сомневаться, что если бы я добавила прозрачную панель с границами, работал бы выбор значений в клетках с помощью выпадающего списка.
3. Если время, затраченное на написание несравнимо меньше времени, затраченного на копание в документации, то лучше и не копаться (слишком долго=)). Мдям.

Thursday, March 8, 2007

Fast forward

  • Сегодня знакомилась с перлом. Матка боска, ну и синтаксис, ну и "гибкость", сдуреть можно. Ruby понятнее=)))
  • Позавчера поставила IntelliJIdea — абалденная штука=)))
  • В универе грузят по полной. Мы будем учить VHDL.
  • Судоку потиху продвигаются. Сегодня искала ошибки и пыталась сделать так, чтобы моя солв еще и генерировала какую-нибудь заполненную сетку. Не получилось. Все из-за того, что неправильно работает мой брутфорс. Т.е. работает, но не делает шаг назад. Буду думать.
  • Еще про судоку. Интересным оказалось сведение алгоритма поиска решения к раскраске графа, вершины которого -- пустые клетки, и 2 вершины соединены ребром, если находятся в одном ряду или столбце или блоке 3х3. В связи с этим окунулась в книжки по графам. С ума сойти, сколько же там всякой теории и интересных теорем. А потому подумалось: есть ли специальное ПО для работы с графами? Или, еще лучше, класс, реализующий граф на Java/С++? Причем желательно было бы все-таки чтобы не любительский подход был к этому. Т.е. чтобы класс входил в SDK. Также надо будет поискать ПО для отрисовки графов (это я кажется видела у Алены С++).
  • Надо что-то думать с сертификацией. Т.е. начинать нормально готовиться. Учитывая, что в универе грузят, это сложно. Но возможно.
  • Thursday, January 4, 2007

    О себе любимой и не только

    Зовут меня в миру Татьяной, учусь в Белорусском
    госуниверситете, на механико-математическом факультете.
    В университете мы учим С++, полтора года, и полгода я учу Jav'y на
    спецкурсе. Этим практически ограничиваются мои знания в области
    языков программирования, если не считать моих робких попыток
    познакомиться с ActionScript'ом и Javascript'ом и научиться делать
    что-нибудь полезное на HTML+CSS+)

    Вчера знакомилась с Ruby и Ruby on Rails, осталось очень 
    приятное впечатление как от самого языка, так и от фреймворка.
    Первое, что, конечно, бросается в глаза — необычный синтаксис (да-да,
    это не Java=)). Программы получаются коротенькие, без ущерба для их смысла.
    Я так поняла, что именно этим и гордятся больше всего энтузиасты от Ruby.
    Меньше кода, никаких точек с запятыми=)) Приятно сделана система для
    начала работы с Ruby (связка ri/fxri+irb), приятным оказалось и то, что
    мой любимый текстовый редактор Notepad++ умеет красиво подсвечивать
    рубиновый код=) Кроме него можно использовать специальные IDE для
    Ruby, мне ближе всего оказался вариант установки плагина
    к Eclipse под названием RDT.
    На официальном сайте Ruby можно найти неплохие тьюториалы для начала,
    самая большая книжка Programming Ruby входит в установочный пакет,
    есть англоязычная вики, есть очень любопытная Why's (Poignant) Guide to
    Ruby
    — книжица, умело маскирующаяся под несерьезную=)
    Русские энтузиасты уже перевели несколько интересных статей, хорошая
    статья о Ruby с большим количеством ссылок есть в Википедии,
    в том числе там же можно найти неплохой Викиучебник, хоть и
    неполный, но дающий начальное представление о порядке вещей.
    В ЖЖ есть русское комьюнити, в группах Google — сообщество,
    посвященное Ruby on Rails
    .
    Начала писать, и поняла, что тема более глубокая, чем я могу
    вместить в один пост, а посему to be continued=)