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