Удовиченко Юрий написал: Обращайтесь - помогу. |
Что должен уметь делать профессиональный программист-фрилансер, кроме своих непосредственных обязанностей по грамотному и валидному написанию кода?
Вот двенадцать пунктов для будущей книги. Оригинал статьи тут:
Предлагайте свои или давайте обсудим уже внесённые. Приоритеты пока не расставлены, но я бы посоветовал по технологии книги «Номер 1» Игоря Манна оценить каждый из пунктов по пятибалльной шкале в отношении наличия каждого навыка лично у вас. А также дать вторую оценку о необходимости развивать этот навык в первую очередь.
Итак, поехали, что должен уметь фрилансер:
1) Работать по тайм-трекеру. Уметь оценивать своё рабочее время «на глазок» или по часам конечно хорошо, но на выполнение отдельных мелких задач иногда уходит слишком много времени, хотя мы этого даже не замечаем. Нужно научиться работать по таймеру – начал задачу, запустил таймер. Пауза или закончил задачу – таймер остановлен. Кроме того, открытая тайм-трекинговая система позволяет сразу видеть временные затраты вашим заказчикам, а следовательно, возникнет меньше вопросов о том, что именно вы делали сегодня или сколько задач вы выполнили.
2) Быстро и вдумчиво знакомиться с ТЗ. В этом наверняка у каждого будет свой подход. Например, мой главный критерий: «Если пунктов много – это будет стоить дорого, либо разбиваем документ на несколько документов». Потому что уследить все детали в объёмном ТЗ порой просто невозможно. Это можно преодолеть, назвав заведомо более высокую цену, но и тут позже не исключены неловкие ситуации. К тому же, заказчик как-то не любит задумываться, что на изучение документа тоже уходит ваше время, которое иногда стоит не так уж и дёшево.
3) Быстро отфильтровать предлагаемые задачи (техзадание) по уровню своих навыков.
Заказчики часто любят собирать множество задача в один длинный список, и особеннр любят вставлять в самом конце таких заданий что-то вроде, «а ещё создать мобильную версию сайта» или а ещё «переделать весь дизайн как-нибудь покрасивше». Кроме того в конце часто даётся какое-нибудь резюме, главная концепция или колючевой фактор. Поэтому не поленитесь заглянуть сразу в конец задания, я думаю в 30% случаев вас там ждёт удивительный поворот событий. Но может быть и так , что среди полусотни заданий, которые вы прекрасно знаете и выполняете кроется какая-нибудь зловредная правка js-модуля или разработка совершенно нового функционала, разбираться с которыми вам придётся очень долго (Если вообще осилите). Такие пункты нужно сразу отсекать и сообщать, что их вы выполнить на данном этапе не сможете. Мы все не боги, чтобы знать 20 языков программирования или технологий, и создавать код на них одновременно.
4) Из пункта 3 вытекает важный навык быстро оценить время, затрачиваемое на выполнение задач. Здесь также у каждого должны быть своя методика. Я обычно делаю так ( интуиция меня подводит крайне редко). Сперва оцениваю стоимость работы в целом. Затем проставляю напротив каждой задачи время в часах или сумму, за которую я хотел бы её выполнить (кратно получасу, не стесняясь немного увеличивать в большую сторону). Потом суммирую итоговые часы и умножаю их на стоимость работы за час, либо сразу суммирую стоимость отдельных задач. После чего проверяю, та ли это сумма, которую я ожидал изначально. Если цифры сходятся, значит примерно так оно и есть. Можно ещё немного увеличить на всякие непредвиденные траты времени, общение или осложнения в процессе разработки.
5) Ценить своё время. Разговоры по скайпу, в мессенджерах, обмен документами и письмами, чтение ТЗ, объяснение почему это здесь так не сработает и предложение своих вариантов решения – это тоже ваше время. И оно должно оплачиваться. Особенно если речь идёт о случайных заказчиках и небольших задачах. Да, это очень сколький момент, т.к. наши работодатели этого не понимаю и понимать не хотят. Но если вы себя уважаете, вы как минимум должны хоть часть своих временных затрат на переговоры и подготовку к выполнению включить в стоимость работы.
6) Грамотно писать. Да, сейчас время тотальной неграмотности, я уже не так сильно обращаю внимание на неверные окончания и неправильные безударные гласные, но открою маленький секрет. Неграмотный текст выдаёт дилетанта с головой. Если со мной общается грамотный человек, я сразу понимаю, что этот человек «старой закалки» или как минимум человек, который следит за тем, что он делает – значит скорее всего это уже взрослый. В вот 15-20 летние разработчики будут писать всякую кашу. А теперь как вы думаете, кому отдаст предпочтение заказчик? Разработчику с опытом, или вчерашнему школьнику?
Ещё один важный момент – всегда проверяйте письма перед их отправкой. Не забудьте лишний раз перечитать и исправить комментарий в месенджере, если от этого зависит ваш престиж. Особенно если ошибка в имени заказчика!
7) Грамотно общаться. Да, это не одно и то же, что грамотно писать. Умение построить диалог, наладить контакт, убедить клиента – от этого никуда не деться. Так же, как и в реальной жизни.
8 ) Нормальные каналы связи. Хорошая вебкамера с качественным микрофоном (то, чего у меня нет до сих пор), скоростной и бесперебойный интернет (то чего у меня тоже не совсем хватает). Создайте профессиональный электронный ящик с уникальным никнеймом, подключите уже наконец скайп, телеграм, ватсапп, хотя бы два месенджера, где удобнее и проще общаться с заказчиком. Да и не только на десктоп или ноутбук, но и на телефон. Клиент должен до вас достучаться. Чем удобнее ему будет общаться с вами, тем больше вам гарантирована работа с ним. И да (мужики), не забудьте одеть футболку во время сеанса по видеосвязи!
9) Правильно и красиво заполненное портфолио. Согласен, для бэк-енд разработчика – портфолио это какая-то глупость. Вы же не дизайнер, вы не рисуете сайты. Вы их создаёте. Что показывать? Исходный код – пожалуйста! Хоть все четыре километра листинга. Я думаю, клиент ничего в нём не поймёт. Но где тогда гарантия, что этот красивый сайт создали именно вы? Мне кажется нет никакого шанса предоставить такую гарантию кроме как дать честное слова и может быть доступ в административную часть, если вы не боитесь рисковать.
А даже если и вы создали этот прекрасный сайт, то кто даст другую гарантию, что через два дня после закрытия проекта или последней задачи, какой-нибудь другой ушлый программист не снесёт его до основания или полностью не заменит ваш функционал новым?
Но интернет состоит в основном из сайтов. И тем не менее о сайтах (а следовательно и о вас тоже ) судят по одёжке. Поэтому пожалуйста позаботьтесь о том, чтобы у вас было качественное и достойное портфолио. Чтобы в нём содержались действительно стоящие разработки (хотя бы даже и сделанные не вами).
10) Правильно распределять рабочее время, выделять время на отдых. Учитесь планировать. Старый добрый тайм-менеджмент никто не отменял. И обязательно не забывайте, что отдых для программиста – это один из важнейших составляющих эффективной и полноценной работы.
11) Отсюда вытекает необходимость Заботиться о себе и своём здоровье. Физкультуру ещё никто не отменял. Скачайте на телефон упражнения для поддержания тонуса и делайте каждый день. Обязательно отрывайтесь от монитора и делайте упражнения для глаз, больше ходите, двигайтесь. Человек должен развиваться не только умственно, но также социально, духовно и физически.
12) Постоянно учиться. Вы PHP программист 80 уровня, умеющий самостоятельно настроить сервер и написать чистейший java script для работы во всех браузерах? Честь вам и хвала! А давно ли вы сверялись с тем, что вообще происходит в интернете? В курсе о новых фреймворках, движках, CMS, языках программирования, трендах, способах SEO-продвижения, новинках на западе и т.п. ? Уверен, всего всё-равно не объять. Но настоящий профессионал никогда не стоит на месте и постоянно развивается.
На этом пока все. Пишите, о чём забыл, что нужно дополнить.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».