The design of reusable software components as a method for software reliability, productivity and maintain-ability is becoming more central with the increasing popularity of object-oriented languages. This paper provides guidelines and suggestions as to which operations (member functions) should be included, what the level of complexity should be, how these operations should be documented, and so on. It presents practical and easy-to-remember guidelines on this software development process.