Чаще всего, мне кажется, что я не делаю ничего сложного. Я не первопроходец и не делаю каких-то открытий. Мой подход в том, что я просто просто иду по уже проложенным тропинкам. Жду пока эти самые первопроходцы наступят на все грабли, зафиксируются на чём-то стабильном, а я просто воспользуюсь их наработками. Говорят, что мудрые люди учатся на ошибках других, да. 🧠
Любой достаточно большой проект это всегда перестройка по очень широкому ряду направлений. И инкрементальный рефакторинг обходом в ширину, на самом деле, гораздо более полезен, чем упороться в какую-то одну тему. Мы делаем такой большой объём работы именно потому, что мы знаем где и у кого подсмотреть хорошие решения, адаптировать их под нас. Главное какой-нибудь правильной абстракцией закрыть, тут действительно нужно подумать. Но если по каждому из этих направлений изобретать свой велосипед-реализацию, то, конечно, никакого времени не хватит, тем более достаточно небольшой командой.
А мы делаем очень дофига. Вот только за последние несколько месяцев… Поставили на ноги дизайн-систему на композе, наладив для этого коммуникацию с дизайнерами. Придумали механизмы как выносить модули с максимальной пользой для времени сборки, за этим как домино идут грэдл плагины, шаблоны, навигация и DI, до повсеместного использования пока не дошло, конечно, но перелопатить кучу материалов и продумать то пришлось. Без понимания метрик это тоже делать довольно бессмысленно, поэтому куча работы проведена, чтобы их научиться собирать.
Это не говоря ещё о том, что наши процессы эволюционировали от сборки бандла для гуглплея на компе разработчиков и тестирования непонятно каких сборок - до нормальных энтерпрайзных: с CI пайплайнами, кучей статанализа, автоматической публикацией, код ревью, тестированием фич, релиз трейнами и так далее. Предсказуемость и уверенность в космос улетели по сравнению с тем, что было всего лишь полгода назад. Хотя, очевидно, есть куда расти.
И это ещё не говоря про обычную текучку, которой, на самом деле, почти всегда больше, чем непосредственно технической работы. Митинги, обсуждения, где-то кому-то помочь, ответить на вопросы, триггернуть кого-нибудь для ускорения процессов, разобраться с бюрократией, доступы, тестовые данные, таких активностей вагон и маленькая тележка.
Самый кайф последнего времени в том, что удалось выпилить несколько нативных библиотек, из-за чего размер приложения в 3 раза уменьшили. Это прям сходу строчка в резюме. Но что необычного в том, чтобы просто мусор вынести, казалось бы. А чтобы понять, что это вообще мусор пришлось несколько месяцев вокруг него походить, потому что это сложно, этот огромный мешок с мусором раньше стеной был закрыт. 😱
Успокаиваю себя именно этим. Просто знать такое количество, пусть и верхнеуровневых, фактов - это уже скилл, для которого люди годами работают. Весь мой предыдущий опыт всегда сводился к тому, что так действовать рационально, поэтому я и развивался таким образом. Типичные 20% усилий ради 80% результата.
Ирония в том, что самый интересный технический контент создаётся людьми которые сильно погружены в то, о чём говорят. Сложно найти чем поделиться если ты просто перевариваешь опыт каких-нибудь HH, Авито и redmadrobot для good enough решения в контексте своего проекта. Ну да, обходишь свои ограничения, но тем не менее.
С другой стороны мне всегда нравилось читать или слушать вот такой рефлексивный поток сознания от других людей, проблемы то не новы, приятно понимать что ты не один такой.