Pull to refresh
20
0
Send message

Где найти и как выбрать тимлида

Reading time11 min
Views25K


Предыстория


Привет! Меня зовут Виталий Шароватов, я уже 16 лет работаю в IT. Сейчас я руковожу направлением фронтенд в Badoo. В него входят две команды, которые занимаются разработкой и поддержкой десктопной версии сайта badoo.com, мобильной версии m.badoo.com и многими другими проектами. Да, десктопную и мобильную версии у нас делают отдельные команды. :)

Два с половиной года назад я пришел в Badoo разработчиком, со временем вырос до тимлида, а потом, когда было решено перевозить команду Desktop Web в Лондон, стал руководителем направления.

Прошлой осенью на Codemotion Milan я делал доклад о росте из разработчика в тимлида (и писал на Хабр статью об этом) и о том, с какими неожиданными моментами мне пришлось столкнуться, а теперь расскажу, как при переходе из лида в руководителя направления я справился с подбором и «выращиванием» тимлида в одной из команд (Mobile Web).
Читать дальше →
Total votes 68: ↑65 and ↓3+62
Comments38

Тестирование в Badoo «с высоты птичьего полёта»

Reading time21 min
Views37K


Мы много раз рассказывали о том, как мы пишем автотесты, какие технологии используем, как помогаем разработчикам с производительностью юнит-тестов и так далее. А вот про стратегию всего процесса тестирования, включая ручное, ещё ни разу не писали. Пришло время восполнить этот пробел.

Читать дальше →
Total votes 75: ↑75 and ↓0+75
Comments30

Кассовый разрыв: главная причина закрытия магазинов у новичков

Reading time7 min
Views57K


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

Итог — из бизнеса вынимается достаточно большая сумма.

А впереди несезон. Затраты выросли (аренда больше, продавцов больше), прибыли же могут оказаться на уровне первого года. Расходы становятся больше доходов, «подушки» нет — на резервные средства было куплено мороженое ещё в марте. Три основных расхода (80% по общей доле) — это закупка товара, аренда, зарплата. Глядя, что можно срезать, владелец начинает закупать чуть меньше товара и сокращает рекламу. Мол, всё равно товара же меньше. Прямое следствие — штопор, ведущий к закрытию.

Но давайте посмотрим всё в числах. Предположим, у нас есть очень единичная точка в регионе, которая делает 5 миллионов рублей выручки в год. Обычно это один из нескольких магазинов, но в нашем примере он будет единственным.
Читать дальше →
Total votes 134: ↑130 and ↓4+126
Comments84

Оптическое выравнивание и пользовательские интерфейсы

Reading time16 min
Views42K


Привет, меня зовут Иван Греков, я работаю во фронтенд-команде Badoo, занимаюсь вёрсткой пользовательских интерфейсов на проектах компании.


В работе с макетами интерфейсов я использую графические редакторы, такие как Adobe Photoshop и Sketch. В них все слои по умолчанию представляют собой прямоугольные контейнеры. Когда мы выравниванием один слой по центру относительно другого, то для выравнивания используются центры прямоугольных контейнеров. Такой подход крайне неудобен при работе с иконками, поскольку выравниваемые фигуры могут сильно отличаться от прямоугольных контейнеров. И чем больше несимметричная фигура отличается по площади и по точкам координат от прямоугольника, в границы которого она вписана, тем заметнее разница между центрами фигуры и её контейнера. Это приводит к дисбалансу композиции в интерфейсных иконках.


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

Читать дальше →
Total votes 95: ↑95 and ↓0+95
Comments34

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

Reading time10 min
Views80K
Взаимодействие человека с компьютером во многом опирается на графические элементы интерфейса, и цвет играет в этом процессе не последнюю роль. Как однажды сказал Pierre Bonnard: «Цвет не просто делает дизайн приятным для глаз, но и подкрепляет его».

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


Читать дальше →
Total votes 52: ↑49 and ↓3+46
Comments10

Что нужно учесть при проектировании системы, чтобы не было мучительно больно?

Reading time8 min
Views22K
В статье описаны проблемы при проектировании баз данных и немного всего приложения, которые потом с ростом проекта все сложнее и сложнее решить. Моменты, которые важно учесть на этапе дизайна, и не задумываться о них в последствии. Ну или задумываться за чашкой чая и фразой «А помнишь, как мы решили это сделать сразу? Сколько времени мы этим себе сэкономили!», а не с ощущением зубной боли и болезненном вздрагивании при каждом воспоминании. По мере роста системы и числа пользователей, дизайн базы все сложнее и сложнее изменить, и масштаб изменений становится все более глобальным и трудоемким.

Сейчас многие успешные проекты выросли из небольших стартапов, которые потом получили коммерческий успех и стали большими международными компаниями. Такая возможность роста появилась в последние 20 лет, в основном благодаря интернету и эффекту «стирания границ». Появились глобальные интернет-приложения и мобильные приложения, которые могут быть использованы в любой стране. Ранее, чаще всего, если приложение должно было быть международным проектом, оно и проектировалось уже сразу с учетом такого требования. Конечно, можно воспользоваться эволюционным подходом, и по мере роста проекта добавлять в него необходимые функции и масшатибирование. Но для облегчения внедрения дальнейших изменений, необходимо сразу учитывать масштаб некоторых базовых функций, изменить которые в дальнейшем сложно.

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


Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments32

Стандарты и шаблоны для ТЗ на разработку ПО

Reading time7 min
Views747K

Введение


Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…

И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):

• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.
Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments22

Moodle, как платформа организации eLearning и дистанционного обучения

Reading time8 min
Views68K
Когда заказчик просит развернуть ПО для eLearning или дистанционного обучения, каждый вкладывает в эти слова свой смысл:
  • Репетиторы и преподаватели, привыкшие к классно-урочной системе, чаще всего имеют в виду вебинары — им хочется просто делать то же самое, что они привыкли, только через интернет.
  • Издатели учебников и преподаватели, не планирующие покидать offline, обычно грезят об электронных учебниках для самостоятельного обучения учеников или для демонстрации на очных уроках.
  • Руководители небольших ВУЗов иногда воображают «магический черный ящик», куда можно загрузить учеников первого курса и вспомнить о них на выдаче диплома. Желательно, чтобы в «ящике» уже «лежали» все учебные материалы и алгоритмы по их применению.
  • В более крупных ВУЗах чаще нуждаются в централизованной системе тестирования, сбора и рецензирования письменных работ с автоматической проверкой их на плагиат.
  • Иногда eLearning представляют «серебряной пулей» решающей все проблемы ВУЗа. Стоит внедрить «eLearning» и всё сразу станет как надо: появятся учебные программы и сами-собой сертифицируются по образовательным стандартам третьего поколения, внедрится болонская система и модульное обучение, откуда-ни-возьмись вырастет ветвистое дерево компетенций, на котором зацветут привязанные к ним учебные материалы и творческие задания, преподаватели перестанут брать взятки, помолодеют и осовременятся, ученики перестанут «сдавать» и начнут «изучать». Достаточно выбрать правильный «eLearning» в красивой коробочке, купить и нажать кнопочку «Установить», а лучше попросить студента «за зачет» бесплатно скачать в интернете и поставить на старенькой машине с Windows 98 в лаборатории.
  • К сожалению, довольно распространена категория заказчиков, которым выделили деньги на eLearning и им нужно их потратить как-нибудь. Как ни странно, для IT-шника это одна из самых проблемных категорий, так как они часто исходят не из целесообразности, а из своих представлений о солидности и престижности тех или иных технологий и терминов.
  • Владельцы языковых школ хотят систему биллинга, учета и контроля видеоконференций, интегрированную с системами оплаты. Нечто, похожее на агентства-таксопарки, только с учителями в видеоконференции вместо таксистов.
  • Кадровые службы нуждаются в инструменте хранения истории повышения квалификации и организации дистанционного обучения и аттестации без отрыва от производства.
  • Новое веяние — электронные журналы и дневники, добровольно-принудительно внедряемые во всех школах, в лице нескольких продуктов-фаворитов, продвигаемых коммерческими компаниями или региональными госучреждениями, обычно — центрами при департаментах образовани. Объединены одной общей чертой: организованы на подобии сервисов сдачи налоговой отчетности online — заполняются вручную, без связи с обучением, в параллель к бумажным журналам. То есть бумажный журнал online, иногда erp/crm (распределение ресурсов, коммуникация с «клиентом»), но образовательной функции либо совсем нет, либо она не пригодна к применению.
  • Существуют и гораздо более экзотические варианты, включающие обучение в виртуальных вселенных, работу с виртуальными моделями и лабораториями и др.

Читать дальше →
Total votes 45: ↑39 and ↓6+33
Comments63

Выбор серверного окружения или как не нужно ставить Moodle

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

Moodle базируется на кросс-платформенных технологиях (LAMP), поэтому приложив время, силы и знания, можно заставить Moodle работать где угодно, от Moemo до Windows. В то же время, ни одна из платформ не является «серебрянной пулей».

Moodle — это профессиональный программный продукт Enterprise-уровня. По сложности, его можно сравнить с корпоративной ERP/CRM-системой. Разработчики сделали его дружественным к пользователю и удобным в администрировании настолько, насколько это возможно. И эта внешняя простота провоцирует дилетантский подход к внедрению: кажется, если специалист успешно справляется с установкой MS Office, администрированием сайта на Joomla или эрудирован в IT-технологиях, он без труда за час справится с установкой Moodle, а, затем, сможет вернуться к основным обязанностям.

Приведу 4 распространенных антипаттерна инсталляции Moodle:

Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments13

А если без JavaScript?

Reading time3 min
Views71K
В нашем мире без JavaScript никуда! Куча фреймворков, библиотек и прочей радости! jQuery плотно вошел в нашу жизнь. React с Angular пробивают дорогу к светлому будущему. Да и не за горами поддержка браузерами ES6 без Babel.

Но если тема заходит об обычном сайте со стандартным функционалом, не редки случаи, когда JavaScript начинают “злоупотрелять”. И все, в принципе, нормально… Но порой задаешься вопросом: «А если без JavaScript?».
Total votes 90: ↑76 and ↓14+62
Comments131

Как я был разработчиком, а теперь тимлид

Reading time16 min
Views90K

enter image description here


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

Читать дальше →
Total votes 158: ↑139 and ↓19+120
Comments164

Шаблоны проектирования с человеческим лицом

Reading time32 min
Views486K

image


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


Как сказано в Википедии:


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

image Будьте осторожны


  • Шаблоны проектирования — не «серебряная пуля».
  • Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
  • Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.

В статье приведены примеры на PHP 7, но пусть вас это не смущает, ведь заложенные в шаблонах принципы неизменны. Кроме того, внедряется поддержка других языков.

Читать дальше →
Total votes 148: ↑134 and ↓14+120
Comments98

Создание истории карточным методом: упрощаем жизнь сценаристам

Reading time7 min
Views42K

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


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


Lead

Читать дальше →
Total votes 50: ↑50 and ↓0+50
Comments59

[интеллект-карта] 462 полезных вопроса на все случаи жизни

Reading time1 min
Views18K
Вместо того, чтобы написать еще одну статью про мощные вопросы, допроектировали с slavapankratov программу, которую стартуем вот-вот. Как там говорится, что ни проектируй, все равно получится интеллект-карта. :) Вот и у нас она получилась:image[интеллект-карта] 462 вопроса на все случаи жизни (в форматах mm, mmind, xmind, mmap)Коммуникацией, как известно, управляет тот, кто задает вопросы. Поэтому последний месяц мы потратили на то, чтобы собрать полезные работающие вопросы по тому, с чем мы сталкиваемся в работе постоянно или можем столкнуться:
  • Конкретизация ситуаций и выход в конструктив
  • Прояснение целей
  • Встречи 1:1 с сотрудниками
  • Вход менеджера в команду
  • Собеседования
  • Работа с начальником
  • Работа с заказчиком
  • Совещания
  • Идеи
Понятное дело, что карта получилась огромная, поэтому мы провели бесплатный вебинар по тому, как ей пользоваться:
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments3

Самая нужная программа на свете

Reading time20 min
Views166K
image
Какими программами постоянно пользуются люди? Если подумать над этим вопросом, то окажется, что список этот не такой уж большой. К постоянно используемым программам можно отнести: саму операционную систему, файловый менеджер, текстовый редактор, браузер, мессенджер. Это именно тот базовый набор, которым пользуется на компьютере практически каждый человек. Требования к таким программам должны быть высокими: безотказная работа, быстрое выполнение всех функций, понятный и удобный интерфейс.

Можно сказать, что вышеперечисленный набор программ — это самые нужные программы, которыми пользуется человек в цифровую эпоху. Этот список покрывает все базовые потребности человека-пользователя. Или не все? Есть ли еще одна базовая потребность, которая не учтена в вышеприведенном списке самых необходимых программ? Является ли эта потребность самой важной из тех, что должен автоматизировать компьютер? Для меня такая потребность есть, но в списке самых используемых программ ей места не нашлось. Что же это за потребность?
Ранее компьютер считался устройством для проведения вычислений...
Total votes 115: ↑111 and ↓4+107
Comments303

Маленькая архитектура

Reading time6 min
Views23K


Я хочу стать архитектором ПО:


Это хорошая цель для разработчика


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


Хм. Ну, тогда ты вовсе не хочешь стать архитектором ПО.


Конечно хочу! Я хочу быть тем человеком, который принимает все важные решения.


Это хорошо, но ты не перечислил важных решений. Ты перечислил решения, не играющие особой роли.


В смысле? База данных – это не важное решение? Знаешь, сколько мы денег тратим на них?


Скорее всего слишком много. И нет, база данных – это не одно из самых важных решений.


Как можно такое говорить? База данных находится в самом центре системы! Там собраны все данные, они сортируются, индексируются и к ним осуществляется доступ. Без нее не будет системы!


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

Читать дальше →
Total votes 73: ↑64 and ↓9+55
Comments45

Ищем уязвимости с помощью google

Reading time8 min
Views148K
Любой поиск уязвимостей на веб-ресурсах начинается с разведки и сбора информации.
Разведка может быть как активной — брутфорс файлов и директорий сайта, запуск сканеров уязвимостей, ручной просмотр сайта, так и пассивной — поиск информации в разных поисковых системах. Иногда бывает так, что уязвимость становится известна еще до открытия первой страницы сайта.

Читать дальше →
Total votes 41: ↑36 and ↓5+31
Comments14

Простые опыты с ребенком дома

Reading time8 min
Views81K

Пример очень неудачного опыта, пояснение в разделе “о технике безопасности”

К моему предыдущему посту было множество комментариев по части экспериментов с детьми. Тогда я пообещал написать отдельный пост о простых увлекательных опытах. Сейчас я это обещание выполняю. Данная статья будет вводной, в ней я расскажу только о самых популярных и известных экспериментах которые легко выполнить дома с ребенком.
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments164

Почему я больше не использую MVC-фреймворки

Reading time16 min
Views132K


Уважаемые хабравчане.

Поскольку дискуссия вокруг статьи идет весьма активно, Жан-Жак Дюбре (он читает комментарии) решил организовать чаты в gitter.

Вы можете пообщаться с ним лично в следующих чатах:
https://gitter.im/jdubray/sam
https://gitter.im/jdubray/sam-examples
https://gitter.im/jdubray/sam-architecture

Также автор статьи разместил примеры кода здесь: https://bitbucket.org/snippets/jdubray/

По поводу кода он оставил следующий комментарий:
I don't code for a living, so I am not the best developer, but people can get a sense of how the pattern works and that you can do the exact same thing as React + Redux + Relay with plain JavaScript functions, no need for all these bloated library (and of course you don't need GraphQL).
Читать дальше →
Total votes 78: ↑67 and ↓11+56
Comments254

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

Reading time9 min
Views57K
Маретт Флайс (Marette Flies) было 11 лет, когда её иммунная система восстала против неё. В 1983 году у девочки нашли волчанку. Системная красная волчанка — это аутоимунное заболевание, при котором антитела повреждают ДНК здоровых клеток. От иммуноподавляющих препаратов лицо Маретт опухло, а волосы выпадали. Позже начали воспаляться почки, появились судороги и поднялось кровяное давление.

В 1985 году антитела атаковали факторы свёртывания в крови. Маретт удалили матку — девочка могла истечь кровью во время месячных. Несмотря на множество препаратов кровяное давление росло. Появились проблемы с сердцем, и врачи решили применить Цитоксан, крайне токсичное лекарство, которое могло убить девочку.

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

image
Aaron Tilley and Kerry Hughes
Читать дальше →
Total votes 61: ↑58 and ↓3+55
Comments271

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity