просто знать профиль, видеть будущую цель.
А для чего тогда нужен тим лид?
Вот есть компания, есть владелец компаний, есть ген директор, есть директор деп ИТ, есть старший программист, есть программисты.
Вот чтоб владелец компаний не говорил каждому программисту что делать, он просто назначает цель компаний и миссию.
Потом задачи в цели распределяются между руководителями, потом каждый руководитель распределяет среди своих руководителей, а они в свою очередь зная цель компаний объясняют своим подчиненным. В собраний ИТ отдела, руководитель своим старшим распределяет задачи и назначает курс по которому нужно идти чтобы добиться цели.
Зная цель, зная предметную область старший программист или лид, назначает среди программистов задачу, проверяет правильно ли они идут, а если не правильно направляют в соответствии с поставленной задачей руководителя ИТ. А вдруг если возникли вопросы, также идет к руководителю, уточняет как быть и делает поправки в проекте.
Примерно вот так.
Я думаю просто нужно обладать предметными знаниями, иметь опыт работы в сфере. А дальше, когда ты понимаю чего от тебя хотят, ты можешь направить программистов куда надо