- PVSM.RU - https://www.pvsm.ru -

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

В 2013 году я начал писать конвертер mammoth.js [1] для экспорта вордовских документов в HTML. Это небольшая библиотека на 3000 строк кода. И хотя в ней ничего выдающегося, меня не покидает ощущение, что простенький проект важнее и принёс больше пользы, чем десять лет работы в индустрии программного обеспечения.

Первую версию я написал в пятницу днём на работе, когда обратил внимание, как много времени коллеги тратят на копипаст текста из Word в CMS и последующее форматирование. Такие однотипные действия еженедельно забирают часы рабочего времени. Я написал утилиту для автоматизации этого процесса, с учётом нашей стройной рабочей системы конвертации стилей Word в нужные классы CSS вместо мешанины HTML-тегов, которые выдаёт нативный экспорт Word. Программка была не идеальной — коллегам всё равно приходилось что-то поправлять, но ускорила рутинные операции примерно на порядок.

Понятно, что аналогичная проблема с конвертацией из Word в HTML есть у многих людей, поэтому в свободное время я написал реализацию с открытым исходным кодом, сначала на JavaScript, затем портировал на Python и Java. С тех пор мне без конца приходят благодарности от пользователей. Они рассказывают, сколько времени сэкономили благодаря программе: возможно, самым приятным стало сообщение от мужчины, который написал, что сэкономленные часы каждую неделю проводит со своим сыном.

Сложно посчитать общую сумму сэкономленного времени, но наверняка она в сотни раз больше, чем я потратил на создание инструмента.

Признаться, в последние годы я не так уж много времени уделяю проекту. Стабильность формата docx означает, что основная функциональность продолжает работать без изменений. Большинство людей используют одно и то же небольшое подмножество функций, а новые юзкейсы и функции используются всё реже с каждой добавляемой фичей. Проект по своей сути не требует особой поддержки. Поскольку он пытается сохранить семантическую информацию путём преобразования стилей Word в классы CSS, а не создания точной копии в HTML, как это делает Word, то можно спокойно игнорировать большинство фактических деталей форматирования.

Если сравнить, за что мне платили деньги десять лет карьеры в IT-индустрии, то разница ошеломляющая.

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

Иногда я задаюсь вопросом, можно ли зарабатывать на жизнь с помощью mammoth. В принципе, донаты есть и сейчас, от регулярных пожертвований приходит примерно £1,15 в неделю, но я особенно не продвигаю эту опцию. Есть специфические случаи использования, более сложные, которые я не смогу реализовать в свободное время — например, поддержка уравнений — так что потенциально здесь можно заработать.

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

Но возникает какое-то ощущение, словно жизнь проходит мимо… Работа над инструментами, от которых сразу видна польза, даёт огромное удовлетворение. Есть множество областей, где простой софт может помочь людям — без всякого машинного обучения или стартапов с инвестициями. Я просто не знаю, как человеку вроде меня лучше всего внести свой вклад в это дело.

По теме:
Тим О’Рейли. Работа, которая имеет значение: основные принципы [2]

Автор: Анатолий Ализар

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/cms/367393

Ссылки в тексте:

[1] mammoth.js: https://github.com/mwilliamson/mammoth.js

[2] Работа, которая имеет значение: основные принципы: https://habr.com/ru/post/50513/

[3] Источник: https://habr.com/ru/post/574932/?utm_source=habrahabr&utm_medium=rss&utm_campaign=574932