• Как реорганизовать процесс разработки и увеличить её скорость, если нету документации, куча костылей и старый код?

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

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

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

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

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

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

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

    Если уверены, что проблема именно в этом запросе, то анализировать нужно не запрос, а план его выполнения (explain ...). Без плана ничего дельного сказать нельзя. Можно только предложить абстрактные идеи для оптимизации:

    1. продуманные индексы
    2. денормализация
    3. материализованные представления
    4. партиционирование
    5. типы движков
    Ответ написан
    Комментировать
  • Может ли статическая модель программной системы не иметь отношений ассоциации?

    @kn0ckn0ck
    Продюсер
    Странный вопрос и ответ вроде бы очевидный. Вопрос в границах системы. Представьте микросервис, который по адресу определяет почтовый индекс и наоборот. Статическая модель системы состоит из одной структуры, в которой хранятся пары {индекс,адрес}. Пример может вырожденный, а может и практичный, кому судить?
    Ответ написан
    Комментировать
  • Проектирование по требованиям и написание ТЗ для разработчика, как?

    @kn0ckn0ck
    Продюсер
    Лучше всего учиться на примерах. С другой стороны, если у вас есть макеты, дизайн и структура БД, то это фактически и есть ТЗ. Вам осталось минимум - записать это в форме удобной для исполнения и контроля. Разбейте систему на небольшие участки (формы, страницы и т.п.), это будут разделы вашего ТЗ. Наполните эти разделы тем, что у вас есть. Вот и готовое ТЗ.

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

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

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

    или вопрос был про то, что написать в отчете, чтобы было понятно, что потраченные деньги были на что-то потрачены?
    Ответ написан
    Комментировать
  • В чем можно вести свой проект?

    @kn0ckn0ck
    Продюсер
    Google Docs?
    Ответ написан
    Комментировать
  • В какой момент вы понимаете, что продукт готов к переходу со стадии бета версии на стадию полноценного монетизируемого продукта?

    @kn0ckn0ck
    Продюсер
    Критерии готовности продукта:
    - [качество] нет ошибок, которые бы мешали использованию продукта
    - [целостность] любой пользователь может пройти от начала до конца, не прибегая к помощи разработчика
    - [обучаемость] приложение понятно настолько, что пришедшие 1000 пользователей не завалят поддержку тупыми/одинаковыми вопросами
    - [нагрузка] приложение выдержит одновременную работу 1000 пользователей (цифра условная)
    - [отслеживаемость] в любой момент вы понимаете где находится пользователь, что не получается, что не работает как задумано, есть возможность связаться с разработчиком и получить адекватный совет по дальнейшим шагам, есть возможность понять почему пользователь вывалился из workflow и возможность связаться с ним.
    Ответ написан
    1 комментарий
  • Какие достоинства/недостатки у работы по SCRUM?

    @kn0ckn0ck
    Продюсер
    Вопрос конечно с подвохом, потому что для одного преимущества, а для другого это же недостатки :) Тут уж на любителя... Но по мне так:

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

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

    @kn0ckn0ck
    Продюсер
    Raspberry Pi 3
    Ответ написан
    Комментировать
  • В чем ведут тестовую документацию?

    @kn0ckn0ck
    Продюсер
    Обычно, для ведения документации и хранения тестовых отчетов тестировщики пользуются чем-то вроде этого: TestRail, Devprom ALM, TestLink, qTest и далее по списку Test Case Management systems
    Ответ написан
    Комментировать
  • Появилась идея сайта как составить T3 правильно?

    @kn0ckn0ck
    Продюсер
    Как правило ТЗ на сайт не очень сложные, поэтому использовать тяжелые стандарты (ГОСТ и прочие) это как из пушки по воробьям. Вот здесь есть примеры ТЗ в том числе и для сайта.
    Ответ написан
    Комментировать
  • Почему так мало стартапов используют .net в качестве основной платформы?

    @kn0ckn0ck
    Продюсер
    Потому что все технологии Microsoft замкнуты на:
    1. Microsoft
    2. Корпоративный рынок

    С другой стороны Microsoft потеряла лидерство в технологиях, инструментах и т.п. Все ультрасовременное есть бесплатно и без Microsoft, они просто не нужны стартапу.
    Ответ написан
    2 комментария
  • Что выбрать для постановки и контроля выполнения задач в команде?

    @kn0ckn0ck
    Продюсер
    Битрикс24
    Ответ написан
    Комментировать
  • Какое хранилище использовать если нужны временные срезы данных?

    @kn0ckn0ck
    Продюсер
    Да, такой инструмент называется темпоральные СУБД. Кстати, многие современные РСУБД имеют необходимые для этого расширения или механизмы.
    Ответ написан
    Комментировать
  • Можно ли использовать прямые запросы к БД в функциональном тесте?

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

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

    Например, если какой-то тест проверяет количество записей, то в setUp обязательно должно создаться это количество записей (каким образом - это уже другой вопрос). В этом и заключается суть изоляции - для каждого теста есть свой (и только) набор данных, с которыми тесты могут делать все что угодно и другим тестам на это фиолетово.
    Ответ написан
    1 комментарий
  • Можно ли создать инцидент с собственного сайта?

    @kn0ckn0ck
    Продюсер
    Можно. Из простого:
    1. забацать интеграцию через Zapier, но придется платить, если будет много запросов
    2. с формы отправлять json на JIRA REST API
    второе проще и бесплатно.
    Ответ написан
  • Что значит i:r, d:r и т.д. в ER-диаграммах в БД?

    @kn0ckn0ck
    Продюсер
    Если словосочетание "правила обеспечения ссылочной целостности" не вызывает отторжения, то это они :)
    D:R - delete restricted
    U:R - update restricted
    ну и т.д.
    Ответ написан
    Комментировать