Tuesday, December 12, 2006
1. Backup. This is typically listed at the end. But I choose to list as the top priority. Rather than adding backup functions as an afterthought, it is best to design the architecture with backup in mind, right when you begin. The most important thing about backup is that it is automated. Systems tend to fail whenever you happened to forget to backup your data.
2. Speed. While Google's magic algorithm doubtlessly contributed to its success, my theory is that the blinding speed of the Google website was the top factor helping its early popularity. Google would return - and still does - return queries so quickly it would take your breath away. Nowadays, all engines are fast, but Google is still the fastest by a good real discernable interval.
3. Elegance. In programming terms, elegance can be defined as "lack of duplication". This is important, because if you change one thing somewhere, and forget to change it elsewhere, you are looked at a bug swarm. Hence, the less duplication you have, and the more elegant your architecture looks, the better.