This is a pattern based on my Fourth Principle (see SevenPrinciplesOfSoftwareDevelopment). Please give feedback at the bottom. Author: DavidHooker ------ '''Pattern:''' What You Produce, Others Will Consume ''Problem:'' A lot of software is produced that is hard or impossible to use, understand, maintain, extend, etc... ''Forces/Context:'' Seldom is an industrial-strength software system constructed and used in a vacuum. In some way or other, someone else will use, maintain, document, or otherwise depend on being able to understand your system. ''Solution:'' Always specify, design, and implement knowing someone else will have to understand what you are doing. The audience for any product of software development is potentially large. Specify with an eye to the users. Design, keeping the implementers in mind. Code with concern for those that must maintain and extend the system. ''Resulting Context:'' Software that is much easier to use and maintain. Someone may have to debug the code you write, and that makes them a user of your code. Usually, there are those that use the resulting executables of your code. Making users' jobs easier adds value to the system. ------ '''Feedback Section''' ------ This is true, but it is not a pattern. Just telling me to realize that other people will have to use my code doesn't tell me what to do. A pattern needs to tell me what to do. -RalphJohnson Granted, the actions in the Solution are very general, and don't lead directly to a resolution of the Forces. This pattern does, however, tell the reader to "design", "code", "specify", while '''thinking''' about certain things. Are there actually several patterns here, just at a finer granularity? Or am I getting across the right idea, just with the wrong words? -DavidHooker These principles are simple and easy to adopt. I too apply these in my work. Regards, Konka Kiran Kumar