Источник: Современный Бизнес
О технологиях
Решения, которые вы принимаете в первые дни существования вашего стартапа, будут вызывать последствия еще долгое время.
За годы своей работы я понял, насколько важен правильный выбор инфраструктуры, фреймворков и языков программирования на ранних этапах проекта, ведь с ними вам придется работать очень долгое время.
По мере роста компании вам нужно будет добавлять новые функции и подсистемы, и каждая будет привязана к вашему выбору.
Со временем сама мысль переделать все заново и с нуля станет недопустимой.
Некоторые технологии живут, на удивление, мало времени. Вам нужно заранее продумать переход на новые методы.
А вот компоненты и библиотеки, которые вы пишете, останутся с вами надолго, поэтому вам обязательно нужно сделать так, чтобы они были сделаны хорошо ради тех, кто будет ими пользоваться в будущем.
Об изменениях
Я всегда был противником «кардинальных изменений», когда останавливается разработка какой-либо функции и переделываются целые куски системы.
Из-за таких перемен погибает множество проектов. Нашей компании в этом плане пригодилось правило бойскаутов: «постарайся, чтобы мир после тебя стал чуточку лучше».
Мы стараемся вносить небольшие улучшения в код, с которым работаем.
Результаты глобальной переработки базы исходного кода всегда далеки от совершенства, поэтому лучше понемногу постоянно ее дорабатывать.
О тестировании
За время работы я заметил, как неохотно наша команда занималась разработкой тестов.
Я написал алгоритмы тестирования для множества частей нашей системы и настроил сервера так, чтобы они автоматически запускали их при каждой проверке.
Но все равно мои работники редко добавляли какие-либо тесты. Вот какое решение этой проблемы я нашел:
1. Проводите специальные сессии для того, чтобы сотрудники освежили свои знания о том, как писать тесты.
2. Все важные функции должны включать хотя бы один тест.
3. Оптимизируйте тестовый сервер, чтобы он обрабатывал запрос за 10 секунд, а не за 10 минут.
О менеджменте
Помимо принятия технических решений, на плечах CTO также лежат задачи по менеджменту.
Большая часть ваших повседневных занятий будет посвящена управлению, найму и увольнению людей.
Я много слышал о том, что самый ценный ресурс компании — это ее люди, но даже не догадывался, насколько тяжело их нанимать.
Мой совет новичкам: лучше потратить больше времени на найм и отказать большему количеству человек. Тщательнее фильтруйте кандидатов.
Идеального члена команды стартапа крайне тяжело найти, и на его поиски у вас уйдет много времени и сил.
Важно знать, когда именно надо нанимать того или иного человека и на какую должность нужно искать людей в первую очередь.
Это особенно тяжело, когда вы только получили инвестиции и чувствуете, что должны вложить деньги в работу.
Вам пригодятся следующие советы:
Если вы не уверены, что вам нужен человек на определенную роль, возможно, слишком рано его нанимать.
Управлять людьми будет проще, если вы будете постоянно, открыто и честно спрашивать у сотрудников, что для них хорошо, а что плохо. Так мне удалось поддерживать с коллегами здоровые и продуктивные отношения.
Я также узнал, что увольнять людей нелегко. Советов о том, как это делать, много.
Я же скажу, что интуиция подскажет вам, кого надо уволить задолго до того, как вы примете это решение. Но вам всегда это будет трудно сделать.