Tips for Writing Scalable & Flexible Software — Programming Keynou