вторник, 24 ноября 2015 г.

Взломана база кандидатов на сертификацию Института Внутренних Аудиторов (Обновление)

В продолжение прошлого поста пару ссылок официальные позиции IIA и Pearson VUE:
  • тут официальная позиция Pearson VUE (спасибо анонимному источнику за ссылку). Очень оперативная работа PR - буквально за два дня отреагировали. В двух словах: "Нам очень жаль, что так получилось, но остальные наши системы не пострадали, в чем мы очень уверены".
  • тут можно почитать официальное уведомление  IIA, которое я поленился включить в предыдущий пост. Рекомендую обратить внимание на FAQ, который, помимо вопросов о том, что произошло, отвечает на вопросы, связанные с приостановкой работы системы. В частности, сейчас нет возможности регистрироваться на экзамены, отчитываться по заработанным CPE и т.д.

воскресенье, 22 ноября 2015 г.

Взломана база кандидатов на сертификацию Института Внутренних Аудиторов

Вчера получил уведомление от Института Внутренних Аудиторов (IIA) о взломе базы Certification Candidate Management System, которую обслуживает Pearson VUE. Согласно сообщению произошла утечка имен, адресов, телефонов, даты дня рождения и последних четырех цифр номера кредитной карты. Номера социального страхования (США) не пострадали (аллилуйя).
Безусловно, Институт "следит за ситуацией" и "выражает крайнюю обеспокоенность". В качестве следующих шагов предлагается сменить пароль в CCMS (почти также эффективно как помазать лоб зеленкой перед расстрелом) и почитать образовательную брошюрку на тему кражи личности на сайте Federal Trade Commission’s на английском и испанском языках.
Откровенно не понятно, почему молчит Pearson VUE, компания, по вине которой произошла утечка и которая обслуживает гораздо большее количество баз  кандидатов на сертификацию, включая сертификации от Microsoft, Cisco и т.д.

вторник, 22 сентября 2015 г.

Скажи мне кто твой друг... В соцсети.

Раньше мне очень нравилась сеть LinkedIn. По сути единственная  нормально созданная для бизнеса социальная сеть. Но ее лучшие времена уходят в прошлое. Лента пестрит математическими загадками для первоклассников, веселыми картинками от рекрутеров, которые считают свою работу самой тяжелой в мире, и поучительными комиксами о том, чем лидер отличается от менеджера и что сотрудники уходят не из компаний, а от плохих руководителей. Не хватает только котиков, селфи ног и граница с ВКонтакте и Facebook будет стерта окончательно. В профессиональных группах, где когда-то активно обсуждались различные интересные бизнес-темы, много месяцев стоит тишина. И только активные спамеры наполняют когда-то профессиональные группы абсолютно не относящимся к теме группы мусором. Но пост сегодня  не об этом. А о еще одном неприятном тренде последних месяцев - растущем количестве мошенников, использующих кражу личности. Вид мошенничества, появившиеся еще задолго до появления интернет, прекрасно себя чувствует в цифровой среде.

Прелесть работы мошенника  в цифровой среде в том, что нет личного общения.  Мошенник придумывает себе легенду и веером рассылает приглашение "дружить профайлами". Многие люди склонны принимать такие приглашения не задумываясь. После этого можно разослать приглашения по списку контактов новоиспеченного знакомого. Поскольку уже есть общие знакомые, о чем услужливый LinkedIn не забывает напоминать, люди еще более охотно принимают приглашения. Хорошенько нарастив базу контактов, можно переходить к основной цели. Она может быть разной - это и старое доброе выманивание денег, и рассылка спама, и очень популярные сейчас "формирование общественного мнения" Ыкспертами. Я и раньше получал и описывал забавные приглашения (раз, два). Обычно мошенники делают свой профиль достаточно лениво - плохо продуманная легенда, отсутствие деталей в профиле и первое попавшееся в интернете фото. Яркий пример с министром республики Гана. Я находил их забавными и последнее время даже не упоминал. Но их количество выросло с одного-двух за год до пол-дюжины за месяц, а мои знакомые продолжают принимать приглашения. Поэтому решил еще раз напомнить знакомым (и незнакомым), что принимать приглашение в социальных сетях от всех без разбора, не самая удачная практика. Сегодняшний пациент мне показался интересным, так что я решил остановиться на его примере. Итак, знакомьтесь - James Gibson и его профайл.

Достаточно беглого взгляда, чтобы увидеть, что профиль липовый. Невнятное описание профессии и отсутствие названия компании (1), работа только в одной  компании без названия (4) в Украине (2),  полное отсутствие деталей о себе (6). Обычно в этом месте я нажимаю кнопку "отклонить", а затем "сообщить о спаме". Но, поскольку у него уже было 138 контактов (3) и наличие общих знакомых(5),  я решил посмотреть более детально. Поскольку единственным источником информации было фото - его и использовал для поиска.
Результат меня удивил. Это оказалась не просто украденная в интернете фотография, а набор фото, используемых мошенником в различных профилях социальных сетей.

Легким движением руки брюки превращаются  украинский сотрудник превращается в британского ....
Facebook
Frank Desmond
Worked at Construction engineering
Studied at Harvard University
Lives in Westbury, Wiltshire
From London, United Kingdom

И в американского...

person.com
Lucas Henshaw
47 y.o.
Orlando
United States

Facebook
Henshaw Lucas
Worked at Sales Managers
Studied at University of Houston
Lives in Orlando, Florida
From Houston, Texas



В конце концов, ваше дело с кем дружить в социальной сети. Главное понимать кто эти люди и каковы их намерения.



понедельник, 29 июня 2015 г.

Зачем нужен ИТ-аудитор функции внутреннего аудита?

Обратился недавно к моему коллеге один из руководителей службы внутреннего аудита крупной компании с вопросом - для чего нужны аудиторы ИТ? Ситуация вроде бы даже забавная - кому, как не руководителю функции лучше знать зачем ему те или иные специалисты? Но, на самом деле, случай этот не единственный. Ко мне с таким же вопросом неоднократно обращались коллеги по ремеслу - руководители внутреннего аудита различных компаний.
За свою карьеру я успел и позаниматься ИТ-аудитом и поруководить внутренним аудитом, состоящим в том числе и из ИТ аудиторов. Поэтому я решил набросать свое видение - для чего все-таки ИТ-аудиторы нужны и какая от них польза.  Наверное, правильно было бы назвать пост "Зачем нужен ИТ-аудитор руководителю функции внутреннего аудита?".
Как получается, что у руководителя есть ИТ-аудиторы, но он не знает зачем? Чаще всего такая ситуация происходит, когда руководитель внутреннего аудита приходит на данную позицию из внешнего финансового аудита, а аудит ИТ уже есть в структуре. И  новоиспеченный руководитель думает - стандарты и "ведущие практики" говорят, что "должны быть". Опять же аргумент, "у других компаний есть, а мы не хуже". В общем, пригодится. Но потом начинают всплывать различия внешнего финансового аудита и внутреннего. В финансовом, с точки зрения вовлечения аудиторов ИТ - все просто. Привлекаем спецов из соседнего подразделения для оценки общих ИТ-контролей,  "потому, что требование 315 стандарта".  Найдут что-то - напишем рекомендации "не делайте так, потому, что это риск для финансовой отчетности". Не найдут - ну и славненько. При подаче результатов руководству главное - дать мнение о финансовой отчетности. А информационные технологии - дело десятое. Во внутреннем аудите все чуть-чуть по-другому. Помимо целостности и достоверности финансовой отчетности, которая немного уходит на второй план (ведь есть внешний аудит - зачем дублировать усилия?), появляется обширный круг вопросов по эффективности и результативности операционных процессов. Объем работ огромный, ресурсов -  как всегда мало. Приходится жертвовать проверками определенных областей, оставляя в плане самое важное. И нужно все рисковые зоны закрыть и хотелки акционеров, аудиторского комитета и менеджмента постараться учесть и обосновать почему это будем смотреть, а это - нет... А тут аудитор ИТ. Текст отчета - черт ногу сломит. Сплошные технические  термины и аббревиатуры, понятные только специалистам ИТ и иногда информационной безопасности. Из рисков - несоблюдение стандартов с непонятными названиями вроде Cobit или ITIL и рекомендации срочно привести все в соответствие.   Или результаты проверки систем с точки зрения безопасности и  результат - найдено 1658 уязвимостей на каждом(!) компьютере  - компания в опасности! Срочно все исправить! Ответ руководства ИТ и безопасности достаточно однообразны: "все сделаем за пару лет, если выделить 100500 млн. денег и утроить штат". Такие отчеты приводят руководителя внутреннего аудита в ужас.  Кто вообще такой этот Cobit и почему ему нужно соответствовать? Как такие результаты показывать руководству компании и аудиторскому комитету? Для них такой отчет прозвучит как "бла-бла-бла ненужные затраты". И возникнет вопрос к компетенции уже руководителя внутреннего аудита - зачем потратил дефицитный ресурс на ерунду? Возникает жгучее желание рубануть шашкой аудитора ИТ и взять на освободившееся место простого и понятного операционного аудитора.
Обычно такая ситуация возникает с начинающими ИТ аудиторами, имеющими неплохой технических бэкграунд, но недостаточно опытными как аудиторы. Типичные ошибки, которые они делают, описаны тут и тут. Там же можно почитать что с этим делать. Конечно, переобучение ИТ аудитора - дело ресурсоемкое и возникает соблазн все-таки его уволить. Почему этого делать скорее всего не нужно?  Поменять ИТ аудитора на "правильного" - задача очень непростая. Представьте себе человека, который не только хороший специалист в ИТ, но и отлично понимает бизнес-процессы, а главное - может говорить с бизнесом на понятном языке. Достаточно редкая ситуация, не так ли? Если учесть, что такие люди предпочитают работать в бизнесе, а не в ИТ. А теперь добавляем  к этим качествам еще и хорошее знание аудиторских процедур и стандартов, и мы получим специалиста, встречающегося в природе чуть-чуть чаще, чем  невидимый розовый единорог. Спрос на аудиторов ИТ появился относительно недавно, поэтому специалистов на рынке крайне мало. Избавившись от неопытного можно остаться вообще без никакого.
Так зачем он все-таки нужен? Информационные технологии должны интересовать главу внутреннего аудита как минимум по двум причинам:
  1. Информационные технологии - это не вещь в себе. Они являются важной частью  большинства операционных процессов компании. И несут с собой не только преимущества автоматизации, но и целый букет рисков. Правильно ли работает та часть процесса, которая выполняется системой?  Надежно ли защищены данные в системе от неавторизованных изменений? А от утечки? Как будут работать процессы, если система перестанет работать в результате непредвиденных обстоятельств? Сможет ли компания выполнять основные операции, пока систему будут восстанавливать? Правильно ли распределены доступы в системе? Нельзя ли их обойти и нарушить правила разделения обязанностей для каких-нибудь своих выгод?
  2. Информационные технологии имеют паскудную привычку стоить дорого. Не только с точки зрения капитальных инвестиций,  но и операционная поддержка обходится компании в копеечку. Если копания потратила очередные $10,000,000 на новую CRM-систему, DWH или еще Бог знает какую систему - наверняка она должна была что-то весомое получить взамен? Например, рост продаж или скорость обслуживания клиентов. Наверняка есть смысл оценить бизнес-кейс для новой системы и понять получила ли  компания ожидаемые выгоды от потраченных ресурсов. Удовлетворяют ли используемые решения текущим потребностям бизнеса? Смогут ли удовлетворить будущим? Ведь бизнес развивается, и то решение, которое подходило сегодня, завтра может повиснуть жерновом на шее и завалить все усилия стратегов и маркетологов. 
Так вот такими вопросами и должен заниматься аудитор ИТ. И писать он должен отчеты понятные и риски должны быть понятные и измеримые. Желательно в деньгах. Если у вас после прочтения отчета не сложилось понятной картины и сложилось впечатление , что работа сделана плохо - скорее всего, так и есть. Что я рекомендую делать в таком случае:
Непонятно что смотрели и зачем.
Наиболее вероятно, что проблема в чересчур большой автономии ИТ аудита в вопросах планирования. Как годового, так и при составлении программы каждой отдельной проверки. Если годовая программа уже составлена - нужно срочно ее пересмотреть.
В годовом плане для каждой проверки, которую будет делать аудит ИТ (как и для любой другой), должен быть четко сформулирован риск, который обосновывает необходимость проверки.  При этом формулировка должна быть понятной не только аудитору ИТ, но и для Вас, как руководителя функции.
Но как я пойму, если  ИТ - это адское мракобесие, в котором я ничего не понимаю, и ИТ аудитор может навешать лапши? Способность объяснять технические вещи простым языком, понятным нетехническим специалистам - одна из ключевых компетенций ИТ аудитора. Если ты что-то не можешь объяснить своей бабушке - ты это не до конца понимаешь. Не помню кому принадлежит фраза, но полностью с ней согласен.
Еще в плане необходимо высокоуровнево определить объем аудиторских процедур. Это позволит в дальнейшем снизить риск "растекания" аудиторских процедур, делающего проверку бесконечной. В процессе составления рабочей программы нужно снова вернуться к этой теме и проработать более детально три вопроса:
  1. Почему мы будем делать данную процедуру? (риск), 
  2. Как мы будем делать данную процедуру? 
  3. Что мы в результате хотим получить?  
Вопрос "Почему" рассмотрим чуть-чуть позже в "академическом" аудите.  Вопрос "что хотим получить?" рассматривать не будем, поскольку ответ очевиден - мы хотим ответ на вопрос "Почему мы это делаем?". Рассмотрим вопрос  "как будем делать?".  Когда аудитор ИТ составляет программу, это чем-то похоже на то, как Киса Воробьянинов в экранизации "12 стульев" отрабатывал фразы для попрошайничества на различных языках - гебен мир зи битте...ну это я знаю. А в процессе проверки начинают всплывать нюансы. И уже все не так понятно, время идет, работа - стоит. Для борьбы с такими ситуациями я использовал следующую практику. Мы делали встречу с командой аудита ИТ и они  рассказывали каждый пункт программы. В ключе тех самых трех вопросов.  Не скажу, что эта процедура поначалу будет приносить кому-то радость. Будет жуткое сопротивление со стороны ИТ аудиторов, которые считают, что "в общем, понятно - побежали". Да и Ваше время (и нервы) на это уходит прилично. Но попрактиковав данный подход несколько раз ИТ аудиторы  начинают понимать чего от них хотят и делают быстрее, а результат - гораздо лучше. 
Академический аудит. Основной признак такого "полезного" аудита - риски в отчете -  это несоответствие мифическим "ведущим практикам". Частный случай тех же проблем планирования. Возникает, когда ИТ аудитор проводит проверку на соответствие какого-нибудь стандарта из серии "ведущих мировых практик", которые часто ошибочно называют "лучшими". Причем годовое планирование могло быть выполнено корректно, а "практики" выползли при подготовке аудиторской программы. Или аудитор начал пасти бумажных тигров при выполнении процедур. В таких случаях рекомендую поработать над восприятием ИТ аудитора целей и задач аудита. Объяснить, кто является основным получателем отчета,  образ мышления руководства и подходы к принятию решения. ИТ - поддерживающая функция и риски должны оцениваться не с точки зрения "ИТ и лучшие практики", а "ИТ и потребности бизнеса". То, что какой-то консультант где-то написал, что "так делают многие компании", абсолютно не значит, что ваша компания должна делать точно также. Если нет понятных рисков - необходимости внедрять "практики" или что-то еще весьма сомнительна. Оцифровка технологических рисков в понятные для  бизнеса метрики - одна из самых сложных задач. Но никто ведь не говорил, что будет просто?  Если что-то кажется неправильным - сколько бизнес от этого потеряет? Или недополучит? Это, кстати, поможет и в исправлении следующей, достаточно распространенной ситуации. 
100500 копеечных рисков.  Сейчас достану костюм Капитана Очевидность и сообщу, что аудит ИТ ничем не отличается от обычного операционного аудита с точки зрения материальности и концепции  управления рисками. Нужно объяснять концепт материальности и отношение руководства к копеечным проблемам в отчетах. Соотношения "зарплата аудитора ИТ и отвлеченных им от работы сотрудников" к "польза от устранения выявленных проблем для бизнеса". Соотношение "польза от устранения выявленных проблем для бизнеса" к "риски, неохваченные аудитом по причине недостатка ресурсов".
В общем, главное помнить, что ИТ - это не высшая магия, а поддерживающий бизнес процесс. Точнее набор процессов. И оценивать их с точки зрения пользы для бизнеса. И тогда польза от ИТ аудитора станет более очевидной. И это далеко не вся польза, которую может принести аудитор ИТ. Например, его можно использовать для улучшения качества аналитики данных и CAATS процедур. Но об этом как-нибудь в другой раз.

четверг, 30 апреля 2015 г.

Awesome R

В продолжение темы ресурсов  для изучающих R.
Qin Wenfeng собрал отличную подборку ссылок под названием Awesome R. Это действительно потрясающая подборка ссылок  на материалы по программированию на R, пакетам и вспомогательному софту. Все красиво структурировано. Список можно найти в репозитории автора на GitHub.
В мемориз однозначно.

вторник, 14 апреля 2015 г.

Открытые государственные базы данных - свободно, бесплатно и досупно?

Читаю на прошлой неделе новости -  Рада поддержала законопроект № 2171,"О внесении изменений в некоторые законы Украины о доступе к публичной информации в форме открытых данных". Основная суть такая: информация публикуется на едином портале открытых данных в формате, «который позволяет автоматизированную обработку, свободный и бесплатный доступ» к таким данным.
Отличная идея, только... это же уже все есть? Пару лет как. Хотя... Пройдемся еще раз по формулировкам:

Единый портал

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

Позволяет автоматизированную обработку

Моя  любимая часть. Ни один из реестров не рассчитан на автоматическую обработку данных. Более того, каждый реестр снабжен защитным механизмом в виде капчи, которая, в общем, и создавалась как защита от автоматической обработки. Причем каждый реестр обладает своей, и если вдруг какой-то из сервисов предлагает поиск по трем реестрам - необходимо ввести три(!) капчи.
По всей видимости, новый единый портал будет выглядеть  так:
Единственный (пока) не закрытый капчей известный мне реестр - Единый государственный реестр судебных решений.
Но, даже если убрать капчу, информация абсолютно не пригодна к автоматической обработке. Ну, хорошо. Абсолютно - это немного перегиб. Информация красиво форматирована для печати. Остается только написать свой парсер, и вперед... Ах, вы не умеете? Пригласите специалистов за недорого. 
Кстати, о недорого.

Свободный и бесплатный доступ

Парадокс, но так совпало, что до появления этого законопроекта доступ ко всем реестрам был свободный и доступный. И вот, ошибка выявлена и исправлена.  Все поисковые  сервисы Единого государственного реестра  юридических и физических лиц, который были абсолютно бесплатными, ссылаются на "новое место" на сайте Минюста. А там, ссылаясь на закон № 191-VIII, предлагают старый, привычный способ: создай заявку, заплати, получи справку. По крайней мере, не нужно бежать в банк - принимают карточки. Аргументация почему стали взимать плату - деньги пойдут в Государственный бюджет.
Ждем скидок, распродаж, абонементов и талонов.
Отдельно удивило заявление:
Электронные документы имеют такую же юридическую силу, как и бумажные. Аутентичность каждого электронного документа подтверждается его номером, благодаря возможности повторной загрузки сформированного документа.
<сарказм> Это было откровение. Не знал, что аутентичность документа определяется его номером. С другой стороны, я согласен, что если аутентичность документа определятся его номером, то юридическая сила у бумажного и электронного будет одинакова. Хотя бумажный будет практичнее. Главное, чтобы бумага была мягкой.  </сарказм>

Сухой остаток.

О чем я там в начале писал? Все уже есть? Ну, да. Почти. Почти единый, почти бесплатный, почти удобный. 

вторник, 10 марта 2015 г.

Как быстро обновить R и пакеты под Windows

Как вы знаете, R недавно обновился до версии 3.1.3. Подробности о новшествах можно почитать тут. Я же хочу рассказать как его быстро обновить. В самом обновлении R нет ничего хитрого - удалил старую версию, скачал и поставил новую и... начал вспоминать какие из 100500 пакетов были установлены.
Для решения данной задачи понадобится пакет installr, который можно взять из стандартного репозитория.
Данный пакет позволяет в три команды обновить версию R, перенести установленные пакеты и, если есть желание/необходимость, обновить их до последней версии.  
Для этого в командной строке вводим следующие команды (разумеется, нужен доступ к интернету):

install.packages("installr") # Устанавливаем пакет из репозитория
library(installr) # Загружаем его
updateR() # Запускаем обновление

После запуска появится окошко с сообщением о наличии новой версии. Жмем ОК.
Появляется вопрос о желании почитать о новой версии. Если желание есть - читаем.
Далее следует вопрос о желании установить новую версию R. Поскольку это было нашей целью, соглашаемся. После согласия идет скачивание стандартного установочного дистрибутива R и запускается стандартная установка.
По завершению задается вопрос о желании скопировать установленные пакеты из старой версии в новую. Соглашаемся.

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

Далее следует вопрос об обновлении пакетов в новой версии. Комментарий тот же, что и к обновлению R.
После обновления (или не обновления пакетов) появлется вопрос о необходимости запустить RGui.exe. Я делал обновление из RStudio, я не увидел такой необходимости.
Далее вопрос о  выходе из R - соглашаемся. Выдается сообщение о прерывании сессии R - жмем start new session. Собственно, все.
Если вы обновлялись в RStudio, ее необходимо перезапустить. Также по желанию можно удалить старую версию R.

воскресенье, 11 января 2015 г.

Ссылки для изучающих R

Как обещал в прошлом посте, привожу наиболее интересные (на мой взгляд) ссылки по R. Список не исчерпывающий, но для начала сойдет.
Электронные курсы
  • (ENG) Программирование на языке R - бесплатный дистанционный курс от Johns Hopkins University  на Coursera. Стартует каждый месяц. Нагрузка 3-5 часов в неделю. Дает неплохую вводную. Рекомендую также ознакомится с пакетом SWIRL. Он идет факультативно, но, во-первых, дает дополнительные балы, во-вторых, раскрывает моменты, которых нет в лекциях. Эти знаниям потом пригодятся при выполнении лабораторных работ и тестов. Курс рекомендует предварительно пройти предварительно другой -  Data Scientist's Toolbox. Если Вы знакомы с Git и GitHub - этого можно не делать. Если нет, ИМХО значительно проще прочитать об этом за 10 минут на форуме курса по R, чем тратить месяц на прохождение  Data Scientist's Toolbox. И лучше это сделать заранее. Лабораторные работы и тесты имеют строгие дедлайны и будет крайне обидно выполнить задание и застрять в вопросе как опубликовать результаты.  Кроме навыков работы с Git и GitHub и очень поверхностного обзора R и Rstudio, курс Data Scientist's Toolbox является вводным курсом в специальность Data Science. Специальность состоит из девяти курсов  по анализу данных с использованием R. Для освоения всей специальности нужно не менее трех месяцев, при условии, что параллельно будет изучаться не менее трех курсов. Взаимозависимость курсов описана тут.
  • (ENG)  An Introduction to Statistical Learning with Applications in R - 15-часовой виде-курс посвященный машинному обучению. Зеркало.
  • (ENG) Подборка вводных курсов по R на DataCamp.
Блоги
  • (ENG) R-bloggers - один из крупнейших англоязычных хабов посвященных R. На текущий момент публикует посты 563(!) блогеров. Порядка 200 постов в месяц. Разнообразно и интересно.
  • (РУС) R: Анализ и визуализация данных - блог Сергея Мастицкого. Неплохие обзоры событий в мире R. Кроме того автор блога - соавтор книги "Статистический анализ и визуализация данных с помощью R" из которой можно почерпнуть множество полезных советов.  Книга  распространяется бесплатно со всеми данными и скриптами.
  • (ENG) R graph gallery - более сотни практических примеров визуализации данных с помощью R.
  • (РУС) Блог странного учёного - помимо других тем периодически пишет о R.
  • (ENG) Data Science - Hyderabad - Data mining, статистика, машинное обучение и многое другое.
Группы и базы знаний

суббота, 10 января 2015 г.

Если место R в жизни аудитора?

С полгода назад, делая обзор... Наверное "обзор" слишком громкое слово для столь скромного размера поста, скорее несколько мыслей о том, что платному софту  есть достойная альтернатива... В общем в списке  бесплатного аудиторского софта я уже упоминал R. Сегодня хочу остановиться на нем подробнее.
Но сначала небольшая подводка для отдельных  ортодоксов-староверов, которые уже наверняка начали ворчать что-то на подобии: "зачем нужно тратить время на изучение еще одного инструмента, если есть Excel и, для сложных случаев, SQL?". Если данный вопрос не мучает - можно пропустить пару абзацев. В самом деле, Excel - очень мощная штука, в которой можно сделать массу различной полезной аналитики и очень быстро. Основными проблемами, с которыми сталкивались аудиторы, были количество строк, которое можно было обработать и задачи, в которых необходима обработка нескольких связанных таблиц. В этих случаях как раз и приходил на выручку SQL. Но Excel активно развивается. Сначала убрали досадное ограничение в 65,535 строк и  ... довели его до нелогичного и не круглого (с точки зрения программистов) 1,000,000 строк. Проблему это сильно не решило, поскольку при попытке обработать 300-400 тысяч строк начинаются серьезные проблемы с производительностью,  а на задачи по обработке нескольких таблиц количество строк влияет ... никак. Поняв, что переписывать движок с нуля - удовольствие дорогое и трудоемкое, разработчики сделали элегантный реверанс в виде отдельного адона  (а, начиная с версии 2013 года - встроенного функционала) под названием PowerPivot. Это была настоящая революция. Во-первых, ушло ограничение в количестве строк. Во-вторых, можно объединять различные таблицы по ключевым полям и "крутить" объединенные данные в привычном пивоте. В-третьих, таблицы можно объединять из нескольких источников (например, база данных + таблица Excel + текстовый файл + еще одна база данных). В-четвертых,  язык выражений анализа данных (DAX), позволяет создавать собственные метрики и еще очень-очень много вещей, в результате чего можно вообще отказаться от SQL и работать с одним единственным инструментом.
Тем не менее, я периодически посматриваю на различные инструменты в поисках чего-нибудь этакого. В каждом из инструментов есть какая-нибудь интересная фишка, но,  держать тучу разных инструментов ради красивых бантиков... Опять же, задачи лучше решать в одном инструменте, а не переливать туда-сюда данные. В общем, среди большого количества софта чего-то такого этакого долго не находилось. Хотя, справедливости ради, нужно выделить ACL (Audit Command Language). К его безусловным преимуществам (по сравнению с Excel) нужно отнести легкую воспроизводимость тестов (обычно просто заменой ссылки с одного источника данных на другой) для автоматизации рутинных операций.  Плюс вещи, которые можно делать серверной частью, вроде задач для реализации Continuous Auditing. Остальное, пожалуй, было нивелировано PowerPivot.  И такая ситуация сохранялась до моего знакомства с R.
Сразу хочу сказать, что это не очередной "убийца Excel". Инструмент может решать те задачи, которые можно делать в  Excel, но прелесть его в другом. Но об этом чуть позже.
Не смотря на свою достаточно внушительную историю (более 20 лет), инструмент попался мне на глаза совсем недавно. В одной достаточно не большой linkedin'овской группе обсуждали аудиторский инструментарий и меня привлекли достаточно лестные отзывы об R от нескольких руководителей внутреннего аудита. Среди прочих инструментов R выделяли как "наиболее мощный, хотя и наиболее сложный в изучении". Немного покопавшись в аудиторских группах, я с удивлением обнаружил почти полное отсутствие упоминаний и обсуждений R, как аудиторского инструмента. Мне показалось это достаточно странным - инструмент такой мощный, что о нем никто не знает. Прямо как в старом анекдоте про неуловимого Джо. Наконец, прерывая анналы youtube, я натолкнулся на часовой обзор R. Сделан он был не для аудиторов, но давал достаточно неплохое представление для того, чтобы определиться стоит ли тратить время на изучение. Я решил, что стоит и ни разу не жалел.
Характеристику "самый мощный и самый сложный в изучении" подтверждаю на 100%.
Почему сложный? Потому, что это - язык программирования. Мышкой много не навоюешь - нужно писать код. Он  сложнее, чем SQL, зато на голову его функциональнее. Язык создавался как специализированный, поэтому писать на нем значительно легче, чем на языках программирования общего назначения, а код получается на порядок компактнее. Все-таки он создавался не для написания кода, а анализа данных. Например, есть следующая задача. Есть более трехсот файлов, содержащих результаты ежедневных замеров нескольких показателей за пару лет. Каждый файл - уникальное место сбора данных с уникальным номером. Необходимо для произвольного количества мест (одно, некоторые, все) посчитать среднее значение для конкретного показателя на выбор.  Функция, которая реализует данный функционал, у меня составила три строки кода. Разумеется, умещающихся на экране нормальным шрифтом.
Код, который вытягивает данные с Facebook, о моих контактах и строит графическую карту кто кого знает и сохранил результаты в PDF заняла 8 строк. Столько же код, рисующий карту страны по регионам и раскраской регионов в цвета в зависимости от показателей продаж по регионам. Если не хватает базовых функций для решения задачи по обработке данных, можно написать свою функцию, но практически любой каприз уже реализован в более 4000 пакетах готовых функций, которые доступны на сайте разработчиков. И все это абсолютно бесплатно. 
Средства визуализации данных просто потрясающие. Примеры (было лень рисовать самому, взял тут):


Хорошенько порывшись в Гугле, я понял, что R не такой неизвестный, как показалось на первый взгляд. Это один из основных инструментов биохимиков, экологов, статистов.
Язык активно набирает популярность. За последний год по популярности языков программирования R шагнул с 31-го на 12 место, потеснив PL/SQL, T-SQL, Ruby, Pascal и Delphi. Мне показалось не справедливым, что аудиторское сообщество обходит вниманием этот прекрасный инструмент и решил его немного попиарить.

Итак, сухой остаток. Что понравилось и что требует улучшения.

К безусловным достоинствам R следует отнести:
  • Просто огромный функционал по обработке данных.
  • Потрясающие возможности визуализации данных.
  • Всеядность. Данные из всех цифровых источников в самых замысловатых форматах и структурах.
  • Бесплатность.
 К недостаткам:
  • В первую очередь, это время, необходимое на изучение. Но оно того стоит.
  • Благодаря своей достаточно старой архитектуре, R может обрабатывать только те данные, которые умещаются в памяти. На текущий момент существует несколько пакетов, которые позволяют обходить данное ограничение.
  • Производительность на больших объемах данных. Решается при помощи дополнительных пакетов, позволяющих использовать параллельные и распределенные  вычисления.
  • Скудный функционал для 3D визуализации данных. Направление развивается, и, надеюсь, скоро ситуация изменится в лучшую сторону.

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