Рынок аналитиков и руководителей проектов

Наша компания занимается внедрением информационных систем.

Есть мощная платформа собственной разработки. Так получается в жизни, что текучка персонала есть. Сотрудники, к которым меньше всего нареканий, задерживаются в компании на 3 – 5 – 7 лет. Но все растет, все меняется: и компания, и рынок, и сотрудники, жизнь-есть-жизнь. Также меняется поиск новых людей, требования к ним, суть задач и прочее.

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

Получение CISA. История одного сертификата и помощь интересующимся

Эта история о том, как я получал сертификат CISA, чтобы стать сертифицированным аудитором информационных систем и присоединиться к армии из более чем 100.000 профессионалов (по утверждению самой ISACA). Думаю в общем виде аналогия может быть расширена на CISM, CGEIT и CRISC.

Сертификация довольно популярная, в России, судя по явке на экзамен, сдают пытаются сдать многие, но не так много материалов о том, как готовиться и просто личного опыта на эту тему. Я решил исправить эту ситуацию.

Получение CISA. История одного сертификата и помощь интересующимся

(далее…)

Как сделать качественный дизайн с ограниченным бюджетом?

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

Я хочу рассказать, как можно сделать качественный дизайн с ограниченным бюджетом.
(далее…)

Сисадмины. Поколение NEXT

Некоторое время назад, мне довелось в рамках совместного проекта пообщаться с представителями мелкого интегратора Москвы. В том числе, я ради интереса поговорил с ребятами, которых называли отделом системных администраторов. Средний возраст — 26 лет, многие имеют по 3-4 сертификата от Microsoft или даже Oracle. Занимаются биллинговой системой одного очень крупного оператора России. Это лицевая часть, солидная, но существует и другая, теневая сторона, которую обычно прячут от посторонних глаз и о которой я узнал исключительно потому, что пообщался с работниками. Наиболее полно эту часть характеризует диалог, который состоялся у меня с таким «администратором»:
(далее…)

Новая услуга: регулярный аудит Си/Си++ кода

PVS-Studio, аудит кода

До недавнего времени мы занимались исключительно развитием и продажей продукта PVS-Studio. Потом мы подумали и решили предлагать новую услугу: регулярный аудит кода. Про неё я и расскажу. Статья предназначена для менеджеров и тимлидов. Дабы не портить себе настроение и не минусовать, программистов прошу статью не читать.
(далее…)

Alfa Camp 2014: 94 участника за 5 недель реализуют свои идеи и представят инвесторам

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

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

Задумавшись обо всем этом, мы и решили организовать Alfa Camp. Это программа развития финтех-стартапов как раз и призвана дать молодым инновационным командам ресурсы, необходимые им для воплощения своих идей. (далее…)

«Как сделать что-то колоссально полезное». Alfa Camp 2014 начал работу

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

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

Задумавшись обо всем этом, мы и решили организовать Alfa Camp. Это программа развития финтех-стартапов как раз и призвана дать молодым инновационным командам ресурсы, необходимые им для воплощения своих идей. (далее…)

Перестаньте называть себя программистом и другие карьерные советы

Есть один курс, который я бы добавил в программу обучения по всякой инженерной специальности, и он не о компиляторах или сложности алгоритмов. Это “Введение в реальность индустрии”, ибо об этом не говорят и это приводит к никому не нужным обломам. Эта статья претендует стать README.txt для молодого инженера в деле построения карьеры. Ее цель — сделать вас счастливее, заполнив пробелы в образовании относительно того, как работает реальный мир. Я не призываю следовать написанному как подробному руководству, но я надеюсь, что эта информация окажется для вас более ценной, чем то ничто, что вам рассказали об этом в университете. (далее…)

Переезд электронщика в Шэньчжэнь. А стоит ли ехать так далеко?

Переезд электронщика в Шэньчжэнь. А стоит ли ехать так далеко?

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

Это город Зеленоград

Переезд электронщика в Шэньчжэнь. А стоит ли ехать так далеко?
(далее…)

Принципы работы одного Python-разработчика

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

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

Принципы условно сгруппированы в три группы: принципы принятия решений; принципы, направленные на повышение качества кода; принципы, направленные на повышение производительности кода.

  • Принятие решений
    • Любое техническое решение должно быть обосновано
    • Ответственность за принятое решение всегда лежит на том или тех, кто принял данное решение
    • При принятии технических решений необходимо учитывать их действие во времени и их соответствие потребностям бизнеса
    • Одним из основных критериев при принятии технических и иных решений должна быть их наибольшая эффективность
    • Смело отступать от правил, методологий, шаблонов и прочих ограничений, если эффект от такого отступления превышает возможные потери (Special cases aren’t special enough to break the rules, although practicality beats purity)
    • При необходимости сделать работающее, но, возможно, не наилучшее, решение сразу, а позднее улучшить его (Now is better than never, although never is often better than *right* now)
    • Если сложно выбрать между двумя альтернативными техническими решениями, то нужно выбрать любое и двигаться с ним дальше, когда появится больше инфорации, то можно будет сделать рефакторинг, если решение оказалось неоптимальным
    • Гибкость технических решений крайне желательна, а универсальность не обязательна
  • Качество исходного кода
    • Качество кода следует оптимизировать на базе сформированной системы критериев, сбалансированной по отношению к затратам в краткосрочном и долгосрочном периодах
    • Писать оптимальный код сразу, если это не увеличивает его сложность и сроки разработки (Beautiful is better than ugly)
    • Самодокументируемый код имеет приоритет над хорошо прокомментированным (Beautiful is better than ugly)
    • Писать TODO и FIXME в коде
    • Давать переменным, функциям, методам, классам и другим объектам исходного кода имена точно отражающие их назначение, несмотря на увеличение длины названий (Explicit is better than implicit)
    • Меньшее число строк и объем кода предпочтительнее, при сохранении прежней читабельности кода (Simple is better than complex)
    • Применять инспекцию кода (code review) как инструмент обнаружения ошибок, выравнивания стиля разработки, знакомства с чужим кодом и обучения в команде
    • Применять повторное использование своего и чужого кода
    • Использовать специализированные библиотеки для решения конкретных задач, вместо разработки своего аналогичного кода
  • Производительность
    • Производительность разработки кода имеет приоритет над производительностью исполнения кода
    • Оптимизация производительности исполнения кода должна быть обоснована соответствующей потребностью
    • Оптимизация производительности исполнения кода должна выполняться за счет устранения наиболее серьезных узких мест
    • В первую очередь должны быть использованы наиболее эффективные методы оптимизации производительности исполнения кода

Далее дано развернутое пояснение каждому из перечисленных принципов. Для некоторых принципов в круглых скобках указанны постулаты Zen of Python, которые на мой взгляд имеют отношение к данным принципам, либо их частям. (далее…)