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