31 мая 2011 г.

Коротко о философии простоты

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

Вся наша профессиональная жизнь строится вокруг философии сложности. Иногда это не просто философия, а настоящий культ. И чем сложнее задача и ее решение, тем лучше. Сложность становится неким показателем крутости в нашем маленьком айтишном обществе. Мы считаем, что сложность это хорошо, или, в крайнем случае, нормально и «ничего страшного».

Теперь я скажу, что сделать несложно: ответить на вопрос «Почему же программами так сложно, а порой просто невозможно, пользоваться?». Да-да, сидя в своей башне из слоновой кости, мы порой забываем, что абсолютное большинство живых существ, населяющих нашу планету, не разделяет нашего стремления к усложнению. Им это неинтересно, они хотят быстро и непринужденно решать свои повседневные задачи с помощью компьютеров, которые, судя по заверениям многих умных людей на протяжении полувека, призваны упростить нам всем жизнь.

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

Будьте проще, коллеги! (И посмотрите еретическую лекцию о программировании под катом)

24 мая 2011 г.

SEF.by 2011: приехали? Отчет о событиях форума и кратко о впечатлениях

В прошлую пятницу в Минске состоялся очередной Форум по инженерии программного обеспечения, который также известен в народе под именем SEF.by. Сразу скажу, что лично у меня не создалось какого-либо однозначного впечатления о произошедшем событии. Как известно, на каждое действие есть соответствующее противодействие. Вот и в этом случае, положительным моментам обязательно сопутствовали моменты не самые приятные. А истина, как обычно, болтается где-то посередине :)

Некоторые моменты, которые я, надеюсь, очень дипломатично назвал не самыми приятными, вызвали ряд вопросов. Почему видеозаписи докладов доступны только для выступлений компании EPAM Systems? Зачем было называть конференцию «территорией без активных HR мероприятий», особенно при наличии целой огромной секции Insider? Зачем говорить с трибуны, что было прислано так много отличных докладов, что было очень сложно выбирать лучшие из них, и в то же время мучить слушателей рассказами компании IBM? И, наконец, самый главный вопрос жизни на конференциях и всего-всего: когда же появится нормальный Wi-Fi?

А из положительных моментов я бы в первую очередь отметил... Хотя нет, о них позже. Мы ведь в интернетах, а тут, как известно, принято жестко критиковать всех и вся. Кому будет интересно читать, например, про хорошую работу организаторов? :) Поэтому о впечатлениях и вышеозначенных вопросах ниже, а сейчас обратимся непосредственно к программе мероприятия, докладам и докладчикам.

18 мая 2011 г.

Software Engineering Forum 2011: поехали?

Завтра стартует Software Engeneering Forum 2011, а я стартую в дорогу на оный уже сегодня поздно вечером из Гродно. Давненько не бывал на таких массовых мероприятиях для айтишников лично, все как-то виртуально да виртуально. Пора бы уже и с народом познакомиться да порассуждать за кружкой гиннеса о судьбах отечественной IT-индустрии, правда?

Но прежде, чем рассуждать самому, стоит и послушать других :) Лично для себя я составил вот такую сетку докладов:

  • Минное поле требований fixed-price проекта (Александр Калугин, Mercury Development Russia, Россия)
  • No more Devs VS Ops - building integrated Development & Operations approach (Eli Feldman, EPAM Systems, США)
  • От коллектива программистов к полноценному бизнесу: проблемы развития IT-компаний (Кирилл Голуб, Aheadworks/ Пятый терминал, Могилев, Беларусь)
  • Agile Круглый стол
  • Think mobile, think innovative (Иван Киркоров, Евгений Гальпер, EPAM Systems)
  • Evolution of e-commerce, latest trends and implementation platforms (Валерий Маковик, EPAM Systems)
  • Почему команда не «принимает» руководителя проекта и что с этим делать? (Сергей Бережной, anotherpm.com, Украина)
  • Разработка тиражируемого продукта: преимущества бизнес-модели (Георгий Баркан, Kaspersky Lab, Москва, Россия)
  • То ли непонятный круглый стол от Itransition, то ли... еще не знаю.

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

Обещаю более-менее прямую трансляцию с места событий в твиттере, следите за публикациями http://twitter.com/grodnosoft или по тэгу #sefby.

Еще интересно как будет выглядеть футбольный матч с EPAM и совсем непонятно зачем участникам конференции рисовать коллективный портрет EPAM (хотя в тоже время интересно на что он будет в итоге похож: получится ли страшное и большое чудище или нет? :-P). Будем посмотреть, как говорится.

До встречи на форуме!

14 мая 2011 г.

Теория и практика адаптивного управления проектами

Предлагаю посмотреть видео выступления Сергея Архипенкова на конференции Codefest 2011 в Новосибирске. Идеи далеко не революционные, но зато очень удачно, на мой взгляд, поданы в виде нескольких основных принципов управления сдобренных ситуациями из практики. Кроме того, автору удалась удачная параллель между развитием науки управления проектами по разработке ПО и развитием механизмов управления баллистическими ракетами :)



CodeFest2011.Arkhipenkov-adaptive_project_management from codefest on Vimeo.


Описание с сайта конференции:
Известно, что производительность программистов может отличаться в десятки раз. Задача руководителя — сделать воспроизводимой высокую эффективность интеллектуальной деятельности. Путь к решению этой задачи — применение методов адаптивного управления, направленных на изучение и изменение свойств и структуры объекта управления: людей и их взаимодействия. Будут представлены и проиллюстрированы практическими примерами принципы адаптивного управления проектом, используя которые, руководитель может обеспечить наивысшую производительность команды. Цель — показать, что хорошо управляемый проект может быть успешно выполнен обычной командой разработчиков.

10 мая 2011 г.

Обновления блога: Заметки айтишника версии 1.2

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

  • Самое главное событие: автор сих заметок сменил работу :) Теперь я тружусь в составе команды, разрабатывающей open-source продукт JFire ERP (немецкая компания NightLabs GmbH
  • По следам недавних литературных обзоров появилась страница «Что почитать?», которая будет обновляться по мере прочтения новых книг
  • Вместо довольно убогих (ждем обновлений от Blogger!) родных комментов была подключена система комментирования от Disqus, поддерживающая много способов авторизации, в том числе через аккаунты Twitter и Facebook. Анонимные комментарии по прежнему возможны. Так что, если вы не бот, то смело комментируйте.
  • Появились кнопки Like и Tweet в постах - жмите, не стесняйтесь ;-)
  • Прицеплен свой favicon на тему мирного сосуществования людей и багов вместо стандартной буквы Б от Blogger'а 
  • Решился и добавил лицензирование от Creative Commons, которое можно лицезреть в самом низу. Если вкратце, то все материалы можно использовать как угодно, лишь бы был указан автор.

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

Конечно же, любые идеи со стороны жесточайше приветствуются :-)

5 мая 2011 г.

Книга месяца: «Философия Java», Брюс Эккель

Меня время от времени спрашивают какие хорошие и стоящие книги можно почитать Java-программисту. Несмотря на то, что таковых книг ни одна и ни две, я всегда советую книгу Брюса Эккеля «Философия Java» (или «Thinking in Java» в оригинале). Уверен, что все Java-разработчики со стажем должны об этой книге знать и уже давным-давно прочитать. Если же по каким-либо причинам этого еще не произошло, то время исправить сие упущение.

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

Что же касается новичков в мире Java (такие ведь еще остались, правда?), то по моему мнению более удачной книги для начала не придумаешь. Как показывает практика, новички зачастую знают об объектно-ориентированном проектировании/программировании немного - лишь голую, ничем не подкрепленную, теорию. Каким волшебным образом эта теория используется на практике понимают далеко не все. Это нормально, мы все учимся. Автор книги, судя по всему, прекрасно осведомлен о таком положении вещей и поэтому начинает с азов ООП, постепенно подводя неискушенного читателя непосредственно к Java.