10 уроков от разработчика и фрилансера

1
1457
views

Перевод статьи Фабио Заммита «10 lessons from a software engineer & freelancer».

Советы разработчикам

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

Урок 1: маркетинг – ваш лучший друг

Знание основ маркетинга очень помогает в работе. Это не имеет ничего общего с умением запускать кампанию на национальном телевидении. Основы маркетинга для разработчика это умение:

  1. Создать портфолио.
  2. Показать свои наработки.
  3. Рассказать всем (друзьям, семье, сети знакомых в LinkedIn) о том, чем вы занимаетесь.

За последние 15 лет большинство моих клиентов попали ко мне по знакомству, так что не стоит недооценивать мощь сарафанного радио.

Урок 2: полегче с жаргоном

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

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

Научитесь использовать простой английский (или любой другой язык, которым пользуетесь) при общении с не-технарями.

Урок 3: языки программирования важны, но…

Просматривая свою ленту Twitter, я вижу, какое внимание люди уделяют «лучшим» языкам и фреймворкам. Это, конечно, важно, однако этим «правильный» подход к проекту не ограничивается.

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

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

Урок 4: эго, эго, эго

Эго вам только вредит

Я считаю, что быть уверенным в себе человеком важно, поскольку это дает вам возможность более спокойно принимать определенные решения. Однако, как разработчик я предпочитаю не слишком отрываться от земли. Если вам интересно, почему так, я могу привести некоторые обоснования:

  1. Провалы бывают у всех, даже у самых опытных людей, так что снимайте свое чудесное белое пальто:) Я однажды по ошибке ввел sudo rm -rvf *, находясь в папке рута на машине с Linux. Упс! К счастью, обошлось без серьезных повреждений, поскольку мне удалось очень быстро все остановить.
  2. Это помогает вам стать лучшим разработчиком, поскольку время от времени вы начинаете сомневаться в себе.
  3. Люди больше вас ценят, поскольку вы ищете на самом деле лучшее решение, а не то, которое больше подходит вашему эго.

Урок 5: будьте откровенны

Перед началом любого проекта всегда четко объясняйте, каков ваш план по доставке. При этом будьте честны с клиентами или акционерами. Это дает собственнику продукта уверенность, что вы вкладываете деньги по назначению, и что вы профессионал в своем деле.

Не бойтесь говорить «нет», если чувствуете, что задача может сорвать весь план проекта.

Урок 6: планирование проекта играет ключевую роль

Планирование имеет большое значение

Когда вы запускаете собственное дело и всё постепенно начинает налаживаться, у вас будет появляться все больше и больше проектов. Это прекрасно. Однако без правильного подхода к планированию вы рискуете разочаровать своих клиентов.

Чтобы сохранять организованность, мы применяем такие процедуры и инструменты:

  • Диаграммы Гантта для планирования проекта дают нам представление о том, сколько времени занимает проект, какова последовательность задач и как распределяются ресурсы.
  • Мы используем Kanban в Trello для охвата всех задач. Таким образом мы можем видеть текущий прогресс и то, чем занимается каждый член команды.
  • Мы организовываем ежедневные стендапы для обсуждения проблем и прогресса каждого члена команды.

Если вы спросите, как все это применить для маленьких команд, например, для пары человек (или даже для одного), я все равно посоветую использовать диаграммы Гантта + Kanban. Будьте организованы, и не важно, насколько вы малы!

Урок 7: имейте понимание UX

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

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

Достигнуть этого можно двумя путями:

  1. Сотрудничеством с хорошим UX-дизайнером. Но если бюджет ограничен, переходите ко второму пункту.
  2. Читайте как можно больше на эту тему.

Урок 8: не будьте всезнайкой

Разработчик подобен греческому богу

Это связано с тем, что говорилось об эго, но заслуживает отдельного раздела. Мы, разработчики, часто чувствуем себя наделенными сверхспособностями, подобно греческим богам. Это может быть связано с тем, что мы решаем некоторые действительно сложные задачи. Не желая принизить ничьи достижения, следует иметь в виду, что команда разработчиков это еще не весь бизнес.

Есть и другие важные части бизнеса, такие как маркетинг, SEO и т. п., и у каждой из частей есть свои запросы по функционалу. Мне случалось видеть, как эти запросы порой игнорируются и считаются неважными.

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

В общем, уважайте запросы специалистов из других областей и хорошо выполняйте домашнее задание.

Урок 9: будьте в курсе новинок и тенденций

Вы никогда не будете знать достаточно, даже после 15, 20, 30 лет работы в индустрии. Особенно, если вы работаете самостоятельно и не всегда имеете возможность обратиться к коллеге за советом относительно лучшего подхода.

Поэтому старайтесь оставаться на связи с сообществами и никогда не прекращайте учиться.

Стройте длительные отношения

Урок 10: стройте длительные отношения

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

Надеюсь, мои советы вам пригодятся!



1 КОММЕНТАРИЙ

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here