Software developers are known for many traits. Unfortunately, one of those is ignoring the keep it simple philosophy. We tend to “show off” our prowess through complex designs and implementations. However, those rarely are the best ones in terms of maintainability and even performance. Simplicity has its benefits.
Keep It Simple – Direct Is Better
While there is a value in the “scenic route” when we are out for a leisurely drive, it is not the most effective way to travel. The same concept applies to our designs and solutions. The direct solution is often the best, even though it may sacrifice scalability or its ability to be applied in a general fashion. When we focus on highlighting our design skills, we often end up with a solution looking for a problem. That is not a mindset that servers our customers.
Solve The Problem First
Therefore, we should always start our design with a focus on the problem. The starting point should be the solution and then map that to an object-oriented design. If we focus on the OOD, we may inadvertently attempt to cram a square peg in a round hole. This thought takes us back to the agile manifesto. The number one goal of our solution should satisfy the customer. While a solid design is valuable, it is a means to an end, not the end itself.
When we start with a solution and then translate it to an object-oriented form, we are taking advantage of opportunities. There are opportunities to improve our solution through OOD. A good design makes use of these. Thus, our solution dictates where OOD may be useful. We can take advantage of those without using all of the features OOD provides us. It is like many things in life. Just because we can does not equate to “we should.” For example, our car can go faster than the speed limit. However, there are many cases and reasons not to push the car beyond that limit.