• Фокус на управлении задачами. Как мы делаем свою систему управления

      Есть такая проблема в компаниях — беспорядок в задачах. С ростом команды эта проблема приводит к параличу. Сроки срываются, работа по проекту тормозится, задачи теряются. И чем выше процент потерь, тем сильнее падает общая эффективность команды. А самое интересное то, что команды к этому привыкают.

      Так, из-за потери 10% задач, компании теряют от 10% (если задачи не связаны между собой) до 100% (если связь сильная) эффективности и в конечном итоге выручки. Уберите один болт, и ракета не полетит.

      image

      В компании YouGile я выполняю роль заказчика продукта — общаюсь с пользователями и изучаю их проблемы. Так вот сейчас стало окончательно видно, что базовая проблема управления задачами в командах больше 20 человек остается нерешенной, и виноваты в этом в том числе существующие решения для управления.

      Расскажу историю, которая «развернула» мое представление о том, в чем нуждаются реальные компании в области управления проектами и задачами.

      Это была обычная встреча с компанией, в которой работают около 150 человек, разрабатывают немного секретные приборы видеонаблюдения…
      Читать дальше →
    • Типовая схема биллинга

        Я как человек измученный различными АСР и сам принимавший участие в разработке АСР регулярно сталкивался с отсутствием какой-то типовой схемы, которую можно было бы посмотреть для оценки АСР, а так же перед созданием своей АСР. В сети есть некоторое количество работ по этой теме к примеру я в свое время при написании диплома изучал вот этот вот труд Методы моделирования и разработки биллинговых систем. Диплом же и есть диплом и тащить из него схемы странное занятие, так-как реалиям он не отвечает.
        Читать дальше →
      • Лёгкое программирование: канбан-доска для GitLab за один рабочий день

          Рабочий понедельник начался со следующего диалога:

          Руководитель (P): У тебя в команде не понятно, кто чем занимается.
          Я (Я): Это да, у нас нет инструмента, который бы отображал общую картину работы над задачами. В гитлабе есть канбан-доски, но они только в контексте проектов и групп. Общая канбан-доска решила бы проблему.
          Р: Тогда сделай доску.
          Я: К утру будет готово.

          В жизни начинающего тимлида рано или поздно настаёт момент, когда он понимает, что его команде нужна канбан-доска. Она снимает беспокойство по поводу контроля процесса разработки и даёт уверенность в завтрашнем дне. Обычно эта проблема решается нижайшей просьбой к завхозу купить магнитную доску, набор разноцветных стикеров и пару-тройку маркеров для доски. Ну или использованием сервисов вроде Jira. Но в нашей команде один разработчик на удалёнке, а гитлаб в закрытом контуре (недоступен из интернетов по соображениям информационной безопасности), поэтому выбирать пришлось наиболее простое из двух возможных решений:

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

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

          Читать дальше →
        • «Алиса, пойдём во фронтенд!»

            Голосовые помощники — не далёкое будущее, а реальная действительность. Alexa, Siri, Google Now, Алиса встроены в «умные» колонки, часы и телефоны. Они постепенно меняют наш способ взаимодействия с приложениями и устройствами. Через ассистента можно узнать прогноз погоды, купить билеты на самолет, заказать такси, послушать музыку и включить чайник на кухне, лежа на диване в другой комнате.



            Siri или Alexa говорят с пользователями в основном по-английски, поэтому в России они не так популярны, как Алиса от Яндекса. Для разработчиков Алиса тоже удобнее: её создатели ведут блог, выкладывают удобные инструменты на GitHub и помогают встраивать ассистента в новые устройства.

            Никита Дубко (@dark_mefody в Твиттере) — разработчик интерфейсов в Яндекс, организатор митапов MinskCSS и MinskJS и редактор новостей в Web-стандартах. Никита не работает в Яндекс.Диалогах и никак не связан с Яндекс.Алисой. Но ему было интересно разобраться, как Алиса работает, поэтому он попробовал применить её навыки для Web и подготовил об этом доклад на FrontendConf РИТ++. В расшифровке доклада Никиты рассмотрим, что полезного могут принести голосовые помощники и построим навык прямо в процессе чтения этого материала.
            Читать дальше →
            • +30
            • 10,3k
            • 9
          • Почему не 1С?



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

              Так сложилось, что на хабре многие 1С не любят, но порой складывается впечатление, что немногие из этих людей хорошо понимают, за что они его не любят. Этой статьей мы восполним этот пробел и убьем сразу двух зайцев: с одной стороны, расскажем, как в 1С все устроено изнутри, а с другой стороны — почему это все работает не так как нужно / хотелось бы. Надо сказать, что 1С многими своими решениями смог реально нас удивить, впрочем, не будем забегать вперед.

              Статей с критикой 1С на Хабре достаточно (например, один, два, три), но, на мой взгляд, они либо слишком много внимания уделяют всяким мелочам, вроде неправильной организации меню, либо рассуждают о слишком абстрактных вещах, в которых 1С, возможно, и не виноват. В этой же статье, как и в статье про SQL, речь пойдет исключительно о фундаментальных (и вполне осязаемых) проблемах, которые касаются всех и каждого, кто разрабатывает / дорабатывает решения на 1С, и приводят либо к существенному росту порога вхождения, либо к серьезному падению производительности, либо к значительным трудозатратам со стороны разработчика.
              Читать дальше →
            • Как управлять React Data Grid через Redux

                Это продолжение предыдущей статьи: Зачем писать свой React Data Grid в 2019


                Для чего нужен Redux? Ответов много. Например, чтобы работать с общими данными в разных React-компонентах. Но можно воспринимать Redux еще как способ манипулирования компонентой. Сам взгляд интересный: любой React-компонент может управлять другим React-компонентом через Redux.


                Возьмём React-компоненту, которая отображает данные в виде строк и колонок (Data Grid, грид). Каким функционалом у нее можно управлять? Составом колонок и строк. Выделением. Хорошо бы и прокруткой данных.


                image

                Читать дальше →
                • +10
                • 4,6k
                • 3
              • Тяжёлое бремя времени. Доклад Яндекса о типичных ошибках в работе со временем

                  В коде самых разных проектов нередко приходится оперировать временем — например, чтобы завязать логику работы приложения на текущее время у пользователя. Старший разработчик интерфейсов Виктор Хомяков victor-homyakov описал типичные ошибки, которые встречались ему в проектах на языках Java, C# и JavaScript от разных авторов. Перед ними вставали одни и те же задачи: получить текущую дату и время, измерить интервалы или выполнить код асинхронно.



                  — До Яндекса я работал в других продуктовых компаниях. Это не как фрилансер — написал, сдал и забыл. Приходится очень долго работать с одной кодовой базой. И я, собственно, смотрел, читал, писал много кода на разных языках и увидел много чего интересного. В итоге у меня родилась тема этого рассказа.

                  Читать дальше →
                • Сложности работы с Redux и их решение

                  image

                  Redux среди нас


                  Это один из самых популярных state-manager`ов.

                  Он прост в использовании, прозрачен и предсказуем. С его помощью можно организовать хранение и изменение данных. А если считать, что action`ы и reducer`ы являются частью redux`а, то можно без преувеличения утверждать, что он является держателем всей логики предметной области (aka бизнес-логики) наших приложений.

                  А все ли так радужно?


                  При всей своей простоте и прозрачности, использование redux`а обладает рядом недостатков…
                  Читать дальше →
                • Создание динамических PDF-файлов с использованием React и Node.js

                  • Перевод
                  Материал, перевод которого мы сегодня публикуем, посвящён созданию динамических PDF-файлов с использованием HTML-кода в качестве шаблона. А именно, речь пойдёт о том, как сформировать простой счёт на оплату неких товаров или услуг, динамические данные, включённые в который, берутся из состояния React-приложения. База React-приложения создана с помощью create-react-app, серверная часть проекта основана на Node.js, при её разработке использован фреймворк Express.



                  Автор этого материала отмечает, что он подготовил видео, в котором демонстрируется разработка проекта. Если вы решите и посмотреть видео, и прочитать статью, то рекомендуется поступить так. Сначала бегло просмотрите статью, потом включите видео и воссоздайте у себя рассматриваемую там систему. А после этого просто прочитайте статью.
                  Читать дальше →
                  • +24
                  • 8,7k
                  • 3
                • Система управления проектами по модели Open Core в госсекторе

                    Продолжаем рассказывать вам об опенсорсных продуктах реализованных на JS фреймворке — IONDV. Framework. Сегодня поговорим о системе управления проектами, которая была одним из наших первых масштабных проектов и которую изначально мы реализовали для правительства Хабаровского края России. А сейчас веб-приложение открыто на GitHub под лицензией Apache 2.0. Система которую мы создали в большей степени заточена под региональный госсектор, поэтому она обладает соответствующей структурой метаданных и набором функций. Но мы не видим существенных препятствий, которые помешали бы доработать систему под конкретные задачи, да и использовать её по назначению никто не запрещает.


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


                    Читать дальше →
                  • Иструменты Node.js разработчика. Очереди заданий (job queue)

                      При реализации бэка веб-приложений и мобильных приложений, даже самых простых, уже стало привычным использование таких инструментов как: базы данных, почтовый (smtp) сервер, redis-сервер. Набор используемых инструментов постоянно расширяется. Например, очереди сообщений, судя по количеству установок пакета amqplib (650 тыс. установок в неделю), используется наравне с реляционными базами данных (пакет mysql 460 тыс. установок в неделю и pg 800 тыс. установок в неделю).

                      Сегодня я хочу рассказать об очередях заданий (job queue), которые пока используются на порядок реже, хотя необходимость в них возникает, практически, во всех реальных проектах
                      Читать дальше →
                    • Как настроить Continuous Deployment для своего проекта: личный опыт



                        Перевели для вас статью Юлиуса Минмо о настройке непрерывного развертывания (Continuous Deployment) для своего проекта. Автоматизация позволяет сэкономить кучу времени и сил. Статья будет полезна, в первую очередь, начинающим программистам.

                        Непрерывное развертывание — отличная штука. Один раз коммитим проект и далее все происходит в автоматическом режиме, наблюдение за этим процессом просто гипнотизирует. В этой статье я покажу, как можно все настроить для домашнего проекта.
                        Читать дальше →
                        • +21
                        • 14,8k
                        • 8
                      • Быстрые помощники для вашего Asterisk'а

                          Эта статья подводит промежуточный итог в разработке моих приложений для asterisk'а. Все началось в новогодние праздники, когда мне захотелось сделать быстрый голосовой набор на asterisk'е. Затем был реализован поиск направления по номеру звонящего (полезная штука для входящих на номера 8-800). Затем была пара заказных проектов. А недавно еще и LCR для asterisk. Все эти приложения разработаны с использованием библиотеки ding-dong, которая позволяет работать с AGI (Asterisk Gateway Interface) в node.js приложении.

                          Далее я хотел бы показать, что используя node.js и ding-dong, можно быстро разрабатывать полезные приложения для астериска.
                          Читать дальше →
                        • Как мы «снова» умный дом изобретали

                            Привет Хабр! В прошлой статье я упоминал, что в среде детских кружков технического творчества достаточно сложно найти наборы для комплексного изучения детьми всевозможных дисциплин. Сегодня я расскажу вам о том, как мы придумывали детские наборы робототехники.
                            Читать дальше →
                            • +21
                            • 6,2k
                            • 8
                          • Настраиваем удобный npm проект для себя и команды или немного о современных фронтенд инструментах


                              Всем привет. Недавно мне попалась задача настроить оборот приватных npm пакетов. Все звучало очень интересно и многообещающе пока не оказалось, что делать там совсем не много. Тут бы все и закончилось, но возникла вторая задача — написать демо репозиторий для npm пакета, который можно было бы взять, клонировать и на его базе быстро создать что-то полезное и в едином стиле.


                              В результате получился проект с настроенным форматированием, кодстайлом, тестами на каждый пулл, лимитами на покрытие кода, отчетом о покрытии кода и автоматической документацией. Плюс удобная публикация в npm. Подробности о настройке — под катом.

                              Читать дальше →
                            • Пишем микросервис на KoaJS 2 в стиле ES2017. Часть II: Минималистичный REST

                                Koa v2

                                Это продожение статьи Пишем микросервис на KoaJS 2 в стиле ES2017. Часть I: Такая разная ассинхронность. Постараюсь угодить начинающему разработчику, который хочет расстаться с express, но не знает как. Кода будет много, текста мало — я ленивый но отзывчивый.
                                Читать дальше →
                              • Как продавать: как должен работать продавец



                                  Привет! Не думал, что когда-нибудь буду публиковать тут настолько далёкое от ИТ, но давайте попробуем, благо новые тематики позволяют. Сейчас расскажу, как именно мы учим своих продавцов. Если вы физически что-то продаёте — это гайд, как не сильно накосячить. Механика обтачивалась примерно три года.

                                  Итак, первое и главное в рознице — продавец должен быть уверен в своём товаре. Если товар — отстой, который надо впаривать, то продавец получит такое дикое искривление психики через месяц, что к живым людям его выпускать нельзя будет вообще. Товар должен быть такой, чтобы про него можно было спокойно искренне рассказывать — и чтобы люди после этого брали. Это основа маркетинга. Уверенность в товаре — базис для всех остальных принципов.

                                  Теперь посмотрим на сам процесс продажи. Он делится на пять шагов — приветствие, засада, разработка, презентация, продажа. Самая частая ошибка приветствия в том, что продавец, скорее всего, не доктор. Поэтому «Вам чем-нибудь помочь?» — это где угодно, но только не в стенах нашего магазина. Правильно улыбнуться и поздороваться с человеком, когда он заходит на точку. Задать настроение и обозначить, что вы его увидели. И всё. Не лезть к нему и не подходить даже. Человек зашёл — не надо набрасываться.

                                  Хотя нет, прежде чем переходить к пунктам, обсудим подготовку.

                                  Главный наш принцип в отношении покупателя — относиться к нему как к другу. Это не красивые слова, а одна предельно конкретная вещь — не делай ничего такого, что не сделал бы с другом.
                                  Читать дальше →
                                • Что иметь в виду при переписывании программного обеспечения

                                  • Перевод

                                  При разработке каких-либо продуктов у команды зачастую возникает желание перестать бороться с текущим состоянием проекта и переписать всё снова, на этот раз "правильно" и "по науке". Обычно такие порывы не одобряются, но в этот раз я бы хотел предложить к прочтению перевод поста Hugo Baraúna, посвященного тому, какие вопросы нужно задать себе, если всё же решили переписывать.


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


                                  Будут ли обе платформы существовать одновременно, или нет?

                                  Читать дальше →
                                  • +16
                                  • 12,6k
                                  • 7
                                • Обучение машины — забавная штука: современное распознавание лиц с глубинным обучением

                                  • Перевод
                                  Вы заметили, что Фейсбук обрёл сверхъестественную способность распознавать ваших друзей на ваших фотографиях? В старые времена Фейсбук отмечал ваших друзей на фотографиях лишь после того, как вы щёлкали соответствующее изображение и вводили через клавиатуру имя вашего друга. Сейчас после вашей загрузки фотографии Фейсбук отмечает любого для вас, что похоже на волшебство:
                                  Читать дальше →