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

    • Перевод
    Я часто общаюсь с людьми на тему гибких методов разработки ПО, иногда пишу статьи про это (например, недавняя статья на хабре про Канбан в 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:
        Читать дальше →
      • Не мешайте мне работать!

          Наверняка не ошибусь, если напишу, что каждый программист хочет работать максимально эффективно, а каждый работодатель хочет, чтобы все его работники были максимально эффективны. Однако на самом деле часто бывает так, что даже самый мотивированный и профессиональный программист не может работать эффективно, а работает только на 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. Если кто-то ее еще не читал — прочитайте обязательно.
                  Мысль там излагается понятная и верная, но все же по-моему в статье есть большая недосказанность.
                  Говоря кратко, в этой статье Мейерс утверждает, что вынесение функций из класса всегда делает код более инкапсулированным.
                  Читать дальше →