• Какие вопросы задавать заказчику?

    @kn0ckn0ck
    Продюсер
    Показывать нужно профессионализм. Профессионализм - это уверенное владение вопросом, ответственность за результат, ориентация на заказчика, воспроизводимость/повторяемость качественного результата.

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

    Чтобы создать видимость профессионализма нужно:
    1. говорить уверенно
    2. слушать, а не навязывать
    3. демонстрировать уверенное владение технологией производства
    4. говорить о проблемах и методах их решения/устранения
    5. отстаивать свои интересы

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

    Когда заказчик поймет предлагаемую технологию, поймет что вы ее прекрасно знаете, что вы знаете все тонкие места и подводные камни (то есть делали это многократно) - тогда вы создадите видимость своего профессионализма.
    Ответ написан
  • Как организовать постоянную связь ардуино?

    @kn0ckn0ck
    Продюсер
    Рассмотрите вариант с Buetooth LE, по типу этих

    Передатчик будет работать в режиме iBeacon, то есть отправлять определенную строку периодически в эфир. Он при этом потребляет что-то около 0.1 мА, радиус действия 10-15 метров.

    Приемник будет работать в режиме Master и периодически сканировать эфир. Управление приемником можно сделать на контроллере с помощью AT-команд.

    Этот вариант более интеллектуальный - можно просто передавать данные, заранее записанные (или считываемые) с передатчика.

    Стоимость BLE-модулей порядка 150 р. каждый, устанавливается в обычную макетку, если нужно собрать что-то быстро и для себя.
    Ответ написан
  • Как назначить цену на разработку электронного оборудования?

    @kn0ckn0ck
    Продюсер
    Есть три основных ориентира, которые нужно использовать при определении стоимости:
    1. себестоимость - материалы, ресурсы, подрядчики, собственные трудозатраты и т.п.
    2. выгода, которую получает заказчик;
    3. стоимость аналогичного продукта/услуги у конкурентов.

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

    Как-то так
    Ответ написан
  • Можно ли функционально связать тикеты в JIRA?

    @kn0ckn0ck
    Продюсер
    У этой связи нет специальной семантики (функциональности), более того, встроенными средствами видимо этот вопрос не решить. Ищите плагины, которые позволят выполнять действия над связанными тикетами.
    Ответ написан
  • Как в ERwin из одной сущности в другую отправить только первичный ключ без внешних ключей?

    @kn0ckn0ck
    Продюсер
    Здесь вам нужен суррогатный первичный ключ в таблице Технологическая карта. Я не уверен, что это решение проблемы, возможно, здесь вообще реляционная модель некорректная.
    Ответ написан
  • Управление голосом на Linux (Умный дом)?

    @kn0ckn0ck
    Продюсер
    Немного разбирался с этим вопросом и проблема тут не в микрофонах (кстати, а говорить через телефон - не вариант?) даже, а в софте, который позволит распознать русскую речь.

    Варианты какие есть:
    1. Использовать облачный сервис типа Яндекс.Алисы (кстати, платный), поскольку готовые западные не поддерживают распознавание русского, а интеграция с Google-вым сервисом требует наличия постоянной привязки к доменному имени (хотя это конечно решаемый вопрос, теоретически)
    2. Использовать библиотеку, расположенную на сервере в доме. Вариант отличный, поскольку не требует подключения к инету и всяких сложных настроек, но... к нему нет готовой интеграции к HASS (либо я не нашел).
    3. Использовать телефон с каким-то приложением, использующий штатные возможности Android и iOS и отправляющий команды в HASS (не знаю, есть ли что-то готовое в природе), здесь тоже нужна локальная сеть и/или доступ в интернет и статический IP.

    Если все сильно проще, то буду признателен за рекомендации где смотреть/копать.
    Ответ написан
  • Есть ли методологии/стандарты/лучшие практики описания требований разработчикам?

    @kn0ckn0ck
    Продюсер
    Да, их много разных. Отличаются в основном контекстом применения - где-то лучше работает одно, а где-то другое, например:

    1. просто - это User Story
    2. чуть сложнее - UseCases, IEEE 830-1998
    3. совсем тяжелый случай - ГОСТ 34, ГОСТ 19 или ГОСТ Р 51904-2002

    Для эксплуатационной документации посмотрите РД 50-34.698-90
    Ответ написан
  • Умный дом и IoT - насколько эта тема реально интересна сейчас в России?

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

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

    Так что варианта три:
    1. купить под ключ и наслаждаться комфортом
    2. собрать автоматизацию (не умный дом) простейшего сценария из "коробки" и успокоиться
    3. стать гиком, сэкономить и наслаждаться комфортом

    Выбирайте :)
    Ответ написан
  • Продажа 3d принтеров из Китая?

    @kn0ckn0ck
    Продюсер
    Сместите акцент с железки на ценность для клиента. Сам по себе 3D-принтер это тот еще головняк. Потребность в них может быть только у технически подготовленных энтузиастов, а их очень мало. Более того, такой энтузиаст и без вас закажет себе принтер, а то и сам его соберет.

    Для бизнеса вам нужна массовая поставка, то есть для массового сегмента. Массовый сегмент это вообще не про 3D-печать... пока вы существенно не упростите саму технологию или не покажете как на этом можно заработать.

    Я бы предложил начать со второго. Сделайте одностраничник, который научит любого желающего гарантированно заработать на 3D-печати и заказы потекут рекой.

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

    @kn0ckn0ck
    Продюсер
    Вопрос очень не прост.

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

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

    3. В зависимости от типа СУБД могут быть встроенные возможности работы с иерархическими данными, они накладывают требования на формат хранения данных. Это самый правильный путь организации хранения иерархий.
    Ответ написан
  • Какие тесты на каких этапах развития проекта наиболее важны?

    @kn0ckn0ck
    Продюсер
    Не знаю как на счет тех 46, но для начала выполните хотя бы обязательную программу:

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

    Этого должно хватить на ближайший год, потом спросите про остальные виды тестов :)
    Ответ написан
  • Какую плату брать в таком случае?

    @kn0ckn0ck
    Продюсер
    Знакомьтесь с задачей в два этапа:
    1. Цель первого этапа: go / no go, то есть понять вам: тянете, хотите, интересно, есть ли профит и т.п. Это знакомство с задачей за ваш счет. Очевидно, что знакомиться долго не выгодно, однако, если получите контракт, то это время окупится.
    2. Цель второго этапа - оценить стоимость. Этот этап нужно продать заказчику. Нет никакого смысла составлять ТЗ за свой счет, тем более, что это отдельная и самодостаточная услуга. Заказчик платит за ТЗ, вы существенно снижаете риски недооценки. Если заказчику ТЗ понравится, то контракт ваш на 90%.

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

    То есть схема простая и давно отработанная: интерес (2 часа) -> ТЗ (3 дня, $) -> код (3 месяца, $)
    Ответ написан
  • Как производить функциональное тестирование сайта?

    @kn0ckn0ck
    Продюсер
    Конечно, средств полно. Важно уточнить - какого рода тестирования и на какой платформе вам требуется. Для этого используются различные средства: функциональное тестирование = Selenium, нагрузочное = JMeter, безопасность = Nessus и т.д.

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

    @kn0ckn0ck
    Продюсер
    Достаточно использовать встроенные переменные, например, так:

    @echo off
    echo/| set /p =3.6.16.%SVN_REVISION% > version.txt
    @echo on

    В результате, в файле version.txt появится текст: 3.6.16.12331, где 12331 - номер коммита, на основе которого была собрана сборка.
    Ответ написан
  • Как сделать документацию к коду?

    @kn0ckn0ck
    Продюсер
    Есть две крайности, которых лучше избегать:
    1. красивая и исчерпывающая документация требует колоссальных ресурсов на поддержку
    2. сложно воспринимаемый код, без малейших подсказок с чего все начинается и чем заканчивается

    Стандартные решения:
    1. самодокументируемый код, составленный так, что читающий может понять что для чего и в какой последовательности работает.
    2. описание интерфейсов (назначение метода, тип/суть параметров и т.п.) в форме комментов в коде.
    3. автоматическая документация (генерится из комментариев) - эффективно, только если сам код закрыт.
    4. модульные тесты, фиксирующие требования к коду и демонстрирующие его использование.
    5. описание высокоуровневого дизайна (High Level Design, HLD), описывающий какие элементы существуют, их взаимосвязь друг с другом и основные сценарии взаимодействия.

    Работающая документация - это компромисс из этих практик, релевантный конкретной ситуации.

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

    @kn0ckn0ck
    Продюсер
    Разговор с боссом можно строить по понятиям, а можно по общепризнанным стандартам.

    Если идти по первому пути, то в качестве примеров можно привести описания вакансий QA director-ов из компаний, близких по размеру/индустрии.

    Если по второму, то в РФ есть профстандарты и, в частности, 40.010. В нем много букв, не поленитесь и посмотрите.

    Например, там описаны трудовые функции начальника отдела контроля качества продукции. Если ваша деятельность соответствует этим функциям, то это лучшее обоснование вашей должности.
    Ответ написан
  • Стоит ли ставить Sentry и почему?

    @kn0ckn0ck
    Продюсер
    Стоит не только ставить, но и активно использовать подход проактивного обнаружения дефектов. Это очень полезная практика как на стадии стабилизации/тестирования, так и при боевой эксплуатации ПО.

    Аналоги конечно есть: raygun, devopsboard, есть более специализированные под js, например, их довольно много.
    Ответ написан
  • Бест практикс для геосервиса?

    @kn0ckn0ck
    Продюсер
    За пол дня собрал такой сервис: https://github.com/cutecare/gas-map, под капотом:
    1. elasticsearch принимает данные (json post) и отдает их в карту, либо на аналитику (kibana)
    2. на Яндекс.Карте отмечаются кружками данные, которые берутся из elasticsearch

    Работает очень быстро, 700 тыщ в сутки - это десткий лепет для Elasticsearch. Есть масса альтернатив конечно.
    Ответ написан
  • Нет имени-нет доверия, что дальше?

    @kn0ckn0ck
    Продюсер
    Первая проблема: это не гениальная идея, ее легко повторить. Именно так и делают всякие сервисы защиты, предлагаемые Microsoft, Яндекс и подобными. Что ты противопоставишь этим конкурентам и как защитишься от новых?

    Вторая проблема: чью боль ты хочешь лечить этим продуктом? Частников? Микро-бизнес? Малый бизнес? Средний бизнес? Корпорации? От этого зависит вся бизнес-модель.

    Третья проблема: это серьезная бизнес-история, а ты спрашиваешь как это монетизировать... Посмотри сначала на это как на бизнес, а не как на проект - многие ответы появятся автоматом.
    Ответ написан
  • Как синхронизовать базу данных версии разработки и продакшена?

    @kn0ckn0ck
    Продюсер
    База данных состоит их схемы и данных. Данные могут быть разные: управляющие, пользовательские и т.п. За схему и управляющие данные (справочники, например) отвечает миграция. С этим как я понял у вас Ok.

    Зависимость кода от данных - это очевидный антипаттерн дизайна, который необходимо устранить. Тем более, если код зависит от пользовательских данных, типа ID пользователя.

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

    1. сливаем дамп с боевой базы данных;
    2. загружаем его на тестовый сервер;
    3. запускаем процедуру обфускации (удаления чувствительных пользовательских данных);
    4. загружаем управляющие данные, соответствующие тестовому окружению (если это нужно).
    Ответ написан