The Five Principles of Successful Software | Hacker News Reader