State of the art of ICD programming: Lessons learned and future directions