Портфолио Что делаем Как работаем Блог Бюро Карьера Начать проект

Проектируем интерфейсы и разрабатываем ПО

Превращаем идеи в эффективный пользовательский опыт.

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

Используем проверенные технологии и методы. Разрабатываем, тестируем и внедряем программное обеспечение.
Корпоративные порталы
CRM и ERP
Онлайн-сервисы
Системы учета
Системы контроля
E-commerce решения
Алексей глубоко погрузился в процесс и сотни нюансов бронирования рейсов. Предлагал варианты решения и оформления интерфейса системы. Умеет слушать и слышать.
Минимум воды, экономия времени, творческий подход и четкие цели…
Алексей ответственно подошел к работе, полностью погрузился и понял, как должны взаимодействовать сотрудники в создаваемом нами проекте. Нестандартные решения оказались весьма удачны.
Задача которая стояла перед Алексеем, нам казалась невыполнимой.
Хотелось бы отметить пунктуальность, отвественность и заинтересованность Алексея в решении всех возникших в процессе работы вопросов.
«— Ура, работает!»
It is my pleasure to recommend Alexey Shklyar as a reliable partner in matters of software UI design and UX optimizations
Выражаем благодарность за создание дизайн-макетов интерфейсов

Кейсы

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

Что делаем

Проектируем пользовательский опыт
Разрабатываем интерфейсы
Программируем и интегрируем
Тестируем ПО
Разрабатываем мобильные приложения
Проектируем и пилим чат-боты
Корпоративные сайты и порталы
Внедряем и поддерживаем ПО
Рисуем иллюстрации
Все услуги

Как работаем

1. Понимаем задачу

1.1.
Выясняем [что имеем] и [что хотим]
Что имеем — анализ существующих решений, возможностей и ограничений. Понимание помогает определить, какие функции и возможности уже реализованы, а какие необходимо добавить или усовершенствовать.
Что хотим — определение конечной цели проекта и его требований. Это помогает сформировать понимание того, какой продукт нужен и как он должен работать, чтобы соответствовать целям бизнеса и ожиданиям пользователей.
1.2.
Не мучаем брифами, разговариваем
Считаем живой разговор более эффективным средством понимания задачи, чем брифование.
В ходе живого разговора можно задавать уточняющие вопросы и получать немедленные ответы, что позволяет более глубоко понять задачу и ее особенности.

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

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

Понимание задачи на языке бизнеса помогает наладить эффективное взаимодействие между заказчиком и командой разработки, сокращает время на разрешение спорных ситуаций. Понимание бизнес-контекста проекта помогает оценивать потребности заказчика и создавать ПО, которое соответствует его требованиям и ожиданиям.
1.4.
Уточняем факторы влияющие на стоимость
  • Объем работы и сложность задачи;
  • Технологии и инструменты разработки, которые будут использоваться;
  • Наличие необходимости в интеграции с другими системами или приложениями;
  • Локализация — адаптация ПО под разные языки и культуры;
  • Адаптивность — способность ПО адаптироваться к различным устройствам и экранам;
  • Требования к безопасности и защите данных;
  • Уровень автоматизации тестирования и контроля качества;
  • Требования к масштабируемости и производительности системы;
  • Наличие сложных математических алгоритмов или аналитических задач;
  • Срочность проекта и необходимость в работе в нерабочее время.
1.5.
Делаем предложение
По итогу общения готовим документ «Понимание задачи», который является коммерческим предложением. В этом документе расписываем как мы поняли задачу и что предлагаем сделать для ее решения. проект.

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

2. Проектируем и описываем

2.1.
Согласовываем план проектирования
Проект на разработку ПО включает в себя набор макетов и техническое задание, которые описывают, как должна работать система.
Набор макетов — набор изображений, созданных дизайнерами, которые показывают, как должен выглядеть пользовательский интерфейс системы. Макеты помогают заказчику и разработчикам представить конечный продукт и обеспечивают однородный стиль внешнего вида приложения.
Техническое задание — документ, который описывает, как должна работать система в целом и алгоритмы работы отдельных скриптов. ТЗ включает в себя подробное описание каждой функции, которая должна быть реализована, а также как эти функции будут связаны между собой.
Макеты проектируются в первую очередь, до написания ТЗ, потому что:
  • макеты помогают заказчику понять как будет выглядеть и работать готовый продукт. Это позволяет уточнять и улучшать требования к ПО в процессе проектирования;
  • макеты помогают заказчику определить, какие функции и особенности необходимы для конечного продукта;
  • макеты помогают улучшить пользовательский опыт, т.к. заказчик видит, как будет работать продукт;
  • макеты помогают определить, каким будет взаимодействие с пользователем, например, какие элементы интерфейса будут использоваться для ввода данных или для навигации по приложению;
  • макеты позволяют выявить проблемы в интерфейсе и функциональности ПО еще до начала его разработки, что помогает снизить риски и избежать непредвиденных затрат.
Проработка макетов начинается с планирования очередности (совместно с заказчиком). В первую очередь происходит разбор ключевых узлов, выявление основного функционала и определение структуры системы.

Визуальная красота и дизайн также важны, но их проектирование не является главным приоритетом на начальном этапе.
2.2.
Выезжаем на предприятие
Выезд на предприятие заказчика и общение с будущими пользователями позволяют погрузиться в контекст и более глубоко понять потребности и требования пользователей к создаваемому ПО. Знание внутренней структуры предприятия, его особенностей и потребностей, позволяет спроектировать ПО, которое будет максимально удобно и эффективно использоваться.

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

Выезжаем на предприятие заказчика в любой регион.
2.3.
Распутываем самое сложное
Проработку макетов начинаем с наиболее сложных узлов, которые распутываем в первую очередь. Например, страница заявки или процесс смены статусов. Эти моменты, как эффект домино, провоцируют разбор следующих и так далее.

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

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

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

Результатом этого процесса становится раскладка макетов всех страниц и модальных окон.

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

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

ТЗ гарантированно и подробно описывает весь объем задач, которые следует выполнить для запуска ПО и позволяет точно оценить временные затраты и стоимость выполняемых работ.

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

3. Разрабатываем ПО

3.1.
Стек технологий и оценка стоимости
Выбор стека технологий — важный этап при разработке ПО. Определение конкретного стека технологий зависит от функционала описанного в ТЗ и сложности его реализации, требований к производительности и безопасности, доступных ресурсов и опыта команды.

Обычно работаем в формате MVC, который предоставляет хорошую организацию кода и удобный интерфейс для разработчиков. Для фронтенда часто используем jQuery, который предоставляет множество готовых решений и позволяет быстро создавать интерактивные элементы на странице. Связь с сервером обеспечивается посредством AJAX — это технология, которая позволяет обновлять страницу без перезагрузки и дает возможность динамически изменять содержимое веб-страницы. На бекенде по умолчанию используем язык программирования PHP, который позволяет быстро и удобно обрабатывать данные и взаимодействовать с базой данных, а также имеет большое сообщество разработчиков и библиотек.

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

Если конечный функционал и требования к проекту не изменятся, то стоимость проекта, полученная в результате оценки, будет фиксированной. Однако, при изменении функционала или других важных параметров проекта, проводится дополнительная оценка трудозатрат, чтобы определить новую фиксированную стоимость.
3.2.
Формируем команду и знакомимся
После определения стека технологий формируем команду разработчиков. Команда подбирается с учетом технологий, интеграций с другими системами и желаемых сроков разработки.

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

Знакомство команды разработки с IT-специалистами заказчика обеспечивает более эффективную коммуникацию между сторонами, а также устанавливает более тесное взаимодействие для достижения общих целей. Это особенно важно, когда разрабатываемое ПО должно быть интегрировано в инфраструктуру заказчика.
3.3.
Пилим проект и отчитываемся
Разработка функционала описанного в ТЗ происходит итерациями. Этот метод работы позволяет лучше контролировать процесс разработки и ресурсы, т.к. каждая итерация имеет конкретные сроки и задачи. Каждая итерация заканчивается результатом, что даёт возможность заказчику получать постоянную обратную связь и вносить корректировки, в случае необходимости.
Контролируем качество кода, чтобы он был легко читаемым, понятным, легко расширяемым и обслуживаемым:
  • Соблюдаем стандарты кодирования.
  • Используем соглашение именований: каждая функция или метод имеют нормальное, адекватное название, которое отражает суть выполняемых операций.
  • Комментируем: комментарии содержат информацию о том, что делает код, почему он написан таким образом и какие могут быть проблемы.
  • Тестируем код: проводим модульные и интеграционные тесты.
  • Применяем шаблоны проектирования — проверенные временем решения для ряда типичных проблем в программировании. Упрощают разработку, улучшают качество кода и делают его более поддерживаемым.
Регулярно отчитываемся о проделанной работе (в процессе разработки проекта). Совместно с заказчиком устанавливаем чек-поинты, на которых отчитываемся о нашем прогрессе. В соответствии с договором, отправляем заказчику видео-отчеты с демонстрацией выполненной работы. В таких отчетах детально описываем, какие задачи были выполнены за прошедший период, какие проблемы возникли и как мы их решили.
3.4.
Тестируем
Переходим к тестированию после завершения разработки функционала. Тестирование проводится чтобы проверить работоспособность ПО и обнаружить ошибки, которые могут возникнуть в процессе использования.

На этом этапе методично проверяем каждую функцию ПО, используя различные методы тестирования: функциональное, интеграционное, регрессионное. Фиксируем каждую ошибку, используя инструменты для фиксации багов: снимки экрана, видеозаписи и журналы ошибок. После фиксации, ошибка передается разработчикам для исправления. Для ускорения процесса, правка ошибок выполняется теми разработчиками, которые писали код.

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

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

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

4. Внедряем и сопровождаем ПО

4.1.
Запускаем ПО в среде заказчика
Внедрение ПО — это процесс интеграции нового или обновленного программного продукта в существующую рабочую среду, а также его адаптация к специфическим потребностям организации. Внедрение происходит после успешной разработки и тестирования ПО и может включать в себя шаги по установке на сервера заказчика, настройке связи с другими системами, синхронизации данных, обучению пользователей, настройке безопасности и дополнительные работы по интеграции существующих процессов и систем заказчика.
4.2.
Записываем видео-инструкции
Видео-инструкции — эффективный и доступный способом обучения пользователей новому программному обеспечению. Они обеспечивают наглядность, гибкость, стандартизацию и экономию времени и ресурсов. Кроме того, благодаря возможности обратной связи и систематическому подходу к обучению, пользователи могут быстрее освоить новое ПО и начать использовать его с максимальной эффективностью.
Наглядность. Видео-инструкции позволяют пользователям наблюдать за действиями на экране в реальном времени, что делает процесс обучения более понятным и доступным, особенно для визуальных обучающихся.

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

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

Вносим изменения и дорабатываем ПО при обращении заказчика. Чтобы структурировать работу над доработками, оформляем их в виде отдельного технического задания (ТЗ), следуя аналогичному процессу разработки, но в упрощенном и сжатом виде. Такой подход позволяет постоянно совершенствовать программный продукт, адаптировать его к меняющимся условиям чтобы оставаться актуальным и эффективным инструментом.
4.4.
Сопровождаем разработанное ПО
Услуга сопровождения ПО отличается от доработки тем, что заказчику предоставляется доступ к квалифицированным специалистам, которые будут доступны в рамках установленного лимита рабочего времени в месяц за определенную абонентскую плату. С такими заказчиками заключается специальный договор на сопровождение программного обеспечения. Услуга особенно актуальна в случаях, когда разработанная база данных или другие компоненты ПО имеют сложную структуру и могут потребовать оперативного вмешательства специалиста. Такие ситуации могут включать внесение изменений непосредственно в базе данных, отмену определенных действий, корректировку содержания отчетов и т.д.

В результате, услуга сопровождения программного обеспечения предлагает заказчикам экономичный и эффективный способ обеспечения стабильной и надежной работы сложного ПО, а также доступ к квалифицированной поддержке и оперативному решению возникающих проблем без необходимости нанимать отдельного специалиста в штат компании.
4.5.
Обновляем версии программных продуктов
Накатывание новых версий продуктов является важным этапом в жизненном цикле программного обеспечения. Апгрейд позволяет заказчикам поддерживать актуальность своих продуктов, улучшать их функционал, безопасность и производительность. Стремимся обеспечить гладкое и бесшовное внедрение новых версий, адаптируя продукты к изменяющимся требованиям рынка и технологическим инновациям.

Процесс внедрения новой версии продукта включает в себя:
  • Определение потребностей и ожиданий заказчика;
  • Разработка детального плана обновления, включая определение ресурсов, времени и бюджета;
  • Разработка и тестирование;
  • Развертывание и миграция;
  • Обучение и поддержка.
Начать
проект

Почему нас выбирают

Опыт и профессионализм. IT-бюро работает с 2016 года. За это время мы спроектировали и запустили более 18 нестандартных программных продуктов, включая онлайн-сервисы и системы управления. Опыт подтверждается работами представленными в портфолио.

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

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

Комплексный подход. Предлагаем полный набор услуг в области IT-решений: облачные сервисы и системы управления, мобильные приложения, телеграм-боты, продающие сайты. Также готовим работающий контент: тексты, иллюстрации и видео.

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

Отзывы клиентов

Команда

Алексей Шкляр
Руководитель Бюро,
арт-директор, дизайнер
Денис Никифоров
Тимлид, IT-архитектор,
программист
Юлия Смирнова
UI-UX дизайнер, технический писатель
Дарья Золотова
Менеджер
Валерия Ляпина
Иллюстратор
Вячеслав Федосеев
Front-end и Back-end программист
Марат Сафиуллин
Front-end и Back-end программист
Анатолий Белозеров
Back-end программист
Гульназ Михайлова
Front-end программист
Елена Чернова
Тестировщик

Блог Бюро

Понимание задачи Итерационный подход Текст — всему голова Техническое задание на разработку ПО Работаем близко Флексить: зачем и как? Метод гребли по течению. Когда точно не знаем, куда плыть. Польза — движущая сила Человечный интерфейс Меньше кликов — больше дела Сбор информации Семантическое ядро как основа структуры сайта Оферта — рабочий рычаг Все статьи