• Том ДеМарко: инжиниринг ПО — идея, время которой прошло?

    • Перевод
    Я часто общаюсь с людьми на тему гибких методов разработки ПО, иногда пишу статьи про это (например, недавняя статья на хабре про Канбан в IT).
    И я могу сказать, что основной аргумент, который люди приводят против этих методов, который останавливает многих даже от мыслей про Канбан, Scrum или XP — это якобы низкий уровень контроля за разработкой у этих методологий.
    При этом некоторые воспринимают, как непрофессионализм, доводы о том, что уровень контроля не сильно-то зависит от методологии, да и вообще контроль в сфере разработки ПО — это по большому счету фикция.

    Для таких людей я перевёл новую статью Тома Демарко, одного из основоположников инжиниринга ПО, разработчика метрик для ПО и соавтора известной книги «Человеческий фактор: успешные проекты и команды».
    Эта статья сильно провокационная и сейчас широко обсуждается в англоязычных блогах и странно, что я еще не встречал ее переводов на русский. Но, несмотря на провокационность, в ней есть несколько очень правильных идей, которые могут изменить у кого-то представление о важности и возможности контроля за разработкой.
    В общем, читайте перевод статьи под катом.

    Читать дальше →
  • Канбан в IT (Kanban Development)

      Я собираюсь написать несколько статей про новую методологию гибкой разработки Канбан (Kanban Development) в целях подготовки к Scandinavian Agile Conference 2009, где я буду делать один из докладов (кстати, заодно приглашаю всех на конференцию).
      Сегодня публикую первую из статей.
      Основная задача первой статьи — это как можно проще описать основы Канбан: что это такое, в чем отличие от других гибких методологий и зачем это нужно.
      Также я хотел бы собрать как можно больше вопросов и сомнений в комментариях, чтобы ответить на них в следующих статьях, так что пишите всё, что вам непонятно, или что ещё вы хотели бы узнать про Канбан.
      Я не то, чтобы большой специалист по этой новой методологии, но мы внутри команды пришли к Канбану самостоятельно и последовательно прошли все этапы мутации от SCRUM до Канбан, так что практический опыт есть.

      Читать дальше →
    • Связь-Экспокомм 2009, национальная операционная система и родительский контроль

        Получил на днях бесплатное приглашение на международную выставку Связь-Экспокомм 2009. Она будет проходить с 12 по 15 мая в Москве и это проблема. Я-то в Хельсинки…
        Но если есть кто-нибудь из Москвы, желающий туда бесплатно попасть — могу поделиться приглашением.

        Я бы сам с удовольствием сходил на эту выставку. Даже скорее не на выставку, а на лекции, круглые столы и презентации, ибо там есть несколько тем, на которые опытным айтишникам стоило бы прийти, чтобы подискутировать с министерскими чиновниками (да, там будут круглые столы с министерскими чиновниками).
        Например про безопасность детей в интернете или про национальную операционную систему.
        Так что попиарю выставку немного, чтобы туда попало побольше правильных людей :)

        Читать дальше →
      • Вопросы и ответы: Conficker и 1 апреля

        • Перевод
        Conficker and DownadupСейчас в интернете бродит много слухов про то, что якобы первого апреля случится что-то страшное. Conficker (Downadup, Kido) начнет использовать новый алгоритм определения доменов для рассылки обновлений, поэтому многие придумывают всякие небылицы, вплоть до «конца интернета». Некоторые товарищи даже советую не выходить в интернет 1-ого апреля.
        Вчера наши парни опубликовали FAQ про это в блоге F-Secure, а я тут привожу его перевод. Прочитайте, чтобы не поддаваться панике и знать, что именно произойдет 1-ого апреля.

        Q: Я слышал, что что-то очень-очень плохое случится с интернетом 1 апреля. Так это?
        A: Нет, не совсем.

        Q: Серьезно, червь Conficker начнет делать что-то плохое 1-ого апреля, так?
        A: Conficker aka Downadup немного изменит свой алгоритм работы, но это врядли приведет к каким-то видимым изменениям 1-ого апреля.

        Q: Так что случится-то 1-ого апреля?
        A: Сейчас Conficker генерирует 250 разных доменных имен каждый день и пытается скачать с них программу апдейта и запустить ее. 1 апреля новейшая версия Conficker-а начнет выбирать уже 500 из 50,000 доменов каждый день для той же цели — скачивания и запуска файлов.

        Q: Последняя версия? Есть несколько разных версий чтоли?
        A: Да, и последняя версия сейчас не самая распространенная. Большинство зараженных компьютеров сейчас заражены вариантом B, который начал распространяться в Январе. И в поведении этого варианта B ничего не изменится.

        Q: Я только что проверил, что моя Windows машина не заражена. Что-нибудь случится с моим компьютером 1-ого апреля?
        A: Нет!

        Q: У меня Mac, что-нибудь случится с моим компьютером?
        A: Нет!

        Q: Итак, это значит, что хакеры смогут использовать этот новый канал для скачивания и запуска любой программы на всех машинах?
        A: Да, на всех машинах, которые инфицированы последней версией червя.
        Читать дальше →
      • Модификация червя Downadup — W32.Downadup.C.

        • Перевод
        image

        Помните червя Downadup (Konficker, Kido)? Думаете это уже дела давно минувших дней и про него можно забыть?
        Вы ошибаетесь.

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

        Удивительно, но авторы не испугались и продолжают готовиться к монетизации ботнета. Все думали, что их испугает 250тыс долларов, предложенных Microsoft за поимку авторов, и они спрячутся. Но нет — они продолжают работать.

        Итак, кому интересно узнать больше про новую модификацию червя — читайте мой перевод вчерашней статьи с блога Symantec W32.Downadup.C Bolsters P2P:
        Читать дальше →
      • Москвич получил условный срок за установку пиратского ПО

          image

          Вот так новость:

          Тридцатилетний москвич Александр Зиновьев был приговорен Химкинским городским судом к двум годам лишения свободы условно с испытательным сроком два года за установку пиратского программного обеспечения, сообщает Интерфакс.
          По данным следствия, в июле 2008 года Александр Зиновьев установил на десять компьютеров одной из школ города Химки контрафактные версии программного обеспечения Microsoft, 1C и Adobe. В результате правообладатели понесли ущерб в размере 443 тысяч рублей.

          Учитывая, что больше, чем у 90% людей в России есть нелицензионные программы на компьютере — теперь все под угрозой суда и уголовного срока. Прецедент создан.

          При этом обратите внимание — он установил ПО не на домашний комп, а на компьютеры в школе. Так что, если вы админ и ставите нелицензионное ПО — вы и будете отвечать за всё, а не тот, кто не хочет платить за него.

          Еще забавная новость на ту же тему: Депутат нашел в Госдуме пиратские программы. Депутатов тоже будут судить?
        • Игры и люди

            Навеяно сегодняшним постом про контроль над играми в Германии. Думаете в России всё по-другому?

            Вчера в «Вестях» по второму общероссийскому каналу показывали сюжет про компьютерные игры. Если кто его пропустил — посмотрите его на youtube обязательно. Это то, как думают обычные люди про компьютерные игры. По крайней мере такое отношение к играм им пытаются вложить в голову. Там же приплетена и преступность и убийства под впечатлением от компьютерных игр.

            Этот «журналист», автор сюжета, приходил в несколько компаний и снимал интервью, задавал разные вопросы. А потом просто выкинул всё положительное и оставил только мерзкие и неприятные моменты, вырванные из контекста, вроде:

            «Это возможность выпустить пар, — считает креативный директор компании по производству компьютерных игр Илья Овчаренко. — Ты рубишь головы лопатой, испражняешься на прохожих и делаешь все, что хочешь. Адекватный человек никогда не пойдет на улицу рубить лопатой головы»

            Каково, интересно, обычным людям слушать такие фразы? И какое у них отношение после этого будет к разработчикам игр и тем, кто в них играет?

            P.S.: На сайте Вестей опубликована текстовая версия сюжета.
          • Россия во Мгле (тревога простого предпринимателя)

              Хочу предложить всем прочитать статью директора фирмы, где я раньше работал — человека умного, опытного и много думающего.
              Этот текст был написан полтора года назад и тогда его многие восприняли в штыки — им казалось, что всё слишком хорошо и так и будет продолжаться, а о назревающем кризисе кричат только паникеры.
              Но что мы имеем сейчас?
              Посмотрите на график РТС, на его падение в течение месяца, на цену нефти и ее динамику, на рост инфляции и падение производительности труда, а потом прочитайте эту статью, написаную полтора года назад. Кто тут пророк?

              Итак, статья (соблюдена авторская орфография и экспрессия):

              Я хочу жить на Родине!!!, но боже!!! как я устал от всего этого…

              Итак, Россия вступила в полномасштабный экономический кризис. Вы это еще не заметили? Ничего, скоро и вы заметите…

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

              Читать дальше →
            • Не мешайте мне работать!

                Наверняка не ошибусь, если напишу, что каждый программист хочет работать максимально эффективно, а каждый работодатель хочет, чтобы все его работники были максимально эффективны. Однако на самом деле часто бывает так, что даже самый мотивированный и профессиональный программист не может работать эффективно, а работает только на 10-20% своей силы. И постепенное его мотивация угасает, а 10-20% превращаются в 1-5%.
                Из-за чего это может происходить?
                А происходит это из-за многочисленных преград, которые мешают работать эффективно.
                Часть из этих преград невозможно убрать, не сменив работу, а с большинством можно бороться и побеждать их и именно об этом пойдет речь в этой статье.
                Ниже — мой личный топ-список таких преград с комментариями для программистов и примерами из моей жизни.
                Думаю, примерно такой же список актуален и для других IT-профессий.

                Читать дальше...
              • Про брейкпойнты

                  Думаю не ошибусь, если напишу, что каждый программист когда-либо пользовался отладчиком, отлаживал программу пошагово, устанавливал брейкпойнты и т.п. При этом некоторые программисты не любят отлаживать. Другие — обожают. А большинство просто использует отладчик не задумываясь о любви и ненависти, ведь это просто еще один удобный инструмент для работы.
                  Для многих программистов отладчики — это черный ящик. Они умеют с ним обращаться, но не знают, как он работает. Я не говорю, что это плохо — в подавляющем большинстве случаев можно легко отлаживать программу без знания устройства отладчика.
                  А для тех, кто хочет заглянуть внутрь черного ящика, я написал эту небольшую статью.
                  Тут я расскажу про одну из самых загадочных (по крайней мере для меня) возможностей отладчиков — про работу с брейкпойнтами. Я постараюсь рассказать это максимально просто и без лишних деталей. Однако я пишу эту статью для тех читателей, который уже знают что такое брейкпойнты и умеют их использовать.

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

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

                    Проблема в том, что некоторые люди любят минусовать, или у них плохое настроение и они минусуют, или они кому-то хотят навредить и минусуют. Короче говоря, есть много поводов минусовать (сам грешен, каюсь). И сейчас ничто не сдерживает хабрапользователей от минусования. Можно вообще расставлять одни минусы и никого не плюсовать.
                    Моя идея проста и, имхо, вполне попадает в струю Web2.0 и в идею саморегулирования хабрахабра пользователями.
                    Я предлагаю выводить в профиле пользователя кроме кармы и хабрасилы еще и баланс оценок (сумма плюсов и минусов), которые он выставил за последний день\неделю\месяц.
                    Если плюсов выставил больше, чем минусов — число положительное. Если минусов больше, чем плюсов — отрицательное. Чем больше число, тем больше разрыв между плюсами и минусами.
                    Также можно сделать ежедневные и ежемесячные рейтинги — главные плюсовальщики и главные минусовальщики дня и месяца. Возможно такая фича заставит многих людей ставить меньше минусов и больше плюсов.

                    А что Вы думаете по поводу этой фичи?
                  • С днем тестировщика!

                      Сегодня как-то малозаметно прошёл праздник — день тестировщика, а между тем эти люди не менее важны в нашем деле, чем программисты и дизайнеры. Именно от них зачастую зависит финальное качество новых продуктов.

                      Поздравляю всех тестировщиков и других служителей культа QA с профессиональным праздником!

                      P.S.: По этой ссылке можно прочитать почему этот день именно 9 сентября и почему ошибки называют багами.
                    • Первый в мире компетентный программист

                        Представляю вашему вниманию известную притчу от Дейкстры — от одного из самых известных людей в мире компьютерной индустрии.

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

                        Вот одна из его притч, которая мне, как программисту, очень нравится:
                        Читать дальше →
                      • How Non-Member Functions Improve Encapsulation (C++)

                          Листал старые журналы и наткнулся на широко известную в узких кругах статью Scott Meyers: How non-member functions improve encapsulation. Если кто-то ее еще не читал — прочитайте обязательно.
                          Мысль там излагается понятная и верная, но все же по-моему в статье есть большая недосказанность.
                          Говоря кратко, в этой статье Мейерс утверждает, что вынесение функций из класса всегда делает код более инкапсулированным.
                          Читать дальше →
                        • Какие методы мотивации сотрудников в IT реально работают?

                            Хорошая мотивация сотрудников — это по сути важнейшее условие успешности любой компании. Не только в сфере IT, но в IT — особенно. Ведь известно, что мотивированный сотрудник может сделать работу в разы быстрее и, главное, качественнее.
                            Надо сказать, что всевозможных методов мотивации сотрудников известно очень много. Казалось бы, что нет ничего проще — читай, внедряй и получай эффективных и мотивированных сотрудников.
                            Однако последнее время всё чаще встречаются статьи, где авторы пишут, что финансовая мотивация — это зло. Например одна из лучших статей Joel Spolsky О вреде премирования. А некоторые и вообще пишут, что метод кнута и пряника уже не работает.
                            Мало того, в России до сих пор многие руководители не понимают важности мотивации и лояльности сотрудников и уделяют этому вопросу недостаточно внимания, считая, что сотрудник должен быть доволен уже самим фактом работы в компании.
                            При этом есть множество книг и статей, где одни руководители и менеджеры рассказывают другим про то, какие методы мотивации наиболее эффективны. Но знают ли они про это на самом деле? Не правильнее ли про лучшие методы мотивации узнавать у тех, кого пытаются ими мотивировать?
                            Я не собираюсь тут писать еще одну статью про мотивацию — их и так много, хотя мог бы, так как побывал и программистом и менеджером и пробовал разные методы мотивации на себе и на других. Но сейчас я хотел бы просто задать несколько вопросов.

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

                            Задумайтесь и напишите в комментариях, какие из методов мотивации наиболее сильно воздействуют именно на вас?
                            Так ли бесполезны и вредны премии в вашем конкретном случае? Премии за что вы считаете наиболее и наименее мотивирующими?
                          • Использование общего C++ кода на примере браузера Chrome

                              Думаю ни для кого не секрет, что новый браузер от Google — это open-source продукт, написанный на C++. Каждый может скачать его исходники на C++ и собрать свой собственный браузер из них.
                              А сегодня мне встретилась интересная статья Code Reuse in Google Chrome Browser. Там автор проанализировал использование общего open-source кода в этом проекте Google и нашел его превосходным. Он обнаружил как минимум 26 разных библиотек, используемых в этом проекте и описал их все в одной таблице…
                              Я решил сначала перевести эту таблицу на русский, т.к. она может быть полезна всем разработчикам на C++ — там много реально полезных open-source библиотек. Но эта таблица настолько проста, что перевод был бы бессмысленным — каждый сам легко разберется.
                              Многие из этих библиотек будут полезны не только Web-разработчикам.

                              А сколько open-source библиотек используется в ваших проектах? И каково отношение руководство к open-source?
                              На предыдущем месте работы мы использовали несколько таких библиотек — zlib, LuaPlus, TinyXml, CppUnit, библиотеки для работы с графикой (типа libpng ) и т.п.
                              А на новой работе отношение к open-source отрицательное и почти ничто из open-source не используется — все пишется свое с нуля.
                            • Программистская графофилия и языки программирования

                                Продолжение и, скорее всего, окончание моего исследования про графы из текстов.
                                Мне подсказали страницу, где есть реализация одного алгоритма (QuickSort) на разных языках программирования, а значит есть отличная возможность сравнить графы этих «одинаковых» программ.
                                Под катом полученные графы для языков: C, C++, Java, Visual Basic, Delphi, Python, Php, Prolog, Fortran, Ruby, Haskell, Algol, Mathematica, Asm.
                                Попробуйте не заглядывая под кат угадать, какой граф будет наиболее красивым и какой самым страшным?

                                Смотреть картинки...
                              • Программистская графофилия

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

                                  Читать про реализацию и смотреть графы...
                                • Не оскорбляй и не оскорблен будешь…

                                    На востоке жил мудрец, который так учил своих учеников:

                                    Люди оскорбляют тремя способами. Они могут сказать:
                                    — что ты глуп,
                                    — могут назвать тебя рабом,
                                    — могут назвать тебя безумцем.

                                    Если такое случилось с вами, вспомните мою истину: «Только дурак назовёт дураком другого, только раб ищет раба в другом, только бездарь оправдывает того чего не понимает, чужим безумием.»

                                    Поэтому, дети мои никогда не на кого не обижайтесь, и не оскорбляйте сами, что бы не прослыть глупыми бездарными рабами…