| March 2007 |
| By Steve Caldwell |
I recently accepted a position as a visual basic programmer after working for years as an engineering designer in the mechanical and architectural disciplines.
During my career in CAD design, I would often come up against a problem that an engineer insisted be one way, but the software indicated otherwise. It is what I came to call a “Dead End Design.” I also came to understand that people with little letters after their names don’t like to accept “Impossible” for an answer. So I became very good at achieving the impossible. This was almost always facilitated through the use of one or more programming sequences.
It simply starts out with modified icon buttons and with little bits of lisp routines or macros embedded in them. One of my favorites was a button that would calculate the moment of inertia for a beam load, in order to find if the beam was strong enough to hold up a building. This single button soon grew into a VB form that I could share with my coworkers.
I became the GoTo problem solver for the company. I even managed to pick up a few certificates along the way. When we needed to do something better, faster or sleeker than the competition, they came to me. But impressing customers with a few fancy visuals or getting an estimate to them ahead of schedule is a pretty basic feat. Now I have been asked to build an entire software package. Wow!
I was a bit nervous about taking on this level of program, and to be honest, I am still a bit afraid of drowning. I was tasked with building a new interface for a cabinet manufacturer that will be intuitive, logical to use and powerful. As a CAD Designer, I know what is expected at the design level. And as a Programmer, I have learned a few things but I still have a lot more to learn.
The first thing I have learned about building an entire program is: The easier it is to use, the harder it is to program. I think that should be one of Newton’s laws.
As the program grows in complexity, so does the possibility of total collapse. It sort of reminds me of building a house of cards. You know that every step you take could lead to a “Dead End Design.” But you know, you have to keep going because you still have cards left.
However, I count myself as one of the lucky few. Having had the experience of working in the design area, I am able to intuit what will be a drawback for the user and what will be a blessing. This is something you still don’t often see from design software.
From the early days of electronic engineering, the user often had to get into the mind of the programmers in order to know what the interface is looking for. In many cases, this is still true today. How many people out there cannot use AutoCAD to its full advantage because they don’t understand how the 3D operation functions? I’m sure that doesn’t include anyone reading this article, but I bet it does include some people you have worked with.
Now I’m trying to understand every aspect of the Visual Basic editor which was designed to work for programmers, not designers. This is a very daunting task to make both aspects of my job mesh together. My previous program was a little less than 10 pages of code. The one I am writing now has grown to over 200 pages in just a few weeks. I’m still on the first step.
So the next time your boss wants the impossible and the software won’t do it, don’t scream at the software for being less than capable. Think, instead about who wrote the program and how they might have handled the same situation. Look for a programmed solution, it just might already be there. And if it’s not, jump in there and start throwing down code. You know what you want to see happen. The computer can do anything you tell it to. You just have to know how to tell it.
If you would like to submit an article providing an insider’s view of your tech or engineering job, please send your article to us at ITtrenches@dice.com.
Comments on this article? Share your feedback on our discussion forum, Dice Discussions.
*Please note, you must be a registered job seeker in order to submit your question to Dice Discussions.
|
|
|