Balancing Simplicity With Complexity
I’ve been ruminating on a tag line I read in an Email from one of our readers for a few months now. The phrase was, “It is twice as hard to test software than it is to write it. So, if your software is too complicated, it becomes impossible to test.”
As I have been processing this concept in different ways it emphasizes to me how important it is to keep things as simple as possible. It reminded me of an experience I had a few years ago. A brilliant developer was mentoring our team. One day he saw a problem on our white board I was solving for a database design. He said, “that’s pretty complicated. I can’t begin to understand it.”
At the time I was flattered that I may have an area of expertise that he had not yet acquired, and was thinking that he was impressed with my design. Later I came to understand that he was actually concerned by the complexity of the solution.
Here is a response about the last couple editorials on the topic of ingenious or outrageous…
Ron Writes:
I love the discussion about ingenious or outrageous. In our world we live by the motto that should it should be exactly as complicated as it needs to be and no more. Many times, it’s about making the explanation of what’s happening in the code as visible as possible. In your example where you are getting the current date, I could easily see this translating in our environment to allow someone to modify the overall effect by only modifying that small procedure. In fact, in our solutions we try to make any parameter visible and modifiable by our support staff. This way they are able to take our code, with no changes from us, and make it behave in different ways that we never thought of. Thanks for the articles and keep them coming and keep up the great work.
What criteria do you use for something being too complicated? Have you written code or designed systems you wish were simpler? Share your experience by writing in to btaylor@sswug.org.
Cheers,
Ben
$$SWYNK$$
Featured Article(s)
Configuring Database Level Encryption on SQL Server instance
In this article, we will first look at the architecture of Transparent Data Encryption (TDE), then we will look at the steps that are needed to configure Transparent Data Encryption (TDE) for the user databases and in the end we will look at the steps for configuring database mirroring for the databases are encrypted using Transparent data Encryption (TDE).
Featured White Paper(s)
All-At-Once Operations
Written by Itzik Ben-Gan with SolidQ
SQL supports a concept called all-at-onc… (read more)
Featured Script
dba3_test_IS_Member_StoredProcedure_A_UserRoleBased_FlowControl_Demo
Description: A User / Role based flow control stored procedure demo. Generally, it is best to use roles and IS_MEMBER if poss… (read more)