Software Architecture Principles by Bruce Lee – 4
April 16, 2012 Leave a comment
The techniques, though they play an important role in the early stage, should not be too restrictive, complex or mechanical. If we cling to them, we will become bound by their limitation. –Bruce Lee
This lesson highlights the limitations of any approach, architecture, or methodology. All methodologies and architectures have limitations; this is natural. We learn techniques and patterns in order to provide the framework in which we as practitioners (developers) operate, but we must always be aware that all of them have limitations. The mental framework that our experience gives us prepares us to know which technique to use when the appropriate situation arises. We should never begin any endeavor favoring a specific technique, solution, or tool. We should use the best tool at the appropriate time for that unique situation.
Walking into a sparring match (or combat) expecting to win with a right hook is similar to walking into a solution expecting to use a specific pattern and implementation. In both pain is sure to follow.