Русский
Русский
English
Статистика
Реклама

Заказная разработка

Заказная разработка контроллеров для IIoT

04.12.2020 20:21:06 | Автор: admin
В большинстве проектов промышленного Интернета вещей (IIoT) заказчики используют контроллеры, с которыми работали раньше или рекомендованные поставщиками систем верхнего уровня. При этом счет IIoT контроллеров на рынке, из которых можно выбирать, идет на тысячи.


Не всем известна опция разработки оборудования на заказ. Для большинства промышленных контроллеров не нужен дальний космос в виде уникального функционала или дизайнерского корпуса. При удачном выборе подрядчика, имеющего необходимые наработки, за 2-3 месяца можно сделать опытные образцы, а еще через пару месяцев начать серийное производство. Разработка может окупиться за счет использования недорогой элементной базы и реализации нужного количества функций под конкретный проект. Комплекс оборудования на объекте будет состоять из минимального количества устройств (часто одного), а значит будет меньше работ по сборке, установке и пуско-наладке.

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


Шаг 1. А есть ли готовое?


Можно серьезно сэкономить, подобрав оборудование под проект, например, на этом сервисе.

Выбранный контроллер должен быть совместим с системой верхнего уровня и поддерживать работу со всеми объектовыми устройствами. За исключением закрытых решений единственного производителя, вопрос совместимости решается либо поддержкой необходимых протоколов в контроллере (силами его разработчика), либо поддержкой в системе верхнего уровня протоколов, зашитых в контроллер.

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

Шаг 2. Выбор подрядчика: КогдаСколькоПочем и защита от итальянской забастовки


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

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

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

Со встречи с потенциальным партнером надо уходить с ответом на вопрос когдасколькопочем?. Об этом часто забывают. Ожидания заказчика (цены, сроки) могут оказаться сильно меньше запросов подрядчика. Если в итоге их удалось синхронизировать, можно переходить к согласованию:

  • тезисной концепции: ТЗ крупными мазками, сроки, стоимость разработки,
  • цен на изделия в партиях, сроков поставки,
  • условий договора (права, исходники, эксклюзив).

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

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

Чек-лист выбора подрядчика


Требование Оценка
Предварительное попадание в сроки и бюджет
Человеческий контакт достигнута ли синергия с заказчиком или постоянно на разных волнах
Готовность предоставления исходников (КД, тексты ПО), прав, эксклюзива по продаже (по необходимости)
Соответствие портфолио / услуг (опыта подрядчика) задаче
Наличие достойных примеров борьбы с проблемами
Наличие необходимых специалистов в команде
Наличие шаблонов документов (договор, ТЗ, руководства, )
Увлеченность делом: интересные идеи, инициативность, ответственность
Желание разобраться в специфике, умение слушать

Шаг 3. Согласование ТЗ на IIoT контроллер


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

Согласование типа конструктива


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

Для каждого применения и проекта оптимален свой форм-фактор:

  • Для энергетики, промышленной автоматики и учета ресурсов используют корпуса на DIN рейку 35мм. Пожалуй, это самый популярный формат для промышленного IoT, однако, не является серебряной пулей для всех случаев;
  • Для систем связи используют модули в 19 стойку. Они бывают различной высоты, которую измеряют в U (44,45 мм).
  • В 19 стойку также могут устанавливать крейты (или кассеты). В них вставляют нужное количество модулей, конструктив которых объединяют понятием Евромеханика.
  • Для контроля доступа и размещения отдельно стоящих компактных устройств применяют корпуса в настольном и/или настенном исполнении,
  • Существует специализированные корпуса, в том числе: антивандальные, защищенные от воды и пыли (по международным кодам IP), приборные и т.п.
  • Наконец, бывают устройства без корпуса, устанавливаемые внутрь бОльших устройств, либо устройства, состоящие из платы и передней панели (в частности, модули Евромеханики).


Часто конструктив выбирают по аналогии с готовыми устройствами (с рынка). В некоторых случаях это является ошибкой, поскольку дорогой фирменный корпус (с обработкой, маркировкой, системой соединителей и пр.) может стоить до 50% от себестоимости изделия. Для справки: аналогичная доля для бюджетного корпуса может составлять менее 5%.

Выбор процессорного ядра


В бюджетных устройствах обычно используют однокристальные микроконтроллеры (MCU), с оперативной памятью (RAM) и ПЗУ (Flash) в одном корпусе. Большинство устройств тянет компактную операционную систему (ОС) типа FreeRTOS или TNKernel, а может работать и без ОС. Будем называть их RTOS контроллерами.

В более мощных контроллерах используется процессор (CPU) с внешними микросхемами RAM и Flash. Большинство таких устройств использует различные версии ОС Linux (Linux контроллеры) или менее распространенные ОС типа VхWorks или Windows CE (здесь не рассматриваем). Сделать плату на современном процессоре не так просто: на плате от 4-х до 10-ми слоев нужно расположить несколько BGA корпусов с достаточно строгими требованиями к питанию, геометрии и длинам дорожек. Для упрощения жизни разработчиков предлагаются сотни процессорных модулей, которые могут быть выполнены в виде дочерней платы с разъемами или краевыми контактами под пайку (см. ниже).


Также на рынке появляются микросхемы System on chip (SoC), содержащие процессор и память большого объема, достаточную для работы Linux. Разводка SoC значительного проще, чем набора CPU+RAM+FLASH. Кроме этого, SoC-и могут быть очень бюджетными.

Ниже приведены типовые характеристики и цены для нескольких примеров процессорных ядер от ARM, которые могут быть использованы в IIoT контроллерах.


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


Согласование требований к системе питания


В зависимости от типа объектов определяются требования к блоку питания, который может быть, как внешним, так и встроенным в устройство:

  • домашнее/офисное применение, энергетика ~220/380В,
  • телеком 3672В (станционное питание) и PoE,
  • промышленная автоматизация 18...36В,

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

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


Для всех российских устройств необходимы сертификаты ЕАС на электробезопасность и электромагнитную совместимость. Для прохождения испытаний нужно уметь проектировать фильтры и топологию плат, а также правильно выбирать компоненты.

Порты связи


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

Для связи через IP сеть Для связи через промежуточный HUB Для локальной связи на объекте
*Wired Ethernet *RS485 / 422 RS232
Cell 2G/GPRS 4G/LTE *CAN USB
Optical Ethernet PLC (G3, Prime) 1-wire, s-wire (для цифровых датчиков)
Optical GPON Radio: LoRA, NB-Fi (Rus), UNB Radio: Zigbee, 6loWPAN, ISM 433/868/2400 Mhz

* может использоваться и для локальной связи c оборудованием на объекте

Входы и выходы


Для подключения датчиков контроллеры оснащаются дискретными, счетными и аналоговыми входами. Аналоговые входы могут быть потенциальными (например, на 0..10VDC или изолированными на 220VAC), либо токовыми (4..20mA, NAMUR, пожарными). Для реализации выходов используют реле (обычные и полупроводниковые, например, оптосимисторы), а также транзисторы, включенные по схеме открытый коллектор (ОК).

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

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

Индикация


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

Сегодня телевизоры стали модными буквально везде: от автомобилей до умных домов. Появляется все больше конкурсов, в которых наличие экрана обязательно и для IIoT устройств.


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

Модельный ряд


Хорошей практикой является разработка не одного устройства, а целой линейки. В минимуме для этого требуется разработка всего одной платы, рассчитанной на максимальную комплектацию. Другие, более бюджетные, версии будут паяться на той же плате, но из меньшего количества деталей. Часть платы будет пустой, но это не проблема (текстолит стоит недорого).

Советую добавить этот пункт в ТЗ.

Требования к встроенному программному обеспечению


Разработка ВПО может занимать до 80% от времени реализации всего проекта. Поскольку данный пост про железо, ограничусь перечислением основных функций, которые должны быть реализованы практически в любом IIoT контроллере:

  • Обмен данными с системой верхнего уровня, в том числе, передача экстренных оповещений;
  • Обмен данными с нижестоящими устройствами и датчиками;
  • Управление исполнительными механизмами;
  • Обновление ВПО с защитой от перебоев питания и связи;
  • Хранение настроек и их восстановление;
  • Администрирование устройства с защитой от несанкционированного доступа;
  • Ведение журналов событий;
  • Анализ данных и формирования воздействий и событий (Edge логика);
  • Синхронизация системного времени;

Проектная работа с подрядчиком


Если ТЗ согласовано, пора подписывать договор с приложениями (ТЗ, календарный план с ценами, методика испытаний, ) и приступать к реализации.

Разработка нового IIoT контроллера это сравнительно небольшой проект, для успеха которого, тем не менее, нужна слаженная работа сотрудников заказчика и исполнителя. Со стороны заказчика сразу нужен руководитель проекта, а позже инженер(ы) тестирования (без независимого тестирования продукта не сделать). Более того, обычно разработка передается на условиях As is. После подписания актов и оплаты работ доказать необходимость исправления по гарантии сложно.

Про проектное управление написаны сотни книг. В разрезе разработки контроллеров я выделяю следующие обязательные моменты:

  • В начале работ нужен устав проекта (цели, проектная команда, деньги, сроки, ), и календарный план;
  • В процессе реализации необходим периодический контроль календарного плана и его корректировка;
  • Если в процессе работ внедряются хорошие идеи или новые требования, которых не было в ТЗ, то их надо вносить в реестр изменений. Ценность таких идей может значительно превышать дополнительную стоимость (обычно до 10% от первоначальной стоимости работ).
  • По результатам испытаний нужны протоколы, которые будут использоваться, как основание для доработок и оплат.
  • Хорошей практикой является подведение итога по проекту после его завершения. Часто этот момент пропускают, хотя итоговый отчет прекрасная страховка от граблей в будущих аналогичных проектах, а также основание для наказания невиновных награждения героев.

Хорошие формы документов по проектному управлению здесь.

Заключение


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


Одна из таких возможностей для IIoT проекта применение заказных контроллеров. Для ее реализации заказчику нужно пройти путь из трех быстрых шагов:

  • анализ рынка,
  • выбор подрядчика (например, нас),
  • согласование ТЗ.

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

  • развитие собственного бренда,
  • реализация специфического набора аппаратных функций и
  • получение статуса отечественного производителя (актуально для участия в конкурсах).
Подробнее..

Стратегия тестирования краткосрочного проекта

18.02.2021 16:06:37 | Автор: admin

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

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

Как всё начинается

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

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

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

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

Вся эта основа для проекта попадает к нашей команде. На краткосрочных проектах она невелика и состоит из менеджера проекта, двух-трёх программистов, UX/UI-дизайнера и тестировщика.

Когда и как начинается тестирование

Тестирование на краткосрочном проекте начинается с Shift left, то есть со сдвига тестирования влево относительно традиционного места в хвосте производственной цепочки, состоящей из определения требований, анализа и проектирования, кодирования, тестирования и развертывания.

Принцип Shift left заключается в том, чтобы начинать тестирование не в конце процесса разработки, а с его ранних этапов: тестирования концепции, требований и документации.

Источник картинки:https://devopedia.org/shift-left

Ниже приведён набор вопросов, который поможет тестировщику сориентироваться на старте краткосрочного проекта.

Вопросник: тестирование концепции

Целевая аудитория и условия использования ПО

Что выясняем

Пример

Откуда берём информацию

Что за программный продукт мы делаем?

Краткое описание продукта?

Основные функции?

Приложение с упражнениями по английской грамматике, 5 упражнений в день

Опрашиваем заказчика

Для когоразрабатываем продукт?Кто целевая аудиторияприложения?

Для школ.Ученики 5-9 классов

В каких условиях будут пользоваться будущим ПО?

Типы устройств?

Тип подключения к сети?

С мобильных устройств, стабильный Wi-Fi в классе

Материальная база тестирования на чём тестируем

Что выясняем

Пример

Откуда берём информацию

Платформы

iOS
Android
Windows

Определяется из ответов заказчика на предыдущие вопросы + смотрим статистику по целевой аудитории

Операционные системы (конкретные)

iOS versions
iOS 13
iOS 12

Android OS versions
Pie
10
Oreo

Устройства, на которых должно работать ПО (список устройств)

iPhone..
SamsungGalaxy..
Huawei..

Интеграция с тем, что уже есть

Что выясняем

Пример

Откуда берём информацию

Системы, с которыми приложение должно интегрироваться

Аккаунт на десктопной версии сайта

Команда заказчика, технические специалисты, документация по системам, тестирование систем

Способы и инструменты для проверки того, что ничего и нигде не было потеряно

API

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

Тестирование требований

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

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

Описывая ожидаемое поведение, тестировщик закладывает базу для чек-листов, выявляет противоречия и пустые места. А затем находит ответы, задавая вопросы программистам и заказчику. Так мы отлавливаем часть багов ещё до того, как софт попадает на проверку. Иногда даже до того, как программист напишет код.

Тестировщик берёт требования в том виде, в котором они есть. Допустим, это будут user stories (пользовательские истории).

1. User story

Userstory(пользовательская история) состоитиз заголовка, представляющего собой основной сценарийиспользованияи дополнительныхсценариевсконкретикой.

Схема Userstory:

As a <role> I want <functionality>so that <benefit>

Как <роль>,я хочу <функциональность>,чтобы <получить выгоду/ достичь цели>

Пример Userstory:

Как пользователь,я хочу иметь доступ к упражнениям с 9 утра до 9 вечера

Дополнительные сценарии могут быть описаны в критериях приёмки (acceptance criteria). О том, как их можно конкретизировать, я расскажу позже.

AcceptanceCriteria

AcceptanceCriterion1

Как пользователь,я могу просматривать упражнения дня с 9 утра до 9 вечера

AcceptanceCriterion2

Как пользователь,я могу создавать ответы на упражнения дня с 9 утра до 9 вечера

AcceptanceCriterion3

Как пользователь,я могу редактировать ответы на упражнения дня с 9 утра до 9 вечера

AcceptanceCriterion4

Как пользователь,я могу отправлять ответы на упражнения дня на проверку с 9 утра до 9 вечера

2. Глоссарий проекта

Поскольку пользовательские истории пишутся человеческим, а не техническим языком, важно удостовериться, что:

а) понятия, упомянутые в истории, понимаются одинаково всеми участниками разработки. Например, под словом упражнения команда разработки и заказчик имеют в виду одно и то же;

б) если в описании одного явления используются синонимынапример,упражнения, домашняя работа, заданияторечь идёт об одном и том же явлении.

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

Пример глоссария

Понятие и все слова, которыми мыобозначаемэто понятие

Определение понятия

Пример

Упражнения, набор упражнений, задание, домашняя работа

Набор упражнений, которые учащийся должен сделать за день (с по )

5 упражнений по грамматике до 23:59 в данном часовом поясе

3. Умолчания и дополнения

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

Исходный текст с умолчаниями

Умолчания восстановлены

меняем вадминке

меняем вадминка-тесты-курс-семестр-тест-папка с настройками-xml

атрибутА

атрибут Акласса Б

После восстановления умолчаний задаём вопросы для получения дополнительной информации:

Понятие и все слова, которыми мы называем понятие

Определение понятия

Пример

Вопросы

Упражнения, набор упражнений, задание, домашнее задание

Набор упражнений, которые учащийся должен сделать за день

Ежедневные упражнения по грамматике, которые должны быть сданы сегодня

До какого точно времени учащийся должен отправить задания?

Сколько упражнений в ежедневном наборе?

4. Acceptance Criteria основа для чек-листа

Тестируя требования таким образом, мы получаем двойную выгоду:

а) конкретизируемAcceptanceCriteria;

б) закладываем основу для чек-листа.

Далее переходим к созданию основы чек-листа. На этом этапе выкидываем обороты типа система должна и также ожидаемо и отжимаем текст от воды до списка требований по пунктам.

Исходный текст

Текст без воды

Система должна давать учащимся возможность выполнять упражнения ежедневно во временной промежуток с 9 утра до 9 вечера

-упражнения доступны с 9:00 утра до 9:00 вечера

-упражнения недоступны с 9:01 вечера до 8:59 утра

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

После того, как были конкретизированыAcceptanceCriteria, переходим к тест-дизайну.

Тест-дизайн и тестирование прототипа

Заголовок user story становится заголовком для группы проверок. Acceptance Criteria становится заголовком отдельного чек-листа или интеллект-карты, куда мы выписываем и ранжируем проверки.

Что получается в результате

ИсходнаяUserStory

Чек-лист

User story

As a<role>I want<feature>So that<benefit>

Как пользователь,я хочу иметь доступ к упражнениям с 9 утра до 9 вечера

User role can do <> to get ...

Пользователь имеет доступ к упражнениям с 9 утра до 9 вечера

Acceptance Criterion 1

Given<initial context>When<event occurs>Then<ensure come outcomes>

Checklist...

1. Задания можно просмотреть с 9 утра до 9 вечера

2. Задания можно выполнить с 9 утра до 9 вечера

3. Ответы на задания можно отправить на проверку с 9 утра до 9 вечера

4. Ответы на задания можно отредактировать с 9 утра до 9 вечера

5. Задания недоступны для просмотра и выполнения с 9 вечера до 9 утра

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

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

Примеринтеллект-карты

Источник картинки: автор статьи

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

В параллель с тем, как тестировщик пишет чек-листы, UX/UI-дизайнер создаёт прототип. Тестировщик проверяет интерфейс прототипа, корректирует чек-листы, обсуждает найденное с командой.

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

Специфика тестирования в краткосрочном проекте

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

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

Начинаем с позитивных кейсов. Мы хотим убедиться,чтоесли пользователь делает всё как надо, он получает ожидаемый результат.

Пример позитивного кейса

<Пользователь может делать задания с 9:00 утра до 8:59 вечера>

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

Пример негативного кейса

<Задания недоступны для просмотра и выполнения с 9:00 вечера до 8:59 утра>

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

Баги в трекере наряду с чек-листами помогают поддерживать и сопровождать продукт. Заказчик знает, какие дефекты есть в продукте, и может выбрать, какие из них исправлять в первую очередь.

Жизнь после релиза

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

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

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

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

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

Да и самому себе оставить памятку дело нелишнее. Краткосрочность краткосрочностью, но иногда маленький проект становится основой большего. И через какое-то время использования софта приходит заказ на написание дополнительного функционала.

Заключение

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

Далее следует этап тестирования требований, во время которого тестировщик создаёт максимально целостное и непротиворечивое описание продукта и его работы. Здесь идёт работа с user story и acceptance criteria, на основе которых тестировщик составляет чек-листы и интеллект-карты со списком конкретных проверок.

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

Подробнее..

Стоит ли инженерной команде с продуктовыми амбициями заниматься аутсорсингом?

25.02.2021 12:15:55 | Автор: admin
Делегируйте и доверяйте инженерам, не мешайте им творить!Делегируйте и доверяйте инженерам, не мешайте им творить!

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

Когда я только начинал работать в отрасли электроники в начале 2000-х и мечтал создавать серийные устройства на острие технологий, то мог рассчитывать только на собственные ресурсы. Не было доступа к западным рынкам свободного капитала, менторов, хабов и акселераторов всего того, что сейчас формирует hardware-экосистему, да и доступ в интернет в те времена только недавно заработал без Dial-Up :-).

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

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

Конечно, есть бизнесмены, которые осознанно запускают аутсорсинговые компании: они с самого начала мыслят категориями роста и операционной эффективности, относительно быстро преодолевают планку в 200500 сотрудников и выходят на новые рынки. В этом состоит их цель и самореализация. Но есть и те, кого просто занесло в эту гавань в силу обстоятельств: обычно такие компании работают в составе 50200 сотрудников с несколькими миллионами оборота и годами остаются на этом плато.

На менторских сессиях я вижу, как молодые инженерные команды, которые искренне любят свое дело и хотят работать над собственным продуктом, вынуждены зарабатывать на работе по контракту. Они сомневаются, стоит ли им браться за заказные разработки, не станет ли это отказом от мечты. Но надо сделать свой выбор!

Этапы развития сервисной модели и точки для разворота

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

Так когда надо сворачивать?!

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

  • Предпринимательская: главный по продажам, главный конструктор/инженер/архитектор.

  • Административная роль: главный по проектам, главный по операционной работе.

  • Производственная (речь идет про производство сервисов в этом случае) роль: главный инженер и все инженеры-разработчики с конкретными специализациями, которые вносят в дело результат в виде готовой конструкторской документации и кода.

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

То, что я имею в виду под ролями, очень похоже на то, о чем пишет в своих работах Ицхак Адизес. Вот его код PAEI: P производитель результатов, A администратор, E предприниматель, I интегратор.

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

На этом этапе гораздо сложнее повернуть к продуктовой модели, но все еще возможно.

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

На этом этапе свернуть обратно к продуктовой модели будет почти нереально без трансформации всего бизнеса.

Что делать?

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

  1. Передать управление и предпринимательскую роль кому-то из своих партнеров внутри и позволить им свободно принимать ключевые решения вместо вас.

  2. Очертить свою новую роль в компании. Например: я остаюсь в качестве владельца и обозначаю стратегический вектор развития компании.

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

Но все равно вам придется начать этот бизнес с нуля, потому что придется собирать новую команду и преодолевать возникающие барьеры заново. Но дорогу осилит идущий!

Выводы: триггеры на пути к мечте и что дает аутсорсинг

Вернемся к тем, кто только стартовал, и для создания своего первого капитала и приобретения бизнес-опыта вступил на путь сервисной бизнес-модели. Итак, если вы только начинаете и готовы преодолевать препятствия на пути к своей продуктовой цели, то вполне можно посвятить 1-2-3 года работе по сервисной модели, но помнить о риске застрять в этой модели надолго и обращать внимание на важные триггеры, которые подскажут, что пора поворачивать к своей мечте:

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

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

  3. Третий триггер, наверное, самый главный удовольствие от своего дела. Если нет драйва и вы не видите смысла в росте и масштабировании, то есть риск остаться в нише середняков в аутсорсинговой модели в будущем.

А тем основателям и владельцам, у кого аутсорсинговая компания надолго застряла на плато в 50200 человек, пора задуматься: Своим ли делом вы занимаетесь?

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

  • получить нужные компетенции, первый бизнес-опыт и знания об отрасли;

  • собрать и сработаться с командой;

  • развить свой нетворк сеть бизнес-контактов.

Выбор как всегда за нами! А вы в какой лиге сейчас? Давайте вместе решим, что делать дальше!

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru