Как фрилансер, что именно считается проектной работой?

Немного обо мне. Я никогда не работал в компании и совсем недавно начал заниматься фрилансом и получил своего первого клиента. У меня около 5 лет солидного опыта в веб-разработке, и мои приоритеты — качество, доступность и соблюдение соглашений.


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

Почему меня беспокоит время

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

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

Что я не могу понять

Теперь я приведу примеры того, что, как я не уверен, было проектной работой.

Изучение и изучение того, как использовать новые инструменты. Как я уже говорил, я ценю качество и хочу реализовать лучшее решение, а не самое удобное для меня. Исследование — да, я думаю, что поиск наиболее подходящего инструмента для проблемы этого проекта — это работа над этим проектом . Однако, если разработчик не знаком с этим инструментом? Я, как разработчик, должен знать, как «разрабатывать», что включает в себя использование различных фреймворков и инструментов. Научиться использовать такое кажется личным усилием. Несмотря на то, что это в интересах проекта, клиент платит за выполненную работу, а не за улучшение моих навыков. Я имею в виду, он мог просто нанять кого-то, кто уже знаеткак использовать этот конкретный инструмент вместо того, чтобы платить кому-то за его изучение?

Технические трудности. Сегодня я потратил 6 часов на выяснение того, почему я не могу установить SFTP-соединение с хостом сервера моего клиента. Я отслеживал 1 час. Затем я продолжал усердно работать, пытаясь решить эту проблему. Перезагрузка компьютера и маршрутизатора, возня с настройками, пинг , трассировка , исследование, проба разных FTP-клиентов, публикация в Super User... Оказалось, что мой IP-адрес по какой-то причине был забанен на хостинговой платформе. Мой клиент внес его в белый список, и все было в порядке. Впрочем, я его не виню, он не знал, что меня забанили, и я тоже . Я чувствую, что платформа должна была поместить какое-то предупреждение о запрете IP-адресов в своих деталях доступа .страница... Я добавил еще 3 часа в качестве автономной работы и оставил 2 неотслеживаемыми.

Вопрос

Я еще даже не начал работать над реальным проектом, я все еще жду дизайнера. Тем не менее, 7 из 10 часов уже отработаны! Эти часы были потрачены на то, чем бы я не занимался, если бы не взялся за проект. С моей точки зрения, это проектная работа. С точки зрения моего клиента, кажется, что проект не продвинулся. Стоит отметить, что он вообще ни на что не жаловался. Он крутой.

Что меня беспокоит, так это то, что мой клиент будет платить за потраченное время:

  • при нулевом проценте прогресса
  • решение проблем, которые мы оба не могли контролировать

Это справедливо?

Ответы (4)

Я собираюсь начать с прямого ответа на ваш вопрос: выставлять счета по продуктивным часам.

Например:

  • Продуктивно: время на исследование и сбор дизайнерских ресурсов или плагинов для этого конкретного проекта.

  • НЕ продуктивно: время на изучение навыка, который можно применить во многих проектах (возможно, новый набор инструментов).

  • Продуктивно: Настройка сервера или настройка параметров на сервере.

  • НЕ продуктивно: научиться использовать существующий сервер или платформу.

(Конечно, я не говорю, что обучение непродуктивно. Когда я говорю «продуктивно», я имею в виду активное достижение вех.)

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

Тем не менее, я хотел бы обратиться к проблеме с сервером именно потому, что она кажется намного сложнее, чем просто «обеспечил ли я ценность для клиента или нет?»

Вы потратили впустую время, которое можно было бы потратить на выполнение оплачиваемых задач для кого-то другого, практически бесполезных для вас (не похоже, что вы учились в то время). То, что вы дали им, было бесплатной технической поддержкой, а бесплатная техническая поддержка — это очень опасный путь для начала. Если это повторится в будущем, я рекомендую одно из двух:

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

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

Просто всегда следите за собой и старайтесь по возможности не раздавать свободные часы.

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

А. Как я могу правильно предсказать количество времени, которое я потрачу на клиента?

B. Как я могу заставить клиента согласиться оплатить время, которое я потрачу?

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

  1. Проблема частично решится сама собой, как только вы приобретете больше опыта в решении таких проблем, так как это займет у вас меньше времени, и вы примете эти проблемы во внимание, когда будете прогнозировать количество времени, которое вам потребуется. Хороший совет — удвоить (или даже утроить) количество часов, которое вы изначально прогнозируете, так как всегда будут какие-то сюрпризы.

  2. Когда клиент обращается к вам с проектом, вы должны создать своего рода техническое задание для проекта или хотя бы список, указав все элементы, которые вы будете обрабатывать для клиента. После этого вы должны сделать его как можно более подробным (не беспокойтесь - он будет работать быстрее, как только вы освоите его), и как только каждый элемент будет достаточно подробным, вам будет легче предсказать время для каждого элемента. Вам не нужно показывать клиенту полный подробный список, но я считаю, что показ хотя бы пунктов списка позволяет клиенту вспомнить дополнительные проблемы, которые он забыл упомянуть, вы оба будете знать, что вы подписались делать, и как бонус, вы сможете объяснить, почему это займет время, за которое вы просите заплатить. В качестве простого примера - если клиент заказывает форму входа, список может быть таким:

    • Создание короткого списка требований в т.ч. внешний вид формы
    • Создание лицевой стороны формы
      • Некоторые работают в Photoshop, чтобы нарезать разработанную форму из PSD, предоставленного клиентом.
      • HTML-код
      • JS-код
      • CSS
    • Создание серверной части формы
      • Проверка данных по заранее определенным правилам
      • Обработка данных - сохранение в БД и/или отправка на почту клиента
    • После завершения кодирования формы
      • Загрузка файлов на сервер
      • Внедрение формы на существующий сайт клиента
      • Проверка правильности проверки данных формы, их сохранения и отправки по электронной почте.
      • Предоставление клиенту 1 часа поддержки по телефону

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

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

  2. Когда вы беретесь за проект, который включает в себя какую-то новую технологию/платформу, с которой вы еще не знакомы, вы должны это учитывать. это требуется для проекта клиента, если только знания не являются специфическими для клиента. Например, если вы хотите заняться проектами веб-разработки с использованием PHP и MySQL, клиент не должен платить за то, чтобы вы научились писать запрос MySQL или устанавливать шаблон в Wordpress, но он должен заплатить, если он хочет, чтобы вы поддерживали/ изменить/исправить свой существующий проект, написанный на PHP, используя некоторые внутренние библиотеки какой-то небольшой компании-разработчика программного обеспечения

  3. Относительно справедливости и по существу - если вы потратили время на проект и решение технических вопросов клиента, то это не нулевой процент прогресса - прогресс должен включать в себя и этапы подготовки. И если вы потратили время на решение вопросов, которые вы оба не могли контролировать, то вы должны объяснить это клиенту, и он должен понять, что вы потратили время на него и вам должны заплатить. Оптимально, чтобы все такие проблемы были в контракте, и клиент был бы уведомлен о проблеме до того, как вы на самом деле потратите слишком много времени на ее решение. Если вы хотите, чтобы это было абсолютно честно, вы можете поговорить с клиентом, объяснить проблемы и предложить выставить ему счет по более низкой ставке для этих конкретных проблем, как предложил @a_mediocre_riot.

Вы можете быть убиты этим.

Я рекомендую фазы

Функциональные требования
x недель

Доказательство концепции
x - y недель

Конечный продукт
x - y недель

Приемочное тестирование
x неделя
, здесь они убьют вас и попытаются прокрасться — не позволяйте этому быть циклом разработки

Раскатать
по часам

Поддержка
по часам

В конце каждого этапа они получают жесткий номер для следующего этапа.

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

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