Best Practices for Interfacing Software with Hardware Components — Programming Keynou