Ответы пользователя по тегу Организация работы
  • Как подключить отдельные файлы используя wiredep?

    voidnugget
    @voidnugget
    Программист-прагматик
    Если читатать доки - становится понятно что есть опция exclude,
    которая принимает строки и регулярки.
    var wiredep = require('wiredep').stream;
    
    gulp.task('wiredepWIthoutJquery', function() {
      return gulp.src('index.html')
        .pipe(wiredep({
          exclude: [ /jquery/],
        }))
        .pipe(gulp.dest('./dest'));
    });
    Ответ написан
    Комментировать
  • Как из Team Lead вырасти до CTO?

    voidnugget
    @voidnugget
    Программист-прагматик
    Нужно
    1. Хорошо понимать как масштабировать приложения, как вертикально так и горизонтально. Как на запись так и на чтение. Внедрять различные наукоемкие вещи по потребности.
    2. Понимать недостатки всех существующих решений и как их можно разрешить. Как правило 80% всего-всего - банальный CRUD, и в большинстве случаев это тонны копи-постного кода аля "одна табличка - один контроллер" без 3-4 нормальной формы модели БД. Со стороны браузеров тоже очень много нюансов. Нужно понимать все эти проблемы, некоторые из них пытаться решить - привлекать людей и создавать новые проекты и сообщества.
    3. Поддерживать реюзабельность, относительно простую поддержку и внедрение всех компонентов системы, внедрять SOA с хорошим покрытием тестами, не пренебрегая профилированием, фаззингом и нагрузочными тестами. Профилировать всё и вся нужно уже с самого начала работ.
    4. Правильно расставлять приоритеты и производить детальную выработку всех требований. Очень много времени в пустую тратится из-за неправильно сформулированных требований и плохо подобранные инструменты.
    5. Понимать как мотивировать существующий персонал, пытаться понять что побуждает людей к работе и какие у них внутренние цели, как правило деньги людей не мотивируют. Относится ко всем как к "ослам и морковке" очень глупо.
    6. Понимать возможные когнитивные искажения и психологические компенсаторные процессы у существующего руководства и коллектива, быть ключевым звеном на пути к их разрешению.
    7. Правильно делегировать свои собственные полномочия - иногда на всё это вас не хватит, нужно давать возможность другим решать все вышеописанные вопросы и проявлять инициативу.
    8. Нанимать и работать с людьми которые заинтересованы в развитии и перспективах вашего продукта, а не просто "делать что скажут за деньги" - так вы не сможете построить действительно конкурентоспособный продукт.
    9. Вдохновение не вечно - люди не смогут постоянно делать одно и тоже, нужно понимать что программисту лучше чувствовать себя художником нежели мясником в цеху рыбообработки.
    10. Понимать что названия должности не должны решать как будет работать коллектив - люди должны быть взаимозаменяемы, и они должны уметь анализировать и предлагать варианты решения задач для других. Чем больше мнений - тем точнее сформулированы требования и подобраны инструменты. Зацикливаясь на специализации и должностях - ваш BusFactor всегда будет 1-2, и в сложную минуту это сыграет злую шутку с вами и вашим коллективом.

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

    А вообще дело обстоит так что 80% проектов работают без вменяемого руководства и индивидуального подхода, не имеют жизнеспособной бизнес-модели и MVP, часто продают вакуум, плодят "грибных менеджеров" и "менеджеров-чаек".

    Стоит разобраться с существующими антипаттернами и находить их на текущих местах работы, искать пути их разрешения и пытаться объяснить почему подобная деятельность деструктивна.

    p.s. мне предлагали CTO, но на практике все обстоит так что организовывать всё-всё приходится с нуля без каких либо гарантий нормального сотрудничества.
    Ответ написан
    3 комментария
  • Как организовать рабочий процесс небольшой команды?

    voidnugget
    @voidnugget
    Программист-прагматик
    Сидим в slack'е с jira и phabricator'ом, но потиху слазим в trello, есть gitlab и gitlab-ci, тесты пока гоняются в browserstack'e. Из расходов - лицензия на browserstack, и пока что Jira. Всего сейчас работает 5 человек, и около 20 человек продажников и поддержки. CRM'ка самописаная, со своей админкой и своим Asterisk'ом.
    Ответ написан
    2 комментария
  • Необходимо описать функционал сайта, кто должен это делать?

    voidnugget
    @voidnugget
    Программист-прагматик
    Вообще зависит от каждого конкретного проекта, обычно выработка требований должна происходить при формировании и определении его задач самими исполнителями совместно с заказчиком, это рекурсивный процесс повторяется 4-5 раз (минимум 2-3 по ГОСТу для автоматизированных систем). Но в этом плане на фриланс слишком надеятся не приходится, так как контроль качества тут отсутствует в принципе, и заказчики особо не парятся по этому поводу... а фрилансеры/студии впаривают что могут/умеют, учитывая что универсальных инструментов не бывает выглядит это довольно печально.

    Главными критериями при подборе человека для написания любых ТЗ является наличие опыта
    1. Проектирования SOA
    2. Внедрения непрерывной интеграции и приёмочного тестирования
    3. Знание основных подходов и технологий на 3-4 языках программирования
    4. Организации долгосрочной поддержки продуктов (5+ лет)
    5. Формирования требований к проектной документации
    6. Формирования требований к профилированию, нагрузочному тестированию, вертикальному и горизонтальному масштабированию


    Если нужны PUSH нотификации, то это уже не MVC, а СQRS-ES ... и php / python / ruby для такого подходят довольно плохо так как довольно плохо утилизируют аппартные мощности серверов, и у них нет родной многопоточности/ассинхронности без костылей - были случаи когда люди слазили с ruby на golang и java, получали 10ти кратные приросты производительности и соответствующее уменьшения количества серверов.

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

    Пишите в скайп void.nugget,
    обсудим детали - помогу чем смогу.
    Ответ написан
    Комментировать