Тот, который сам:
Умеет учиться и искать нужную информацию.
Умеет оценивать: сложность проекта, время разработки проекта, риски при разработке и тестировании проекта.
Умеет правильно сформулировать для себя поставленную ему задачу и согласовать порядок работ и сроки их исполнения.
Следит за качеством своей работы: архитектура проекта согласно поставленной задаче, потребление ресурсов, скорость исполнения кода, читаемость кода, расширяемость функционала и т.д.
Следит за своевременным информированием руководства о прогрессе работ по данной ему задаче (ответственность) и редко срывает сроки (опыт и профессионализм).