• Что делать в крупной компании при некомпетентном менеджменте

      Если хочешь, чтобы мир изменился – сам стань этим изменением.
      М. Ганди


      Опрос в предыдущей статье показал, что наиболее вам интересно «что же можно сделать», и «как же работать» в ситуации, когда топ-менеджмент компании оккупирован некомпетентными лицами. Некомпетентными как в профильном направлении деятельности компании, так и в плане управления квалифицированными инженерами, требующими немалую долю нематериальной мотивации для эффективной работы.



      В конкурентной среде эти управленцы слетели бы в один миг. Точнее – даже не попали бы на такие должности. Но они попали, благодаря родственным связям, дружбе по песочнице, повязанности предыдущими «делами». Зачастую они формируют управленческую иерархию под собой методом «отрицательного отбора» – идут на снижение качества специалистов, лишь бы «под ними» была управляемая масса, не создающая им конкуренции.


      Они образуют сообщество, получающее господдержку разнообразных видов (административную, судебную, силовую, финансовую), покрывающую ошибки управления за счет ресурсов государства. Тяжкие техногенные катастрофы являются последствием их управления.


      «Ничего изменить нельзя»? «Валим в другую систему, пока там баланду наливают погуще»?
      Вопросам как сменить место работы, проживания, гражданство здесь уже посвящено много статей.


      Но что если не хочется бросать то, что тебе дорого? Что делать, если ты хотел и дальше работать в большой и важной для страны компании?


      Давайте проведем анализ...

      Читать дальше →
    • Мастерство программирования

      • Перевод
      image

      Кент Бек — разработчик программного обеспечения, создатель таких методологий разработки ПО как экстремальное программирование (XP) и разработка через тестирование (TDD); в данный момент работает на Facebook. Вашему вниманию предлагается перевод набросков идей о том, как можно было бы сделать свою работу эффективнее. Разделение программистов на мастеров и подмастерьев, используемое на протяжении статьи, взято Кентом Беком из книги «Программист-прагматик» Эндрю Ханта и Дэвида Томаса.

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

      Ниже представлены способы, при помощи которых эффективные программисты каждый день выжимают максимум из своих драгоценных 3e9 секунд на нашей планете.

      Основной мотив набросков — раскрытие потенциала вашего мозга. Подмастерье учится решать большие задачи при помощи решения нескольких мелких задач разом. Мастер же учится решать еще большие задачи, чем подмастерье, при помощи решения меньшего количества задач разом. Важная часть мудрости здесь состоит в том, что разбивка задач должна осуществляться таким образом, чтобы интеграция независимых решений была бы меньшей проблемой, чем простое решение всех задач вместе.
      Читать дальше →
      • +4
      • 10,5k
      • 1
    • Особенности распределения фонда оплаты труда в больших предприятиях РФ

        Оказывается, в свободном доступе есть интересная информация от HeadHunter о повышении фонда оплаты труда (ФОТ) в 2015 году. Со страницы проекта "Банк данных заработных плат" идет ссылка "Сравнивайте зарплаты вашей компании с рынком".

        Прямая ссылка на pdf: Зарплаты в России. Итоги 2015 года.


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

        И вообще, многим придут на ум уже затертые шаблоны:
        • Надо не завидовать, а больше работать, и станешь таким же высокооплачиваемым топ-менеджером.
        • Не нравится – уходи и работай на себя / аутсорсь за валюту на западные компании / переезжай в другие страны.


        Но эти выводы и советы слишком уж лежат на поверхности.
        We need to go deeper.
        Давайте посмотрим, насколько же глубока эта не кроличья нора…
        Читать дальше →
      • Автоматизация оформления документации

          Работая над проектами связанными с авионикой мне потребовалось оформить несколько комплектов документации с полным описанием проекта. Также следовало учитывать требования многих ГОСТов на оформление и на содержание документации, таких как ЕСПД, КТ-178B и других.

          Описание должно было в себя включать:
          • Планы разработки ПО
          • Требования к ПО
          • Описание реализации требований к ПО
          • Таблицы трассируемости(соответствия) требований к ПО и реализации
          • Описание тестов на ПО (Примеры и процедуры верификации ПО)
          • Таблицы трассируемости(соответствия) требований к ПО и тестов
          • Отчет об обнаруженных проблемах
          • Указатель конфигурации(описание версии ПО и совместимости со сторонним ПО и оборудованием)


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



          Далее в статье я расскажу как я решил эту проблему.

          Читать дальше →
          • +7
          • 16,9k
          • 2
        • Как прервать непрерывную интеграцию

            Я — пентестер, и так получилось, что практически на всех проектах, хотя бы отдаленно связанных с анализом инфраструктуры разработчиков, мне встречаются установленные Jenkins и TeamCity (один раз я даже видел Bamboo). Немного гугла, и я выяснил, что это все — так называемые системы непрерывной интеграции. Конечно, в какой-то момент у меня в голове стали возникать вопросы вроде: «А что это вообще за системы такие?» и «Что с ними можно сделать?», естественно, с точки зрения пентестера. Ответив на поставленные вопросы, мы поймем, какую выгоду потенциальный злоумышленник может извлечь и какой вред нанести в рамках экосистемы разработчика, используя лишь имеющуюся в ней систему непрерывной интеграции.

            Agile — это модно




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

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

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

            Читать дальше →
            • +43
            • 20,7k
            • 2