Проект с текущим заказчиком подходит к концу и оставляет весьма странные ощущения...
Начиналось все весной 2021-го года, когда после короновирусного 2020-го дела у нас шли весьма не радужно. Первоначально вообще никаких заказов не предвиделось. Потом, к апрелю-маю, на горизонте вроде бы замаячила пара потенциальных проектов, но все что-то откладывалось и не складывалось (да и не сложилось в итоге). А тут на нас выходит человек, который говорит что-то вроде "Мне нравятся ваши SObjectizer и RESTinio, и мне кажется, что на их основе вы могли бы для меня сделать прототип нового продукта..."
Продукт был из совершенно новой для нас предметной области, в которой никакого опыта не было. Но не было и выхода, т.к. ничего больше в реальные заказы не трансформировалось. Поэтому решились ввязаться в драку и смотреть дальше по обстоятельствам.
При этом изначально предполагалось, что я буду на вторых ролях, что моя задача будет заниматься какими-то околосистемными и инфраструктурными вещами, вроде обмена BLOB-ами между процессами посредством shared memory. Ну и сперва никто не предполагал, что затянется все это не на один год.
Но что-то пошло не так :(
И с начала 2022-го года проектом занимался уже я один.
Временами это сильно напрягало, т.к. я все-таки не разработчик прикладных приложений. Библиотеки, фреймворки, утилиты, документация, обучение и обучающие материалы, помочь разработчикам. Это да, это мое, этого можно сколько угодно. Но вот GUI-приложение для конечного пользователя... Тут было непросто и сильно не по профилю.
Временами напрягало, временами отпускало.
Вот этим летом напрягло очень уж сильно. Сдерживало же то, что мы вписались в проект, сделали большой объем работы, но до логического завершения пока еще не довели. А бросать начатое не доделав мне нравится еще меньше, чем писать GUI-приложения для конечного пользователя.
Но тут до нас долетело очередное эхо войны (войны, которую соседняя страна скрывает за эвфемизмом СВО) и Atlassian "порадовал" новостью о грядущей блокировке моего аккаунта. При том, что разработка как раз ведется на Atlassian-овском bitbucket-е.
В общем, сложив воедино все факторы, включая и ряд неозвученных, было решено сотрудничество закончить, постаравшись завершить к моменту блокировки аккаунта те задачи, которые на мне еще висят. Чем, собственно, и занимаюсь.
Такая вот неоднозначная история получилась. Ведь вроде бы должен был быть "проект мечты", который и дает нам возможность погрузиться в новую тему, и оставляет время на развитие собственных проектов, и базируется на SObjectizer-е (RESTinio там не удалось применить из-за отсутствия в RESTinio HTTP-клиента), и мы в очередной раз оказались у самых истоков и начали с нуля, не имея багажа чужого легаси...
И, пожалуй, самое важное -- это мега-адекватный заказчик, прекрасно понимающий что такое разработка ПО. Ну вот реально один из лучших заказчиков, с которым довелось поработать за всю свою карьеру.
Так что, потенциально, все должно было бы быть хорошо.
Но что-то пошло не так.
Печально. Хотя есть и облегчение от того, что я перестану писать код, который мне не очень интересен.
Обычно стараюсь не распространяться о проектах и заказчиках, т.к. их у нас и не так много (мы все-таки пытались развиваться как продуктовая компания, а не аутсорсинговая, поэтому за заказы брались по необходимости "для поддержания штанов"), и не нравится выставлять кухню напоказ. Но что-то как-то... неоднозначненько, сильно двойственные ощущения. Вот и не удержался.
Если Заказчик адекватный, то оглядываясь на свой outsourcing-опыт, я бы попросил ввести полу-дизайнера, полу-программиста для GUI. Тут не нужен убер-эксперт, любой толковый middle будет выше крыши (соответственно, бюджет не так нагружаем). Ну и переехать на любой другой репозиторий/трекер. Плюсы: перестаём заниматься тем что не нравится, сохраняем проект и счастье Заказчика.
ОтветитьУдалитьА уж решать что делать со своим прерсональным счастьем - тут только один человек поможет, из Зазеркалья.
А мне как раз GUI был бы интересен. Пожалуй единственное, что может доставить мне боль, это фронтенд на Джава скрипте ;)
ОтветитьУдалить@Stanislav Mischenko:
ОтветитьУдалитьGUI бывают разные. Например, на Dear ImGui. Там своя специфика, сильно отличающаяся от привычного GUI на виджетах/контролах.
У меня опыт с GUI по большей части в мобильной разработке. Из плюсовых фреймворков только MFC, и то очень давно. Моё мнение, что виджеты/контролы это прошлый век. Мне куда интереснее эпловский SwiftUI или гугловый Flutter. Поэтому думаю, что с Dear ImGui я бы смог подружиться. Наверное при условии, что он не времён диназавров.
ОтветитьУдалить> Из плюсовых фреймворков только MFC
ОтветитьУдалитьИМХО, MFC был одним из самых неудобных и примитивных. С Qt все было гораздо приятнее.
> Поэтому думаю, что с Dear ImGui я бы смог подружиться
Да там ничего сложного и нет. Просто совсем другой принцип.
А какую ссылку посоветуете, чтобы можно было за 10-15 минут понять в чем суть гуглового Flutter?
К сожалению не посоветую. Я лично смотрел видео на ютубе и там долго и нудно и сильно больше, чем 10-15 минут. Суть на самом деле очень проста, и, я так понимаю, Dear ImGui построен по той же концепции. Каждый кадр строится модель виджитов, которая потом рендерится и уничтожается. Следующий кадр всё заново. Таким образом можно писать код в стиле:
ОтветитьУдалитьList {
Items(dataSource)
if {
Button "Exit"
} else {
Button "More..."
}
}
Любопытно, что immediate mode GUI в Web заехала. Нужно будет поинтересоваться.
ОтветитьУдалить