• Как вы распределяете время между программистами и задачами?

    kumaxim
    @kumaxim
    Web-программист
    Имеем 4 колонки на kanban-доске:
    1. Список заданий
    2. В процессе
    3. На проверке
    4. Исполнено

    Теперь о каждом чуть более детально.

    Список задач, он же backlog - список того, что вообще надо сделать. Сортируется это дело по приоритетам, т.е. самая верхня задача самая важная, самая нижняя - самая не важная. Отдельно отмечу, что только в данный момент времени. Отметок "Важная", "Важная 1", "Важная 2", "Срочная", "Горящая" и т.п. быть не должно. Если задача есть в этом списке, значит она важна для команды. Ее исполнение необходимо для нормальной работы команды. Акцентирую Ваше внимание, что именно в данный момент. Как тимлид Вы можете сделать только одну доработку в этой колонке - присвоить цвет каждому подчиненному. Например, Иван берет только синие задачи, Николай только желтые и т.п. Срочнось задач в компетенцию тимлида не входит, это зона ответственности менеджмента.

    В процессе - задачи, над которыми именно сейчас работают Ваши подчиненные. Не вообще работают, а вот конкретно в данный момент, когда Вы открывайте доску и смотрите на нее, Ваш человек сидит в IDE и пишет/отлаживает код. Колонка обязана иметь лимит. Все книжки рекомендуют начинать с 2n - 1, где N - количество людей в команде, а минус 1 потому что кто-то может с чем-то застрять и ему надо будет помочь. Порядок задач в этой колонке не важен. Важно только то, сколько они там находятся. У Вас должно быть какое-то время реагирования, т.е. если задача висит там 3-й день, то нужно спросить условного Николая, что у него там за проблема и не нужно ли ему там с ней помочь. Часто, это колонка разбивается на на две: в процессе и отложено. Вторая означает, что когда исполнитель начал работу над задачей, он не нашел, скажем, доступа к хостингу или данные к FTP/cPanel, предоставленные клиентом, оказались не верными. Колонка "Отложено" требует уже реакции менеджеров в духе "Звонок клиенту". Задачи от колонки "Отложено" менеджеры должны обрабатывать, дополнять и перемещать снова в backlog. Продуктовые команды, обычно, такую колонку не используют. Разного рода digital-агенства применяют это очень часто.

    На проверке - думаю, из названия понятно. Ваш подчиненный завершил задачу, Вам/Менеджерам/Клиенту надо ее проверить. В эту колонку задачи могут переносить Ваши подчиненные, но из нее переносить задачи могут только менеджеры или Вы.

    Исполнего или Готово - опять же, думаю понятно. Завершенные задачи. В конце рабочей недели по наполнению этой колонки можно оценить продуктивность команды или/и продуктивность конкретного разработчика, если Вы будите использовать схему "Человек - Цвет". Карточки из этой колонки отправляются в архив в пятницу в 19:00 или когда Вы там выгоняйте всех программистов из-за мониторов. Также, в конце каждой недели, должен чиститься backlog от более не актуальных задач. Помните что я писал выше? В первой колонке у нас только важные задачи, которые необходимы именно в данный момент. Если клиент "заглох" или "слетел" - его задачи из backlog должны быть отправлены в архив, вместе с завершенными задачами в пятницу в 19:00

    Отдельно отмечу, что появление задач с метками "Важное 1", "Срочное", "Очень-Очень срочное" в любой системе управления, не только scram/kanban, говорит о том, что в компании слабый менеджмент. Есть задача. Ее либо надо сделать прямо сейчас или в ближайшее время либо ее нет смысла делать совсем.

    Следует также помнить, что замена менеджмента и/или системы управления, ровно как и изменения в ней, должны исходить от собственика/директора либо при его одобрении и полной поддержки. В противном случае это очень быстро все заглохнет, окончившись не чем. Каким образом Вы донесете эту необходимость до своего Босса - уже вопрос отдельный.
    Ответ написан
    3 комментария
  • Как (и возможно ли) дотянуться до Junior JavaScript Developer в кратчайшие сроки?

    opium
    @opium
    Просто люблю качественно работать
    Пару книжек по джаваскрипт прочитать и вот вы Джуниор
    Ответ написан
    4 комментария
  • Как администрировать интернет-магазин?

    gobananas
    @gobananas
    finishhim.ru
    администрировать интернет-магазин и заниматься его продвижением


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

    Администратор:
    Знание CMS, чуток HTML желательно, щепотку фотошопа что бы самостоятельно порезать и оптимизировать картинки для загрузки, можно основы SEO на уровне правильного составления заголовков. Ну я надеюсь вы не думаете что он php-код будет править.

    Маркетолог:
    Директ и Эдвордс, SEO-оптимизацию и всё остальное.
    Ответ написан
    Комментировать
  • Git: объясните «на пальцах» разницу между rebase и cherry-pick?

    Все красиво объяснил Nkly777, только в блоке PS merge с rebase перепутаны.
    Добавлю картинок.

    git rebase devel - собачка на молнии - "сшивает" коммиты по дате их создания
    (ветка devel "растворяется" в основной ветке)
    518b8dbce1cd4f96b30de9782ae38fcd.png
    git merge devel - пожарная лестница, все коммиты ветки devel крепятся в конец, образуется пересечение
    (devel остается отдельной веткой, к которой можно вернуться)
    1ba8186d879d46ff85ea7c1e192328e2.png
    git chery-pick idea - забрать коммиты из ветки idea
    2717e3091f644ef2954aa2de4514f446.png
    Ответ написан
    2 комментария
  • Какие вопросы стоит задать разработчику онлайн магазина на WP Woocommerce что бы убедиться в его компетентности?

    greabock
    @greabock
    Могу
    Задать вопрос:
    "может ли он сделать качественный интернет-магазин который не будет тормозить и лагать на woocomerce".
    Если ответ "Да" - спец хреновый )
    Ответ написан
    4 комментария
  • Как создать правильный php скрипт на создание .json?

    dima9595
    @dima9595
    Junior PHP
    Так в чём проблема? Создайте нормальный запрос с доп. таблицами. Вы пытаетесь получить данные только по одной таблице.
    Ответ написан
    4 комментария
  • Как управлять ролями и правами Laravel 5 и VUE.JS?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Реализуется легко:

    на беке юзаете баунсер + $this->authorize/Gate::allows и проверяете нужные права, вне зависимости от фронта.
    на фронт с бека передаете берете массив пермишенов (абилитис в баунсере), в том же месте, где передаете юзера (не важно, отдельным запросом или сразу при загрузке страницы). Пишите во vuex'е нужные геттеры, как пример из моего проекта:

    export const can = (state) => (perm) => this.loggedIn(state) && state.authUser.abilities.includes(perm);
    export const canAny = (state) => (perms) => perms.some(x => this.can(state)(x));


    И юзаете директивы где нужно, предварительно импортнув нужные геттеры:

    v-if="can('chat.mute')"

    PS: не стоит писать свои директивы "v-can", ибо:
    1) они не информативны (непонятно, что они делают, если прав нет)
    2) прийдется написать с десяток таких, на все случаи жизни, типа "can-show", "can-if" и прочая лабудень.

    PS2: про "переход по страницам" и любые запросы на бек - ларавель сам кинет forbidden 403, проверяете интерцептором в axios'е на этот статус и кидаете на страницу с ошибкой/показываете окошко/нотификацию/птичку/кошку.
    Ответ написан
    Комментировать
  • Как на изображение наложить кнопочки?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Добавляете изображение в блок, в блок кидаете кнопки с div button {display: none;}, когда родитель ловит hover div:hover button {display: block;}. Используем для кнопок абсолютное позиционирование. Для блока родителя явно указываем position:relative;
    Ответ написан
    Комментировать
  • Зачем нужен атрибут key во vue?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Не знаю, что ещё можно добавить к уже сказанному в документации. Думаю, наглядная демонстрация поможет лучше понять, что к чему.

    Пример номер раз - key нет. Пример номер два - key есть. Тыкаем кнопочку и смотрим, что происходит со значениями в инпутах. В первом случае они остаются на месте, во втором начинают ездить по кругу (аналогично элементам массива). Почему так? Возвращаемся к процитированному вами отрывку из документации, и осознаём, что в первом случае

    Vue использует алгоритм, минимизирующий перемещение элементов

    а во втором

    Vue изменяет порядок следования элементов, основываясь на изменении порядка ключей
    Ответ написан
    12 комментариев
  • Как определить какой процессор производительней?

    Kaspol
    @Kaspol
    Общая формула решения имеет вид:
    V=f/l, где V(инстр/сек) - производительность, f(Гц) - тактовая частота, l(цикл/инстр) - CPI

    Следовательно, решение выглядит следующим образом:
    V(P1)=2*10^9/1.5=1,(3)*10^9 инстр/сек
    V(P2)=1,5*10^9/1=1,5*10^9 инстр/сек
    V(P3)=3*10^9/2.5=1,2*10^9 инстр/сек

    Ответ: Р2, где его производительность равна 1,5*10^9 инструкций в секунду

    Ваше решение почти верно, в качестве критерия производительности Вы взяли процессорное время, что допустимо, однако не учли приставку частоты.
    Ответ написан
    Комментировать
  • Как совместить Node.JS и PHP?

    LenovoId
    @LenovoId
    svg, css,js
    php + node.js + Django(python) это три абсолютно разные технологии и не имеющие ни чего общего между собой
    вы действительно такой мега крутой кто знает эти три разные технологии ?
    1) php - самостоятельный язык программирования
    2) node.js - серверный самостоятельный но использует js
    3) Django - это фрейворк на основе языка программирования Python

    а теперь мой вопрос вам : вы хотя бы имеете 1% знание каждого ЯП из этих ?
    Ответ написан
    3 комментария
  • Не понимаю, как переписать сложный sql-запрос после переноса сайта на другой сервер?

    @BorisKorobkov Куратор тега MySQL
    Web developer
    В дополнение к ответу vism

    Вариант 3: выбирать ID (который в group by), а уже потом по нему отдельным запросом остальную информацию.

    Вариант 4: для остальных полей (которые не в group by) использовать аггрегационные функции.
    Ответ написан
    Комментировать
  • Как правильно построить структуру таблицы пользователей с их привилегиями?

    Astatroth
    @Astatroth
    Я тут случайно
    Оставлю это здесь.
    Ответ написан
    Комментировать
  • Как сделать этот запрос правильно?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT *
      FROM (
        SELECT `id` 
          FROM `Orders` 
          WHERE `id` NOT IN (SELECT `order_id` FROM `OrderProducts` WHERE `delivery_complete` != 1)
      ) AS `o`
      JOIN `OrderProducts` AS `op` ON `op`.`order_id` = `o`.`id`
      JOIN `Products` AS `p` ON `p`.`id` = `op`.`product_id`

    Соответственно, меняете условие в NOT IN, так, чтобы во вложенном SELECT выбирались те продукты, которые НЕ соответствуют условию.
    Ответ написан
  • Почему laravel говорит, что не существует контроллера?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    но выгружая на хостинг вылезает сообщение
    Это происходит из-за того, что файловая система хостинга (скорее всего, Linux'а) чувствительна к регистру в именах файлов (в отличии от FAT/NTFS Windows'а, на котором у Вас работает OpenServer).

    Что бы такого не происходило - называйте контроллеры с большой буквы. А ещё контроллеры можно складывать в отдельные папки, например Controllers\Admin\MainController ...

    Что бы узнать, что именно вызывает контроллер с именем с маленькой буквы:
    1. Можно поискать по коду всего проекта вот это слово: "adminMainController" (простой метод)
    2. Можно запустить отладчик и последовательно пройтись по коду, однозначно выяснив где косяк

    UPD. Если хотите избежать подобных проблем в будущем - можете сразу (с начала разработки проекта) использовать любой виртуальный сервер с Linux'ом, запуская сайт там. Вариантов масса всяких:
    1. Взять VirtualBox и поставить туда Linux (и настроить всё как надо) самому
    2. Взять какого-нибудь готовый Vagrant или что-то в этом духе
    3. Взять подготовленный специально для Laravel - Homestead

    Лично я использую 1-ый вариант и дома и на работе и проблем за N лет пока ни разу не было. Правда, надо сказать использую такие варианты я не по тому, что у меня проблемы с именами файлов, а по тому, что мне не редко бывают нужны различные unix-утилиты на уровне проекта и тащить их в Windows - весьма сомнительное удовольствие (особенно с учётом того, что далеко не все под Windows они есть)...
    Ответ написан
    Комментировать
  • Как мне добавить к 001 единицу и чтобы стало 002?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    'лалала001' => 'лалала', '001'     // разбить на две части
    length = '001'.lentgh              // запомнить длину второй строки
    '001' => 1,                        // привести вторую строку к чсилу
    1++ => 2                           // инкрементировать число
    2 => '2'                           // привести к строке
    '2'.padStart(length, '0') => '002' // дополнить слева нулями
    'лалала' + '002' => 'лалала002'    // соединить строки
    Ответ написан
    1 комментарий
  • Где научат делать такую галерею?

    AndrewHaze
    @AndrewHaze
    Умею гуглить яндексом
    Где научат не знаю, а плагин можно отсюда взять
    Ответ написан
    2 комментария
  • Кто знает Админку(набор хелперов RBAC, file manager, grids, charts) для Laravel?

    amelihovv
    @amelihovv
    Фулстек веб разработчик
    Вам, как я понял, нужен backpack. В нем есть все, что вы перечислили: изначально это чисто админка с дизайном adminlte. На нее также можно поставить доп модули для работы с правами доступа, менеджер медиафайлов, просмотр логов. Все можно кастомизировать, прямо сейчас этим на проекте и занимаюсь :) Правда, он платный для коммерческого использования. Но не дорогой.
    Ответ написан
    2 комментария
  • Как определить объём работ и цену если в ТЗ одни общие фразы?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Работать на почасовке, за вашие бабки любые капризы.
    Ответ написан
    Комментировать