A long time ago, in my first VB class, I had a thought. I sat in my class of 40 some odd students who all seemed to be struggling with the design of their simple applications wondering why. What the hell is so hard about setting up a form in a manner that is conducive to human interaction and why the hell is this ladies font so god damned big? Our projects seemed to be so much easier for me to finish.
Step One – Solve the apparent problem
Step Two – Build appropriate form to allow interaction
Step Three – Debug as necessary
It seemed rather easy to come to the conclusion that my applications didn’t need to be complicated in order to solve these issues (make a calculator, masked text boxes, string manipulation, database interaction, etc.) but for some reason these bastards in this class had come up with a fourth step and for the life of me I don’t know what rock they had to look under in order to track it down. Make your application look pretty!
Where my applications would always have the default color scheme and text size, color, font etc… I was always perplexed by the pink and sky blue forms; by the size 24 fonts on a form with 3 text boxes & labels and a fucking button. These people were obviously thrown out of art class so why the hell are they finding home in a development class. Why would Microsoft, and so many other companies be wrong in developing all of their applications with the same GUI base?
Of course, this is no longer the truth as Microsoft has begun moving to a new wave design, introducing more graphics to the OS and less simplicity, but for heavens sake what is an office button and why did my File menu disappear? Standards and practices are there for a reason; they afford new users a level of familiarity that decreases the learning curve and allows them to learn your application that much faster and increases the usefulness of your application.
The above is a simple example of standardization and discipline that i have found to be beneficial when i am developing GUI’s for my job. Please read the following article to get some more insight on the topic.
Discipline takes many forms and permeates every aspect of software development. Start small. Say your database schema contains three primary key table columns named “list_id”, “ListId”, and “list_value”. There should be a Gunnery Sergeant Hartman on your development team who will.. gently.. remind the team that it might be a good idea to fix problems like this before they become institutionalized in all your future code.
You don’t necessarily have to have a strict, rigid military code of conduct. Even though software engineering is a young field, there are a lot of accepted conventions that make up modern software development. All it takes to benefit from those conventions is a little old-fashioned discipline. And if it doesn’t start with you, then who?