<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:yandex="http://news.yandex.ru" xmlns:turbo="http://turbo.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Публикации во внешних источниках</title>
    <link>https://nordclan.com</link>
    <description/>
    <language>ru</language>
    <lastBuildDate>Wed, 18 Mar 2026 10:37:27 +0300</lastBuildDate>
    <item turbo="true">
      <title>Управление распределенными командами разработки</title>
      <link>https://nordclan.com/blog/ti2ta5n1r1-upravlenie-raspredelennimi-komandami-raz</link>
      <amplink>https://nordclan.com/blog/ti2ta5n1r1-upravlenie-raspredelennimi-komandami-raz?amp=true</amplink>
      <pubDate>Wed, 19 May 2021 08:46:00 +0300</pubDate>
      <description>Советы для тех, над чьим проектом трудится несколько подрядчиков по разработке ПО. Собрали свой опыт работы с другими командами и написали советы, как избавиться от хаоса и затягивания сроков.</description>
      <turbo:content><![CDATA[<header><h1>Управление распределенными командами разработки</h1></header><div class="t-redactor__text">Все чаще команды, которые разрабатывают единое ПО находятся в разных городах и даже странах. В такой ситуации часть времени неизбежно уходит на налаживание коммуникаций, а также возникают задержки в доставке результатов. Как снизить потери времени и риски при управлении несколькими командами, чтобы эффективно использовать бюджет на разработку?</div><h2  class="t-redactor__h2">3 обязательных условия при работе с распределенными командами</h2><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Выделенный менеджер</strong></li></ul></div><div class="t-redactor__text">У каждой команды должно быть ответственное лицо, которое будет курировать свою часть работ. Обычно это либо Project manager, либо тимлид со стороны подрядчика.</div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>График взаимодействия</strong></li></ul></div><div class="t-redactor__text">Чем чаще менеджеры команд синхронизируют действия, тем лучше. Раз в день или раз в неделю - решать вам. Для синхронизации действий мы используем ежедневные созвоны до 15 минут, где подводим итоги вчерашнего дня, фиксируем планы на день и обозначаем трудности, если они есть.</div><div class="t-redactor__text">Эти созвоны служат только для синхронизации по задачам и проектам, они не подразумевают разбора проблем, трудностей, холиваров или решения других вопросов — все это при необходимости выносится в отдельные созвоны или обсуждения в чате. Очень важно следить за этим и пресекать все попытки перевести созвон в часовую беседу о погоде.</div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Лид проекта</strong></li></ul></div><div class="t-redactor__text">Обязательно должен быть человек, который видит всю картину целиком: либо собственник продукта, либо IT-менеджмент заказчика, который согласует действия всех команд. Также должен быть техлид, который соберет результаты работы нескольких групп разработки воедино. Это либо менеджер проекта, либо ведущий программист.</div><h2  class="t-redactor__h2">Как распределить специалистов в командах?</h2><div class="t-redactor__text">Когда <strong>продукт монолитный</strong> и пока не интегрируется с сервисами, то удобно привлекать одного подрядчика на все направления: front, back, QA и аналитика. Если подрядчик не может закрыть потребность полностью, то делить лучше, например, в формате front+back, QA+аналитика.</div><img src="https://static.tildacdn.com/tild6334-3632-4931-b439-323262326133/c7fb9bcd65eb41358c02.png"><div class="t-redactor__text">Когда нужно <strong>разработать дополнительные сервисы</strong> и обеспечить взаимодействие нескольких систем, собирайте отдельные команды под каждый сервис в единой экосистеме.</div><img src="https://static.tildacdn.com/tild6332-3962-4265-b964-643465613061/51a539a1835d43299fab.png"><h2  class="t-redactor__h2">Как избежать проблем и организовать управление</h2><div class="t-redactor__text">Мы заметили, что проблемы на проектах с распределенными командами повторяются и выделили 4 самые популярные из них, а также описали, что поможет их устранить.</div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Проблема 1: К задачам долго не приступают.</strong></li></ul></div><div class="t-redactor__text">Часто причина в неправильном описании задачи. Эту ошибку обычно допускает бизнес с небольшим опытом во взаимодействии с компанией-разработчиком и ставит задачи в формате "надо добавить фичу" и все. Но такая постановка задачи тратит ресурс.</div><div class="t-redactor__text">С этой формулировкой разработчик начинает ходить по всем инстанциям и выяснять: что конкретно должно быть сделано, как оно должно работать, как выглядеть в итоге, где брать информацию для выполнения задачи и т.д.</div><div class="t-redactor__text">Чтобы этого избежать, лучше описать, как задачу можно воспроизвести в будущем и как ее протестировать, а также сразу дать все ресурсы для ее выполнения. Идеально описанная задача - когда тимлид делегирует ее разработчику, он сразу приступает к выполнению и сдает. И никто больше в процессе не участвует.</div><div class="t-redactor__text">Признаки хорошо описанной задачи:</div><div class="t-redactor__text"><ol><li data-list="ordered">Для ее выполнения не нужно привлекать много людей</li><li data-list="ordered">После прочтения описания не возникает вопросов (если вопрос возник, значит в задаче чего-то не хватает)</li></ol></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Проблема 2: Задачи простаивают</strong></li></ul></div><div class="t-redactor__text">Обычно команда не может приступить к работе из-за задержек другой, поэтому нужно заранее спланировать очередность работ и составить план на разработку.</div><div class="t-redactor__text">Как происходит на практике: после обсуждения или анализа рынка было принято решение разработать фичу для сайта или дополнительную функциональность в приложении. Для описания задач потребовалась аналитика.</div><div class="t-redactor__text">Когда аналитика готова, то она передается backend и frontend разработчикам на оценку. В то время, когда backend готовится к работам, можно сделать независимые задачи для фронтовой части.</div><div class="t-redactor__text">Главное, синхронизировать работу команд: когда каждое звено сдает выполненные работы и когда стартует следующее. Одновременно может вестись разработка, тестирование уже сданной части работ и дебагинг предыдущего спринта. Именно поэтому нужен руководитель с четким планом работ, который видит всю картину целиком, чтобы разработка не превратилась хаос.</div><img src="https://static.tildacdn.com/tild3661-3764-4139-b932-626237383764/02b1cd6cdede425085f5.jpg"><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Проблема 3: На реализацию изменений уходит много времени.</strong></li></ul></div><div class="t-redactor__text">Советуем руководствоваться простым правилом: не вносить изменений, пока спринт не закончен. Кажется, что внести изменение в ходе работы быстрее, но по факту это сильно вредит качеству продукта в перспективе.</div><div class="t-redactor__text">Лучше планировать работу небольшими спринтами. По опыту: две недели - оптимальный срок. Команда успеет спланировать, как выполнить задачи, провести тестирование и внести правки. Следите, чтобы в этот период DevOps поддерживал высокую скорость и надежность CI/CD. Также прогнозируйте увеличение нагрузки на систему и ее расширение, чтобы подготовить сервера и ресурсы.</div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Проблема 4: Происходят ошибки при загрузке обновлений.</strong></li></ul></div><div class="t-redactor__text">Чаще всего ошибка в синхронизации front и back версий, нужно наладить коммуникацию об изменениях между менеджерами команд.</div><div class="t-redactor__text"><em>Если на этапе оценки проекта или на ранних сроках разработки вы выяснили, что задача требует увеличения бюджета или сроков, то обсудите с командой разработки, как лучше разбить ее на несколько простых итераций, дающих больший эффект бизнесу.</em></div><div class="t-redactor__text"><strong>Чек-лист, который поможет держать проект под контролем:</strong></div><div class="t-redactor__text"><ul><li data-list="bullet">Созвоны по выбранному графику (Zoom, Skype, Google Meet)</li><li data-list="bullet">Подробный RoadMap для фиксации очередности действий команд (GoogleDocs, Jira)</li><li data-list="bullet">Единый "центр управления" общим процессом разработки (Jira, Trello)</li><li data-list="bullet">Отслеживание проблемных мест раз в неделю</li></ul></div><div class="t-redactor__text">Прозрачная и открытая коммуникация - основа всего. Иногда один факт, не рассказанный на митинге может стоить недельных переделок. Обязательно организуйте регулярный обмен информацией по проекту.</div><div class="t-redactor__text"><strong>Если вам нужна команда разработчиков или вы планируете привлекать ее в будущем, то оставьте запрос в форме внизу страницы.</strong></div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Жизнь Нордклановцев</title>
      <link>https://nordclan.com/blog/3kove54gl1-zhizn-nordklanovtsev</link>
      <amplink>https://nordclan.com/blog/3kove54gl1-zhizn-nordklanovtsev?amp=true</amplink>
      <pubDate>Fri, 04 Dec 2020 09:38:00 +0300</pubDate>
      <description>Про еду, кофе, настолки, джедаев и английский.</description>
      <turbo:content><![CDATA[<header><h1>Жизнь Нордклановцев</h1></header><div class="t-redactor__text"><strong>Экскурсия по офису</strong></div><div class="t-redactor__text">Наш офис расположен в трехэтажном коттедже. До центра города можно прогуляться пешком за 10 минут.</div><div class="t-redactor__text">На первом этаже - две переговорки и рабочая зона frontend отдела. Здесь вы часто можете услышать холивары “что лучше: реакт или вью”.</div><div class="t-redactor__text">На втором этаже можно найти специалистов backend отдела, менеджеров проекта и аналитиков, QA специалистов и бухгалтера.</div><div class="t-redactor__text">На третьем этаже сидят специалисты отдела продаж и аккаунтинга, основная часть backend разработчиков и hr-специалисты.</div><img src="https://static.tildacdn.com/tild6231-3336-4333-b832-636238613639/6363141967194b9fa31c.png"><div class="t-redactor__text">Самое интересное - в цокольном этаже, также известного как “подвал” и “пищеблок”. Тут мы пьем чай, обедаем, общаемся, смотрим презентации, играем в настолки. Здесь есть все необходимое, чтобы за трапезой вы чувствовали себя как дома: холодильник, микроволновка, столовые приборы.</div><img src="https://static.tildacdn.com/tild3061-3435-4365-a661-616639343736/4fef25ff0e4745ca8ea5.jpg"><div class="t-redactor__text">Для любителей чая всегда есть выбор черного и зеленого чая. Ценители кофе могут приготовить себе капучино с молочной пенкой с помощью кофемашины. И, конечно, тут есть печеньки.</div><div class="t-redactor__text">Мы стараемся, чтобы в офисе было максимально комфортно. Для этого наши топы сами смастерили полки и обеденные столы, украсили стены на всех этажах, закупили растения.</div><img src="https://static.tildacdn.com/tild6534-3566-4666-a334-383138353534/8961bdfeb7e342bebe09.jpg"><div class="t-redactor__text"><strong>Офисная жизнь</strong></div><div class="t-redactor__text">Рабочее утро для всех начинается по разному и в разное время. Если ты - ранняя пташка, то тебе дадут ключи от офиса и ты первым сваришь себе горячий кофе. Если ты - сова, и любишь работать в пустом вечернем офисе, то ключи тебе тоже положены.</div><div class="t-redactor__text">Вы никогда не останетесь голодными. В чате “Еда” ребята собирают совместные заказы на доставку пельмешек, роллов, бургеров и другой вкусноты. Если вы вдруг проголодались посреди рабочего дня, то в 5 минутах ходьбы есть магазин.</div><img src="https://static.tildacdn.com/tild6338-3031-4134-a234-393764323665/27b49d3593064e6fadda.jpg"><div class="t-redactor__text">Все сотрудники в курсе текущих проектов. Для этого каждую неделю мы проводим демо, на котором мы делимся кейсами с проектов, рассказываем о продуктах, технологиях, трудностях и успехах.</div><div class="t-redactor__text">Для поддержки уровня английского языка ребята ходят в Speaking club. Участники сами выбирают тему дня: от любимых фильмов до лайфхаков как найти вторую половинку.</div><div class="t-redactor__text">Сплачивает не только работа, но и совместный отдых. Мы уже катались на картинге, играли в пейнтбол и страйкбол, катались по ночному городу и искали клад, ходили на интеллектуальные квизы. Джедаи-велосипедисты ездили в 5-дневное путешествие и накрутили 500 км! А чтобы размяться посреди рабочего дня у нас есть баскетбольная площадка и турник.</div><img src="https://static.tildacdn.com/tild3434-6463-4661-b536-333762326463/4ec2674e2f3d4c4786bb.png"><div class="t-redactor__text">Любители ламповых вечеров играют в настолки и смотрят фильмы на большом экране через проектор.</div><div class="t-redactor__text"><strong>Удаленная работа</strong></div><div class="t-redactor__text">Пока у нас один офис - в Ульяновске. Но у нас много удаленных сотрудников по всей России. Наши ребята живут в Самаре, Керчи, Саратове, Геленджике, Нальчике, Калуге, Москве, Санкт-Петербурге, Воронеже, Ростове-на-Дону, Набережных Челнах.</div><div class="t-redactor__text">Мы приглашаем ребят поработать в Ульяновском офисе и на корпоративы. Все презентации и демо проходят в скайпе или зуме. Speaking club тоже можно посещать удаленно.</div><img src="https://static.tildacdn.com/tild3139-6430-4131-a231-613236353937/76cec6bca31040608f87.jpg">]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Tokenplace: Криптовалютный стартап снаружи и изнутри</title>
      <link>https://nordclan.com/blog/56m8vhj2i1-tokenplace-kriptovalyutnii-startap-snaru</link>
      <amplink>https://nordclan.com/blog/56m8vhj2i1-tokenplace-kriptovalyutnii-startap-snaru?amp=true</amplink>
      <pubDate>Mon, 14 Oct 2019 09:53:00 +0300</pubDate>
      <description>Желая извлечь выгоду из торговли криптовалютой, Вы вынуждены следить за курсами и их изменениями сразу на нескольких ресурсах. В данной статье мы расскажем, как нам удалось оптимизировать этот процесс.</description>
      <turbo:content><![CDATA[<header><h1>Tokenplace: Криптовалютный стартап снаружи и изнутри</h1></header><div class="t-redactor__text">С развитием рынка криптовалют интерес общественности к ним значительно вырос. Возникло множество бирж по их обмену. При этом, благодаря небольшому возрасту большинства криптовалют их курс подвержен постоянным изменениям: это не могло не привлечь как существующих трейдеров с валютных/фондовых бирж, так и новичков, пробующих себя в этом деле.</div><div class="t-redactor__text">Желая извлечь выгоду из торговли криптовалютой, нет смысла ограничиваться только одной биржей — даже простой уровень спроса, не говоря уже о курсе, существенно варьируется от биржи к бирже. Это заставляет следить за курсами и их изменениями сразу на нескольких ресурсах, что занимает ощутимо больше времени и создает хаос. В данной статье мы расскажем, как нам удалось оптимизировать этот процесс.</div><div class="t-redactor__text"><strong>Задача: централизовать статистику и действия с множества бирж в одном месте.</strong></div><div class="t-redactor__text">Независимо от того, проводит ли человек несколько операций в месяц, инвестируя долгосрочно, или выполняет десятки операций в день, для принятия правильного решения ему необходимо видеть общую картину.</div><div class="t-redactor__text">Проблема заключается в том, что сбор котировок со всех бирж займет у пользователя время, а обилие вкладок браузера (на каждую биржу — как минимум по одной) усложнит работу. Учитывая, что эта задача регулярная и повторяющаяся, количество затрачиваемого времени переходит все разумные границы. Нужно оптимизировать!</div><div class="t-redactor__text"><strong>Решение: единый портал, интегрированный с крупнейшими биржами криптовалют.</strong></div><div class="t-redactor__text">Как это работает? Зарегистрировавшись на портале, пользователь может привязать свои учетные записи с крупнейших бирж, используя API ключи, и получить всю необходимую информацию в одном месте — своё полное портфолио с учётом всех валют на всех биржах, глобальную историю продаж, курс интересующей пары на каждой бирже и его изменение, уровень спроса и предложения, и, что самое важное, ещё и в один клик провести нужную операцию, не уходя с портала.</div><div class="t-redactor__text">Приятным дополнением служит статистика — поскольку портфолио и история продаж формируются из всех подключенных бирж, пользователю не нужно будет разыскивать статистику по каждому из своих аккаунтов, а потом складывать их и вычислять общий процент просто для того, чтобы понять, как у него идут дела.</div><img src="https://static.tildacdn.com/tild3434-3635-4630-a336-656337336462/36474d9b0d9541aa8229.png"><h2  class="t-redactor__h2">Как это устроено изнутри?</h2><div class="t-redactor__text">В общих чертах разработка делится на следующие шаги:</div><div class="t-redactor__text"><strong>— Итак, нам нужно собрать необходимую информацию. Как?</strong></div><div class="t-redactor__text">Было выбрано несколько наиболее популярных и стабильных бирж криптовалют (Binance, Bitfinex, Bitstamp, Bittrex, Coinbase, Hitbtc, Huobi, Kucoin, Okex, Poloniex). Поскольку пользователи решали одни и те же задачи на каждой из них, интеграцию в Tokenplace выполнял один модуль с универсальным интерфейсом и различной реализацией в зависимости от той или иной биржи. Например, каждая биржа имеет свой формат обмена данными и API, или например, пара биткоин — доллар США может иметь вид: btcusd, BTCUSD, BTC-USD и BTC_USD. Поэтому для каждой биржи реализованы свойственные только ей методы защиты, списки поддерживаемых действий, а управление и обмен данными с главным приложением унифицированы. Такой подход позволил быстро подключать новые биржи в приложение, минимизировать затраты на обеспечение качества продукта, так как при отладке интеграции с каждой новой биржей невозможно испортить работу уже существующих.</div><div class="t-redactor__text">Большое внимание уделено информационной безопасности. Применены как стандартные подходы к криптозащите (обмен данными по защищенному протоколу HTTPS, шифрование данных с помощью уникальных одноразовых токенов (nonce), “соль” для защиты от атак через “радужные таблицы” и т.д.), так и ряд специальных мер.</div><div class="t-redactor__text">Имея многолетний опыт интеграций с различными финтех-сервисами мы учитывали следующие особенности:</div><div class="t-redactor__text"><ul><li data-list="bullet">Часто API даже самых известных продуктов не имеют актуальной документации, это влияет на таймлайн интеграционного проекта. Гарантировать результат в срок может только подрядчик с опытом подобных интеграций.</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet">Любые API не статичны, они развиваются вместе со своими продуктами. Увы, не всегда обеспечивается обратная совместимость и своевременное информирование владельцев интегрированных сервисов об изменениях. Поэтому в разработке подобных систем наряду с умной обработкой исключительных ситуаций непосредственно в коде, мы рекомендуем внедрение в продукт средств мониторинга и анализа данных, например, Kibana, которые своевременно помогут администраторам сервиса среагировать на аварию.</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet">Узкое место многих API — это обработка исключительных ситуаций: если отправить запрос содержащий неверные данные, как, например, покупка биржевого инструмента на средства, превышающие установленные лимиты, то в ёмком ответе «Forbidden” никак не узнать причину отказа. Такие особенности требуют реализации дополнительных проверок на бирже и понимания последовательности их вызовов.</li></ul></div><div class="t-redactor__text"><strong>— Биржи подключили; теперь работаем над скоростью?</strong></div><div class="t-redactor__text">Действительно, сбор нужной информации для одного клиента мог занимать огромное количество времени: стучимся в биржу А и запрашиваем баланс. В ответ получаем только список валют и их количество. Но ведь этого мало: мы хотим знать, как эти валюты чувствуют себя сейчас на этой бирже, что новенького произошло в их жизни за последнее время, и сколько вечнозелёных президентов за них дают.</div><img src="https://static.tildacdn.com/tild3330-3834-4962-b463-333830346139/09715f47d7ac45afac94.png"><div class="t-redactor__text">Однако не всегда разработчики криптобирж заботятся об удобстве интеграции своих API внешними разработчиками. Например, чтобы просто получить состояние счёта, недостаточно запросить баланс клиента одним запросом — по каждой из присутствующих валют нам нужно сделать дополнительное обращение к серверу, чтобы узнать текущую стоимость и курс обмена, затем повторить это для следующей валюты. И так далее для каждой подключенной биржи.</div><div class="t-redactor__text">Так как мы не хотели заставлять посетителей ждать по 30 секунд, пока их данные загрузятся, нужно было действовать.</div><div class="t-redactor__text">Целевая аудитория сервиса — это среднесрочные и долгосрочные криптоинвесторы, для которых не требуется актуальность котировок в реальном времени. Поэтому мы внедрили механизм умной загрузки котировок — единожды загруженные пары валют запоминались для всех пользователей системы в течении периода актуальности, а данные которые требовались каждому конкретному пользователю (такие как динамика портфеля, заявки и т.д.) запоминались и актуализировались на сервере нашего приложения, что существенно снизило потребность регулярного обращения к биржам через их API. Например, запрос баланса при отображении разных страниц приложения происходил не при открытии каждой, а один раз, и обновлялся на основе изменений курсов, которые актуализировались для всех пользователей одновременно.</div><div class="t-redactor__text"><strong>— Но ведь можно ещё быстрее?</strong></div><div class="t-redactor__text">Для этого клиентская часть выполнена в виде легкого и функционального SPA (Single Page Application) с использованием vue.js и хранилища vuex. Хранилище сыграло огромную роль в «облегчении»: с одной стороны, точно зная, что требует обновления, мы могли гораздо меньше обращаться к серверу, пользуясь хранилищем, а с другой — пока пользователь просматривал курсы в одной бирже, мы могли незаметно для него обновить данные по другой в бекграунде.</div><div class="t-redactor__text">Описанная архитектура и накопление исторических данных дает возможность без ущерба для скорости доступа к данным отображать динамику баланса пользователя на графиках по всем биржам в зависимости от его торговли и изменения курса валют.</div><img src="https://static.tildacdn.com/tild3832-3430-4731-a338-663562383532/18184ff8b9c24ccd95aa.png"><div class="t-redactor__text">Для отображения свечных диаграмм, индикаторов и инструментов теханализа применены компоненты от TradingView — на наш взгляд они одни из самых удобных.</div><img src="https://static.tildacdn.com/tild6363-3265-4039-a633-363661356537/7a2c268f10334297a1e6.png"><div class="t-redactor__text"><strong>— А будет ли так же быстро, когда на сервис придет много пользователей?</strong></div><div class="t-redactor__text">Для этого мы провели нагрузочное тестирование, чтобы понять, как система себя поведет при возрастающем количестве запросов, при каком количестве одновременно работающих пользователей она перестанет работать, какая серверная инфраструктура обеспечивает масштабирование приложения с ростом числа пользователей.</div><div class="t-redactor__text">Реальные биржи:</div><div class="t-redactor__text"><ul><li data-list="bullet">Не позволяют с одного ip адреса отправлять к себе большое количество запросов одновременно</li><li data-list="bullet">Не все биржи предоставляют возможность создания тестовой учетной записи без валидации пользователей или возможности торговли на демо-счетах.</li></ul></div><div class="t-redactor__text">Чтобы обойти данные ограничения мы приняли решение мокировать (симулировать) действия биржи через наш внутренний сервис и проверять поведение именно приложения. Мы знали, как сервис “общается” с биржами, какие запросы отправляет и какие ответы ожидает получить. Были созданы скрипты, которые максимально точно имитировали действия разных пользователей во время клиентской сессии. А что обычно делает клиент в этом приложении? Покупает, продает монеты и отслеживает динамику портфеля. Зная времена ответа на запросы реальных бирж, мы настроили работу приложения таким образом, что с увеличением числа пользователей нагрузка росла линейно, что позволяло развернуть приложение на любых популярных облачных серверах.</div><div class="t-redactor__text">На первом графике видно увеличение количества запросов в секунду (requests per second) с течением времени теста. При этом время ответа сервера на 3 самых популярных пользовательских запроса (второй график) не превысило 0,911 секунды.</div><img src="https://static.tildacdn.com/tild3332-3638-4938-b231-343738616461/d1bbd7fb63c54b33aefb.png"><img src="https://static.tildacdn.com/tild3862-3538-4336-a538-626564643335/40c8b61794cf4f61aa5b.png"><div class="t-redactor__text"><strong>— Из интересного:</strong></div><div class="t-redactor__text">Мы заметили, что биржи в своих API почти не предлагает т.н. отложенные заявки или shadow order (невидимый заказ, который разместится только тогда, когда заранее заданные условия будут выполнены). А ведь у нас уже были все детали пазла в руках: мы и так регулярно получали свежайшие котировки разных бирж и состояние балансов, а, значит, вполне могли заодно проверить, не сработал ли триггер для размещения подобного заказа. Пожалуй, получившаяся платформа была просто создана для такой возможности.</div><div class="t-redactor__text"><strong>— Happy End</strong></div><div class="t-redactor__text">Главное в работе — это положительный результат, признанный нашими клиентами. Мы были рады помочь владельцам Tokenplace в развитии отличного финтех-продукта.</div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Лицензирование программного обеспечения</title>
      <link>https://nordclan.com/blog/2zhu9zh2g1-litsenzirovanie-programmnogo-obespecheni</link>
      <amplink>https://nordclan.com/blog/2zhu9zh2g1-litsenzirovanie-programmnogo-obespecheni?amp=true</amplink>
      <pubDate>Tue, 10 Sep 2019 09:59:00 +0300</pubDate>
      <description>Устанавливая то или иное программное обеспечение (ПО), мы заключаем лицензионное соглашение и выступаем лицензиатом. И приобретая право на использование ПО в установленных пределах, мы начинаем нести ответственность.</description>
      <turbo:content><![CDATA[<header><h1>Лицензирование программного обеспечения</h1></header><div class="t-redactor__text">Немногие из нас задумываются, что, устанавливая то или иное программное обеспечение (ПО), мы заключаем лицензионное соглашение и выступаем лицензиатом. И приобретая право на использование ПО в установленных пределах, мы начинаем нести ответственность.</div><div class="t-redactor__text">Аналогичная ситуация происходит, когда в спешке мы ставим галочки при установке программы, проговаривая “да, согласен, согласен”.</div><div class="t-redactor__text">При создании программного обеспечения для наших клиентов мы постоянно уделяем внимание лицензионной чистоте создаваемого ПО.</div><div class="t-redactor__text">В этой статье мы предлагаем рассмотреть, из чего строится регулирование прав в IT-отрасли, а также на какие аспекты мы обращаем внимание при выборе компонентов и сервисов для создаваемого ПО.</div><div class="t-redactor__text">Право может распространяться на следующие формы представления ПО:</div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>исходный код</strong> Важнейшая часть любой программы, написанная на любом языке программирования, т.е. входные данные, которые в дальнейшем обрабатываются в объектный код и могут использоваться для написания других ПО</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>объектный код</strong> Код, который получен в результате преобразования исходного кода и который непосредственно используется машиной, т.е. программы, которые мы используем с Вами на наших устройствах работают с объектным кодом</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>подготовительные материалы</strong> Техническое задание, блок-схемы и прочая документация, которая возникает в процессе разработки</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>аудиовизуальные материалы</strong> Как правило, интерфейс Владение правами на перечисленные формы ПО определяется условиями, которые были обозначены в договоре или соглашении.</li></ul></div><div class="t-redactor__text">На такие условия непосредственно может влиять вид готовой программы.</div><h2  class="t-redactor__h2">Рассмотрим наиболее распространенные:</h2><div class="t-redactor__text">1.1. <strong>Custom software / bespoke</strong> Создание программы является предметом договора. Заказчику принадлежит исключительное право на использование программы, а разработчику — право использовать программу для собственных нужд на неисключительной основе.</div><div class="t-redactor__text">1.2. <strong>Mass-market, off-the-shelf software</strong> Программы для массового использования. Условия договора определяются в одностороннем порядке и заключаются проставлением галочки “Принимаю условия” (click-wrap license) или разрывом упаковки программы (shrink-wrap license).</div><div class="t-redactor__text">2.1. <strong>System and Application</strong> Системные программы, к которым прежде всего относятся операционные системы, и прикладные программы (ПО, предназначенное для выполнения каких-либо задач). На эти виды также распространяется правовая охрана.</div><div class="t-redactor__text">3.1. <strong>Proprietary software</strong> Проприетарное ПО (частное, несвободное), в рамках которого за правообладателем сохраняется весь объем прав, а пользователь может использовать ПО в объеме, который обозначил правообладатель.</div><div class="t-redactor__text">3.2. <strong>Open source software</strong> ПО с открытым исходным кодом в противопоставление проприетарному ПО предоставляет больше прав конечному пользователю. Например, возможность модифицировать программу и распространять ее копии. В настоящее время существует множество лицензий с открытым исходным кодом, мы рассмотрим их чуть позже.</div><div class="t-redactor__text">3.3. <strong>Public domain software</strong> ПО в общественном достоянии, т.е программа выходит из под контроля автора, и каждый может использовать программу в любой форме, не противоречащей закону.</div><div class="t-redactor__text">4.1. <strong>Commercial software</strong> Коммерческое ПО, т.е. то, которое распространяется на возмездной основе (плата за лицензию или за экземпляр программы). Коммерческим ПО могут выступать как проприетарные ПО, так и ПО с открытым исходным кодом.</div><div class="t-redactor__text">4.2. <strong>Freeware</strong> Бесплатное ПО, которое распространяется на безвозмездной основе, обычно содержит ограничения для пользователей и скрывает исходный код.</div><div class="t-redactor__text">4.3. <strong>Free software</strong> Следует выделить данный вид, чтобы объяснить разницу с бесплатным ПО. Free software — это свободное ПО, разновидность ПО с открытым исходным кодом, которое может распространяться на возмездной основе.</div><div class="t-redactor__text">4.4. <strong>Shareware</strong> Условно-бесплатное ПО, которое имеет период бесплатного использования программы или предоставляет в бесплатное использование только ограниченный набор функций. Пользователь может получить доступ ко всем функциям на какой-либо срок после оплаты.</div><div class="t-redactor__text">4.5. <strong>Adware</strong> ПО с размещением рекламы, при использовании которого пользователь просматривает рекламу, проплаченную рекламодателем правообладателю.</div><img src="https://static.tildacdn.com/tild6637-3866-4936-b361-363836613435/2503573263c84ff39cbc.png"><div class="t-redactor__text">Каким же образом можно защитить ПО? Существует несколько правовых режимов охраны программ, набор способов варьируется в зависимости от той или иной юрисдикции, в которой происходит регистрация правообладания. В России набор следующий:</div><div class="t-redactor__text">1.1. <strong>Коммерческая тайна или секрет производства (ноу-хау)</strong> Секретом производства могут считаться любые сведения об интеллектуальной и профессиональной деятельности, которые неизвестны третьим лицам. Срок охраны не ограничен, пока сведения не перестанут быть конфиденциальными. Коммерческой тайной могут быть защищены исходный код, подготовительные материалы, архитектура и даже негативный опыт (неудачи).</div><div class="t-redactor__text">2.1. <strong>Авторское право</strong> По желанию ПО может быть зарегистрировано в Роспатенте. В рамках авторского права защищаются, как правило, исходный код и объектный код. Срок авторского права действует в течение жизни автора и 70 лет после его смерти.</div><div class="t-redactor__text">3.1. <strong>Патентное право</strong> Такой вид охраны позволяет защитить те формы представления программ, которые невозможно защитить авторским правом (например, элементы интерфейса, логика функционирования и т.д.). Срок действия зависит от вида объекта патентования. Сам процесс довольно длительный и сложный. Патентное право в большинстве случаев используется вкупе с авторским правом.</div><div class="t-redactor__text">4.1. <strong>Товарный знак</strong> В качестве товарного знака может быть зарегистрировано наименование программы, графическое изображение. Такой вид охраны больше связан с рекламным продвижением. Узнаваемый бренд продукта способствует продвижению его на рынке.</div><div class="t-redactor__text">5.1. <strong>Договорное право</strong> Именно к этому режиму охраны и относятся лицензионные соглашения, которые заключаются между лицензиаром (правообладателем) и лицензиатом (приобретающий право). Лицензией сопровождается использование любой программы, кроме разработанных на заказ. Заказное ПО сопровождается отдельным видом документации.</div><div class="t-redactor__text">Технические средства защиты программы Технология, которая вшивается в саму программу посредством дополнительной разработки. Взлом такой защиты является правонарушением. Каждая лицензия как и любой договор имеет определенную структуру и должна содержать обязательные данные.</div><div class="t-redactor__text">Предмет договора, способы использования предмета договора, объем лицензии (однопользовательская лицензия, лицензия с ограничением количества пользователей, лицензия, привязанная к количеству процессоров и прочее), срок лицензии, территория действия, право сублицензирования и распространения третьим лицам — все это обычно отражается в лицензиях.</div><div class="t-redactor__text">Формат проприетарных лицензий и лицензий с открытым исходным кодом одинаковый. Отличаются только условия и объем прав.</div><div class="t-redactor__text">Развитие IT-отрасли несоизмеримо по масштабам с другими сферами нашей жизни. Каждый разработчик вносит свой вклад ежедневно. Чтобы делиться результатами своей работы, совместно развивать технологии, давать доступ к свободному изучению, исправлению и модифицированию своего продукта, существуют лицензии с открытым исходным кодом (open source license). Данный формат ПО существенно отличается от ПО в общественном достоянии. Ведь несмотря на то, что автор предоставляет исходный код, его права охраняются лицензией. Так как свободы, которые разные авторы готовы предоставить, отличаются, существует большое количество видов лицензий с открытым исходным кодом. Мы рассмотрим наиболее распространенные.</div><div class="t-redactor__text"><strong>GNU GPLv3 (General Public License</strong></div><div class="t-redactor__text"><strong>Лицензия делает исходный код доступным для изучения и модификации и допускает распространение исходной или измененной программы без уплаты каких-либо лицензионных платежей. Однако плата за предоставление экземпляра программы или сопутствующих услуг допустима.</strong></div><div class="t-redactor__text"><ul><li data-list="bullet">ПО и его производные можно распространять на коммерческой основе</li><li data-list="bullet">ПО может быть модифицировано</li><li data-list="bullet">ПО доступно для распространения</li><li data-list="bullet">Предоставление патентных прав</li><li data-list="bullet">ПО доступно для частного использования</li><li data-list="bullet">Исходный код должен быть в открытом доступе</li><li data-list="bullet">Модификации должны выпускаться под такой же лицензией, в некоторых случаях могут использоваться похожие лицензии</li><li data-list="bullet">Изменения в коде должны быть задокументированы</li><li data-list="bullet">Копия лицензии и авторские права должны быть включены</li><li data-list="bullet">Не предоставляет гарантий</li><li data-list="bullet">Включает ограничение ответственности</li></ul></div><div class="t-redactor__text"><strong>MIT (Massachusetts Institute of Technology)</strong></div><div class="t-redactor__text"><strong>Короткая и простая лицензия, которая требует только сохранения авторских прав и лицензионных уведомлений. При распространении первоначальной версии программы с MIT-лицензией должны сохраняться все данные об авторском праве в тексте исходного кода. А модифицированная версия программы может распространяться с любой лицензий и без открытого исходного кода.</strong></div><div class="t-redactor__text"><ul><li data-list="bullet">ПО и его производные можно распространять на коммерческой основе</li><li data-list="bullet">ПО может быть модифицировано</li><li data-list="bullet">ПО доступно для распространения</li><li data-list="bullet">Предоставление патентных прав</li><li data-list="bullet">ПО доступно для частного использования</li><li data-list="bullet">Копия лицензии и авторские права должны быть включены</li><li data-list="bullet">Не предоставляет гарантий</li><li data-list="bullet">Включает ограничение ответственности</li></ul></div><div class="t-redactor__text"><strong>Apache License 2.0</strong></div><div class="t-redactor__text"><strong>Лицензия позволяет создавать производные произведения и распространять программу в первоначальном или измененном виде, в формах исходного кода и объектного кода. К дальнейшим модификациям можно применить лицензии с открытым кодом или проприетарные лицензии, при условии, что к коду, который написан на основе исходного кода с лицензией Apache, будет добавлен файл с указанием текста лицензии и перечислением всех библиотек с данной лицензией.</strong></div><div class="t-redactor__text"><ul><li data-list="bullet">ПО и его производные можно распространять на коммерческой основе</li><li data-list="bullet">ПО может быть модифицировано</li><li data-list="bullet">ПО доступно для распространения</li><li data-list="bullet">Предоставление патентных прав</li><li data-list="bullet">ПО доступно для частного использования</li><li data-list="bullet">Изменения в коде должны быть задокументированы</li><li data-list="bullet">Копия лицензии и авторские права должны быть включены</li><li data-list="bullet">Не предоставляет гарантий</li><li data-list="bullet">Включает ограничение ответственности</li><li data-list="bullet">В лицензии прямо указано, что она не предоставляет права на товарный знак</li></ul></div><div class="t-redactor__text"><strong>GNU AGPLv3 (Affero General Public License)</strong></div><div class="t-redactor__text"><strong>Лицензия позволяет создавать производные произведения и распространять программу в первоначальном или измененном виде, в формах исходного кода и объектного кода. К дальнейшим модификациям можно применить лицензии с открытым кодом или проприетарные лицензии, при условии, что к коду, который написан на основе исходного кода с лицензией Apache, будет добавлен файл с указанием текста лицензии и перечислением всех библиотек с данной лицензией.</strong></div><div class="t-redactor__text"><ul><li data-list="bullet">ПО и его производные можно распространять на коммерческой основе</li><li data-list="bullet">ПО может быть модифицировано</li><li data-list="bullet">ПО доступно для распространения</li><li data-list="bullet">ПО доступно для частного использования</li><li data-list="bullet">Изменения в коде должны быть задокументированы</li><li data-list="bullet">Копия лицензии и авторские права должны быть включены</li><li data-list="bullet">Модификации должны выпускаться под такой же лицензией, в некоторых случаях могут использоваться похожие лицензии</li><li data-list="bullet">При использовании программы через сеть пользователь получает права на получение исходного кода</li><li data-list="bullet">Исходный код должен быть в открытом доступе</li><li data-list="bullet">Не предоставляет гарантий</li><li data-list="bullet">Включает ограничение ответственности</li></ul></div><div class="t-redactor__text"><strong>LGPL (Lesser General Public License)</strong></div><div class="t-redactor__text"><strong>Исходный код библиотеки и его модификации должны предоставляться с этой же лицензией или GNU GPLv3. Лицензия допускает случаи соединения кода с LGPL-лицензией с бОльшей частью кода с проприетарной лицензией.</strong></div><div class="t-redactor__text"><ul><li data-list="bullet">ПО и его производные можно распространять на коммерческой основе</li><li data-list="bullet">ПО может быть модифицировано</li><li data-list="bullet">ПО доступно для распространения</li><li data-list="bullet">ПО доступно для частного использования</li><li data-list="bullet">Предоставление патентных прав</li><li data-list="bullet">Изменения в коде должны быть задокументированы</li><li data-list="bullet">Копия лицензии и авторские права должны быть включены</li><li data-list="bullet">Модификации должны выпускаться под такой же лицензией, в некоторых случаях могут использоваться похожие лицензии</li><li data-list="bullet">Если ПО используется в качестве библиотеки, то условие может не применяться</li><li data-list="bullet">Исходный код должен быть в открытом доступе</li><li data-list="bullet">Не предоставляет гарантий</li><li data-list="bullet">Включает ограничение ответственности</li></ul></div><div class="t-redactor__text"><strong>MPL (Mozilla Public License)</strong></div><div class="t-redactor__text"><strong>Лицензия применяется к файлам программы. Если создается или изменяется файл, который содержит первоначальный код или ранее сделанные модификации к нему, то такой файл должен быть лицензирован на условиях MPL. Код, лицензированный MPL-лицензией, можно использовать при создании проприетарных коммерческих продуктов, при условии, что он является меньшей частью программы.</strong></div><div class="t-redactor__text"><ul><li data-list="bullet">ПО и его производные можно распространять на коммерческой основе</li><li data-list="bullet">ПО может быть модифицировано</li><li data-list="bullet">ПО доступно для распространения</li><li data-list="bullet">ПО доступно для частного использования</li><li data-list="bullet">Предоставление патентных прав</li><li data-list="bullet">Изменения в коде должны быть задокументированы</li><li data-list="bullet">Копия лицензии и авторские права должны быть включены</li><li data-list="bullet">Модификации должны выпускаться под такой же лицензией, в некоторых случаях могут использоваться похожие лицензии</li><li data-list="bullet">Если ПО используется в качестве библиотеки, то условие может не применяться</li><li data-list="bullet">Исходный код должен быть в открытом доступе</li><li data-list="bullet">Не предоставляет гарантий</li><li data-list="bullet">Включает ограничение ответственности</li></ul></div><div class="t-redactor__text"><strong>BSD-2 и BSD-3 (Berkeley Software Distribution license)</strong></div><div class="t-redactor__text"><strong>Обе эти лицензии схожи с MIT-лицензией. Между собой они отличаются лишь тем, что лицензия BSD-3 запрещает использовать название и участников программы в модифицированных версиях без их письменного согласия. Обе лицензии позволяют использовать исходный код и бинарный код в своем продукте, распространяемым под любой другой лицензией, при соблюдении некоторых условий.</strong></div><div class="t-redactor__text"><ul><li data-list="bullet">ПО может быть модифицировано</li><li data-list="bullet">ПО доступно для частного использования</li><li data-list="bullet">ПО доступно для распространения</li><li data-list="bullet">Предоставление патентных прав</li><li data-list="bullet">ПО и его производные можно распространять на коммерческой основе</li><li data-list="bullet">Копия лицензии и авторские права должны быть включены</li><li data-list="bullet">Не предоставляет гарантий</li><li data-list="bullet">Включает ограничение ответственности</li><li data-list="bullet">В лицензии прямо указано, что она не предоставляет права на товарный знак</li></ul></div><div class="t-redactor__text">Лицензии с открытым исходным кодом отличаются также степенью детализации документации, так как были созданы разными организациями для разных целей. Кто-то хотел продвинуть эту философию в массы, как создатель GPL-лицензии, а кто-то создавал лицензию под конкретный продукт, как Mozilla.</div><div class="t-redactor__text">Можно также лицензировать открытой лицензией данные и медиа-файлы, документацию и разработанные шрифты. Разрешается применение разных лицензий к разным фрагментам продукта.</div><div class="t-redactor__text">Для разработки продуктов наши front-end разработчики используют фреймворки и библиотеки с MIT-лицензией, такие как React, Angular, Redux. Back-end разработчики используют, в основном, фреймворки, лицензированные Apache License 2.0 (Apache Camel, Spring и т.д), и фреймворки с MIT-лицензией (Laravel, Symfony). Это позволяет нам использовать, модифицировать и распространять разрабатываемые продукты, открывая исходный код или скрывая его, с любой удобной лицензией.</div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Интернет-эквайринг: Что выбрать банки или платежные агрегаторы?</title>
      <link>https://nordclan.com/blog/p3cetlk2c1-internet-ekvairing-chto-vibrat-banki-ili</link>
      <amplink>https://nordclan.com/blog/p3cetlk2c1-internet-ekvairing-chto-vibrat-banki-ili?amp=true</amplink>
      <pubDate>Mon, 28 Oct 2019 10:03:00 +0300</pubDate>
      <description>Делимся опытом: на что стоит обращать внимание при выборе сервиса оплаты, и какими правилами мы руководствуемся при его выборе.</description>
      <turbo:content><![CDATA[<header><h1>Интернет-эквайринг: Что выбрать банки или платежные агрегаторы?</h1></header><div class="t-redactor__text">На рынке существует огромное количество игроков, предоставляющих сервис для интернет-эквайринга, и этот факт еще сильнее усложняет выбор и вызывает множество вопросов. Делимся опытом: на что стоит обращать внимание при выборе сервиса оплаты, и какими правилами мы руководствуемся при его выборе.</div><div class="t-redactor__text"><strong>Эквайринг</strong> – оплата услуг, товаров с использованием платежных карт, может осуществляться как через платежные терминалы (POS-терминалы, которые используется в магазинах), так и через интернет (интернет-эквайринг).</div><div class="t-redactor__text">Проще говоря, эквайринг – это возможность расплатиться карточкой, не используя наличку.</div><div class="t-redactor__text">Разумеется, не существует идеального решения. Рассмотреть и тем более сравнить всех поставщиков онлайн-оплаты не является нашей целью, вместо этого мы хотим поделиться нашим опытом: на что стоит обращать внимание при выборе сервиса оплаты, и какими правилами руководствуемся мы.</div><h2  class="t-redactor__h2">Виды систем для приема онлайн-платежей</h2><div class="t-redactor__text">Предложения на рынке можно сегментировать следующим образом:</div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Банковский интернет-эквайринг</strong> Все крупнейшие банки, такие как Тинькофф, Сбербанк, Альфа-банк, ВТБ и другие, предлагают услуги интернет-эквайринга. Основное преимущество – более низкая комиссия. С другой стороны такой подход ограничен по способам оплаты – только банковские карты.</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Платежные агрегаторы</strong> Возможность принимать платежи, используя разные способы оплаты: банковские карты, сотовые операторы, кошельки и т.д. API подобных систем имеют подробную документацию, поэтому их интеграция в продукт максимально упрощена.</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Электронные кошельки</strong> Оплата на электронный кошелек, с последующей возможностью вывода средств. Представленный способ может показаться непривлекательным из-за более серьезных комиссий (в данном случае часто взимается комиссия и за транзакции, и за вывод средств), но при этом часто он позволяет подключать сервис физическим лицам. Электронные кошельки являются популярным способом оплаты в платежных агрегаторах.</li></ul></div><h2  class="t-redactor__h2">Как это работает и насколько безопасно?</h2><div class="t-redactor__text">В целом все просто. После оформления заказа пользователь переадресовывается на сайт платежного шлюза. Передача информации в систему оплаты происходит с применением технологии шифрования SSL. Платежный шлюз запрашивает у пользователя недостающую информацию (например, номер карты, CVC-код, код подтверждения операции).</div><div class="t-redactor__text">После оплаты пользователь переадресовывается на заданную страницу сайта.</div><div class="t-redactor__text">В основном кража средств происходит не из-за брешей безопасности платежных систем, т.к. механизм оплаты существует давно и достаточно отлажен у всех игроков, а через фишинг. Но данная проблема относится к невнимательности пользователя к сохранности данных оплаты.</div><div class="t-redactor__text"><strong>Фишинг</strong> — это вид интернет-мошенничества, целью которого является получение данных карты непосредственно от ее хозяина.</div><h2  class="t-redactor__h2">Популярные платежные системы</h2><div class="t-redactor__text">В сводной таблице представлены платежные системы с разбивкой по наиболее важным параметрам.</div><img src="https://static.tildacdn.com/tild3762-3030-4565-b762-393063376337/1.png"><img src="https://static.tildacdn.com/tild3939-3338-4165-a439-653538663034/2.png"><img src="https://static.tildacdn.com/tild6638-6539-4165-b433-336539303338/3.png"><h2  class="t-redactor__h2">На что стоит обращать внимание при выборе системы оплаты</h2><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Размер комиссии:</strong> Комиссия является основной категорией затрат при использовании интернет-эквайринга, взимается в виде процентов от транзакций и может зависеть от месячного оборота.</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Сколько и какие способы оплаты поддерживаются (банковские карты, интернет-банки и тд.)</strong> Возможность оплачивать одной или всеми перечисленными способами оплаты: банковские карты, сотовые операторы, терминалы, электронные деньги, интернет-банки и т.д.</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Наличие документации по интеграции сервиса в открытом доступе и ее полнота.</strong> Трудозатраты на интеграцию сильно зависят от качества и полноты документации, если у сервиса отсутствует документация в открытом доступе стоит запросить и изучить ее до принятия решения о выборе сервиса</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Качество оказания техподдержки</strong> Служба поддержки в подобных системах очень важна. Их помощь понадобится как на этапе подключения, так и при возникновении проблем. Обычно все сервисы обещают поддержку 24/7, но если Вы первый раз воспользовались услугами сервиса мы настоятельно рекомендуем попробовать связаться со службой поддержки на первом этапе (даже с придуманными вопросами и проблемами) для оценки скорости реакции и оценки качества работы</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Скорость подключения и необходимые для подключения документы</strong> Скорость рассмотрения заявки сильно отличается от сервиса к сервису, особенно данный вопрос актуален для банковского интернет-эквайринга, где за низкую комиссию требуется собирать документы и изрядно подождать</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Возможность подключения физ.лиц</strong> Данная возможность может быть критична на старте, особенно для небольшого проекта, когда требуется протестировать свою идею. К сожалению, найти сервис для подключения физ.лица сложно</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Возможность кастомизации компонента оплаты</strong> Например встраивание виджета оплаты на сайт, который не будет выбиваться из общей стилистики и не испортит вид приложения, но не все сервисы предоставляют такую возможность</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Наличие мобильного SDK</strong> Многие веб-порталы дублируют функциональность в мобильном приложении, из-за этого при выборе стоит обратить внимание на возможность использования одного решения как для веб-версии, так и для мобильного приложения</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Выполнение 54-ФЗ</strong> При расчетах с физическими лицами необходимо выдавать клиентам чеки за онлайн-платежи и передавать данные в ФНС в режиме онлайн. Практически все системы имеют такую возможность, тем не менее при использовании некоторых зарубежных платежных систем (например, PayPal) на момент написания статьи об этом придется позаботится самим.</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Простота тестового окружения</strong> Некоторые платежные системы предлагают тестовые номера карт, которые можно использовать при разработке приложения. Это позволяет протестировать позитивные и негативные сценарии оплаты (недостаточно средств, отмена платежа и т.д.)</li></ul></div><div class="t-redactor__text"><ul><li data-list="bullet"><strong>Дополнительные возможности</strong> Наличие плагинов для интеграции с CMS, возможности ручного выставления платежей и т.д. При выборе платежной системы важно принимать во внимание особенности целевой аудитории разрабатываемого портала и каким способом пользователям будет удобно оплачивать товары и услуги. Если продаваемые товары и услуги недорогие и могут приобретаться спонтанно, то очень удобно использовать агрегаторы, которые позволяют производить оплату любым возможным способом.</li></ul></div><div class="t-redactor__text">Если у разрабатываемого портала крупный ежемесячный оборот (более одного миллиона), то стоит обратить внимание на интернет-эквайринг от банков, т.к., несмотря на частые трудности с заключением договора и подключением эквайринга, данный способ позволяет серьезно экономить на комиссии.</div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Интерфейс — наше всё, или как грамотный дизайн бизнесу помог</title>
      <link>https://nordclan.com/blog/ofvc901lc1-interfeis-nashe-vsyo-ili-kak-gramotnii-d</link>
      <amplink>https://nordclan.com/blog/ofvc901lc1-interfeis-nashe-vsyo-ili-kak-gramotnii-d?amp=true</amplink>
      <pubDate>Mon, 10 Jun 2019 10:10:00 +0300</pubDate>
      <description>Рассказываем подробнее о неправильной эргономике ПО</description>
      <turbo:content><![CDATA[<header><h1>Интерфейс — наше всё, или как грамотный дизайн бизнесу помог</h1></header><div class="t-redactor__text">Все мы хотя бы раз сталкивались с неприятной проблемой, когда, используя тот или иной программный продукт, ловишь себя на мысли, что сосредоточен на особенностях взаимодействия с интерфейсом вместо того, чтобы сконцентрироваться на решении собственных задач. Это один из признаков неправильной эргономики программного продукта. Рассказываем подробнее...</div><div class="t-redactor__text">Взаимодействие пользователя с системой состоит из семи шагов, шесть из которых полностью заняты умственной деятельностью. Мы, разрабатывая продукт, не можем никаким образом повысить скорость собственного мышления пользователя, но, несомненно, можем уменьшить число факторов, уменьшающих её. В этом и есть цель эргономики.</div><div class="t-redactor__text">Например, веб-сайт. Где лучше расположить логические блоки на странице? Принято считать, что курсор мыши человек воспринимает как продолжение руки. Следовательно, логические блоки по бокам страницы лучше размещать таким образом, чтобы пользователю не приходилось «тянуться» к ним, загораживая информацию на экране. Кроме того, при просмотре сайта логические блоки должны хорошо отмечаться периферийным зрением, однако не отвлекать пользователя от просмотра основного содержания.</div><div class="t-redactor__text">Казалось бы, мелкая деталь, но только правильный подход к проектированию интерфейса делает продукт более успешным среди пользователей, а значит, и более прибыльным для его владельца.</div><h2  class="t-redactor__h2">История одного клиента</h2><div class="t-redactor__text">Система эксплуатировалась уже длительное время. Постоянные доработки привели к тому, что продукт, включающий множество функций и модулей, приобрел весьма громоздкий графический интерфейс.</div><div class="t-redactor__text">На старте мы поставили перед собой три важных вопроса:</div><div class="t-redactor__text"><ul><li data-list="bullet">как должен выглядеть интерфейс системы в конкретных рабочих условиях?</li><li data-list="bullet">какие из выявленных критериев не удовлетворяются текущим интерфейсом?</li><li data-list="bullet">какими методами проектирования мы придем к эргономичному рабочему интерфейс</li></ul></div><div class="t-redactor__text">Прежде чем перейти к работе мы проанализировали целевую аудиторию.</div><div class="t-redactor__text">Системой пользовалось около 400 операторов, условно их можно разделить на две группы: опытные пользователи (работают с системой 2 и более месяца), новички (до 2х месяцев опыта работы с системой). Разделение целевой аудитории по данному признаку было обусловлено выявленной корреляцией в результатах опроса пользователей по вопросу “вызывает ли интерфейс системы трудности в работе или нет?”.</div><div class="t-redactor__text">Для оценки интерфейса мы использовали метрику SUS (System usability scale) — шкала удобства использования системы по ее функциональным модулям. Средние значения представлены в таблице:</div><div class="t-redactor__text">Значение метрики SUS при котором можно уверенно говорить об удобстве системы — 68 и более. Это значение получено авторами метода статистически. Будем использовать наши измерения как отправную точку в исследовании и в последствии сравним их с итоговыми значениями.</div><div class="t-redactor__text">Проанализировав работу реальных пользователей, их задачи, условия и специфику труда, нашей командой были выявлены важные аспекты, негативно влияющие на эффективность труда персонала:</div><div class="t-redactor__text">1.1. Частые прерывания и многозадачность 2.1. Сотрудники склада — неопытные пользователи ПК</div><div class="t-redactor__text">Работа на складе — процесс сложный и ответственный. Одно неверное движение — воцарится хаос. В нашем случае сотрудник в существующем процессе обслуживал клиента, проверял по накладной размещение груза, выполнял поиск товара на складе (как правило, сразу по нескольким заявкам от разных клиентов в очереди), фиксировал факт выдачи в системе. Таким образом, в течение рабочего дня сотрудник маневрирует работой за компьютером, окном общениям с клиентами, работой непосредственно на территории склада со всеми вытекающими отсюда активностями. Из-за чего неминуемо теряется фокус и падает производительность труда. Специфика ситуации заключается в том, что от самих прерываний, как правило, избавиться либо трудно, либо невозможно. В таких условиях снизить их влияние можно лишь облегчая возвращение работников к прерванному действию.</div><h2  class="t-redactor__h2">Частые прерывания</h2><div class="t-redactor__text">На основе проведенного анализа наша команда выдвинула несколько гипотез, которые позволят повысить удобство использования интерфейсов:</div><div class="t-redactor__text">1.1. <strong>Снабдить сотрудников склада портативными планшетами с адаптированной версией интерфейса системы</strong>, чтобы по мере нахождения товаров в ячейках от нескольких клиентов работник склада отмечал получение сразу. Тем самым удалось бы уменьшить время прерывания специалиста склада в работе с приложением.</div><div class="t-redactor__text">Чтобы проверить гипотезу был создан минимальный прототип приложения для планшета с ограниченной функциональностью (только подтверждение выдачи товара и помощь в его поиске на складе). Данный MVP был испытан на самом крупном складе клиента. Однако измерения времени обслуживания клиента показали, что прироста в скорости обслуживания не произошло, так как работнику склада, набирающему составной заказ, было неудобно манипулировать с мобильным устройством.</div><div class="t-redactor__text">2.1. По возвращении со склада сотрудник обновлял одинаковые вкладки клиентов со статусами товаров пользователей. В случае повреждений груза и иных рекламаций заполняется отдельная форма.</div><div class="t-redactor__text">Мы предположили, что в большинстве случаев товары выдаются без рекламаций, а значит можно <strong>объединить интерфейсы разных пользователей</strong> по массовой выдаче в одно удобное подтверждение и вынести форму рекламаций в отдельную редко-используемую страницу.</div><div class="t-redactor__text">3.1. При получении товара клиент предъявлял паспорт и доверенность, если представлял юридическое лицо. Требуется проанализировать количество клиентов данных категорий и <strong>предложить процедуру упрощенной проверки контрагента.</strong></div><div class="t-redactor__text">В приложении данная функциональность была представлена в виде единой страницы с множеством полей ввода, определенный набор которых требовалось заполнять в зависимости от типа клиента.</div><div class="t-redactor__text">Большая часть клиентов (80%) — это физические лица, интерфейсы для разных типов клиентов были разделены и упрощены. Поиск клиента осуществлялся по номеру заказа, паспорту или номеру телефона. В новой версии достаточно было вбить несколько цифр — система сразу осуществляла поиск, сужая выдачу по мере заполнения поля. Ранее номер заказа представлял из себя число, у которого изменялись на единицу последние цифры по мере отгрузки заказов. Для повышения скорости поиска формат номера заказа был переделан так, чтобы изменяемая часть находилась в начале числа.</div><div class="t-redactor__text">4.1. Приложение изобиловало окнами подтверждения действий пользователя. Этот неудобный элемент интерфейса добавили разработчики системы, желая снизить процент неправильных действий неопытных операторов системы.</div><div class="t-redactor__text">Мы решили <strong>переработать интерфейс</strong> таким образом, чтобы перейти от существующего принципа “несколько тяжелых, но универсальных страниц” к принципу достаточного количества “простых легких страниц заточенных под определенный вид простых действий”. Это повысит однозначность восприятия информации пользователем и позволит отказаться от окон подтверждения.</div><div class="t-redactor__text">5.1. Несмотря на то, что работа оператора системы не требовала высокой квалификации персонала, мы предположили, что, существующие интерфейсы интуитивно непонятны для неподготовленного пользователя. Решили провести <strong>детальный UX-анализ</strong>, который позволил исправить ошибки валидации полей ввода данных, выводить понятные пользователю сообщения об ошибках, скрывать неактивные элементы управления и полей ввода и т.д.</div><div class="t-redactor__text">Если бы возвращение фокуса требовало только изменения направления взгляда! Но при отвлечении новые стимулы заменяют содержимое кратковременной памяти, так что для возвращения к работе от пользователя требуется заново поместить в свою память нужную информацию. Именно поэтому реализация вышеописанных предложений неминуемо улучшила рабочий процесс сотрудников и компании вцелом.</div><h2  class="t-redactor__h2">Многозадачность</h2><div class="t-redactor__text">Мы имеем дело с тем самым случаем, когда сотрудник, используя компьютер для управления рабочим процессом, неизбежно отвлекается на обслуживание оборудования и др. рабочие моменты (телефонный звонок, электронное письмо, совет коллеге и тд). Как выстроить интерфейс программного продукта, минимизируя потерю скорости работы и потерю фокуса внимания?</div><div class="t-redactor__text">1.1. <strong>Унификация активных элементов интерфейса.</strong> Так как система развивалась исторически разными поколениями разработчиков, то разные станицы имели отличающийся дизайн и расположение активных элементов, таких как кнопки сохранения, переходов на другие страницы и т.д.</div><div class="t-redactor__text">В новой версии мы сократили количество активных элементов, увеличили их размер, выровнили по правому краю экрана. Все активные элементы позволили пользователям не заострять внимание на точном подведении курсора к определенному месту экрана — достаточно подвести курсор к краю. В дальнейшем мы вовсе отказались от кнопок сохранения, введя автосохранение данных по мере их заполнения.</div><div class="t-redactor__text">2.1. <strong>Автоматически заполняем поля новой записи значениями введенных ранее.</strong> Это увеличило производительность ввода данных, уменьшая количество необходимой для ввода информации пользователем, из базы подгружались данные по мере ввода первых символов с клавиатуры. Это в том числе позволило избежать дублирования данных, например ранее Иванов Иван Иванович мог быть занесен в систему в виде Иванов И.И.</div><div class="t-redactor__text">3.1. <strong>Фоновый режим выполнения задач:</strong> Вывели выполнение длительных операции в фоновый режим. Потребность вмешательства пользователя минимизировали: если процесс предположительно будет длительным, система убеждается, что она получила всю информацию от пользователя до начала этого процесса.</div><div class="t-redactor__text">4.1. <strong>Система запоминает последнее решение от одного запуска до другого.</strong> Например, положение виджетов на экране, так что если пользователь однажды открыл документ, при следующем запуске интерфейса он будет отображаться точно также на любых терминалах в зависимости от имени пользователя.</div><h3  class="t-redactor__h3">Сотрудники — неопытные пользователи ПК</h3><div class="t-redactor__text">Средний срок работы сотрудников склада в компании клиента не превышал одного года.</div><div class="t-redactor__text">Мы провели опрос, который показал, что для обучения эффективной работе с системой новый сотрудник тратил от трех недель до двух месяцев, при этом в первое время правильное заполнение полей в формах без ошибок требовало значительных усилий.</div><div class="t-redactor__text">Наше решение — полный цикл обучения эффективному использованию системы не должен превышать двух недель. Как этого достичь?</div><div class="t-redactor__text">1.1. <strong>Существенно упростить интерфейс для самых частых операций:</strong> Наиболее часто используемый интерфейс — это форма выдачи товара. Изначально отображалась вся информация о клиенте из ЦРМ- системы, товарах. Расположение нужного товара на складе указывалось в другой форме. Схема проста: оператор фиксирует факт выдачи товаров и удостоверяет личность получателя. Новый интерфейс по номеру накладной или номеру удостоверяющего документа сразу отображал товары с подсказкой о нахождении товара на складе и подтверждении выдачи.</div><div class="t-redactor__text">2.1. В манипулирование объектами была <strong>добавлена возможность дублировать основные действия системы</strong> посредством drag and drop, что позволило неопытным пользователям интуитивно перетаскивать объект в нужное состояние. Например, продвижение накладной в раздел оплаты, перемещение определенных товаров в отдельную накладную и тд.</div><div class="t-redactor__text">3.1. <strong>Визуализация объектов манипулирования.</strong> Например, пользователь сможет быстро сориентироваться, если раздел оплаты будет оформлен в виде пиктограммы.</div><div class="t-redactor__text">4.1. <strong>Визуализация интерфейса.</strong> Например, графические иконки и пиктограммы в карте движения заказа, начиная с принятия заявки на сборку и выдачу товара до получения отзыва счастливого получателя.</div><div class="t-redactor__text">5.1. <strong>Ограничение принятия решений.</strong> Программа не должна задавать пользователю вопрос, на который он не может ответить, не обратившись за информацией куда-то еще. Или, к примеру, вопрос программы о том, стоит ли обновить содержимое накладной лишь тратит время пользователя. Конечно, стоит! Другой пример — это разделение форм отображения юридических и физических лиц, что позволило минимизировать количество отображаемых полей ввода.</div><div class="t-redactor__text">6.1. <strong>Автосохранение.</strong> При внесении или изменении данных поля формы автоматически сохраняются, что сокращает время работы с интерфейсом и исключает потерю несохраненных данных.</div><div class="t-redactor__text">7.1. Ну и наконец <strong>режим обучения</strong> — в любой момент времени прямо поверх работающего интерфейса пользователь может вызвать интерактивную помощь, которая пошагово демонстрирует действия в рамках текущего бизнес-процесса.</div><h2  class="t-redactor__h2">Итог</h2><div class="t-redactor__text">Как результат, внедрение ПО с эргономичным интерфейсом привело к:</div><div class="t-redactor__text"><ul><li data-list="bullet">уменьшению времени обучения сотрудников до двух недель. Среднее время выполнения типовых операций для пользователей из целевой аудитории “новички” сократилось в 4-6 раз.</li><li data-list="bullet">повышению пропускной способности операторов склада на 11%</li><li data-list="bullet">100% отсутствию потерь данных</li><li data-list="bullet">повышению удобства работы с точки зрения сотрудников: индекс SUS вырос:</li></ul></div><img src="https://static.tildacdn.com/tild3362-6438-4736-b265-383164633034/1111.png"><div class="t-redactor__text">Снижение индекса SUS у опытных пользователей сразу после внедрения обусловлено привыканием к сложному интерфейсу старой системы.<br /><br />Если Ваша цель — эргономичный пользовательский интерфейс, то наша команда профессионалов с удовольствием поможет её достичь.</div>]]></turbo:content>
    </item>
  </channel>
</rss>
