Programming has never been my favorite task as an engineer. It may relate to the fact that each new project came with learning yet another language. The activation energy to start up always appeared more daunting then it would turn out to be. Ironically, my programming skills helped in getting my summer job at NBS . Learning Perl saved my butt when running simulations for my PhD thesis. Writing programs has assisted in saving me time on multiple occasions during my engineering career. This story shares how subroutines save time of another sort–software maintenance.
I led a small team of engineers in path-finding work on the testing of serial differential high speed IOs. We began a study of defects’ impact on circuit performance. After splitting the complex circuit among the engineering team members, we used a common set of programs to automate the required circuit simulations.
First we had a script that generated a list of possible defects based upon likely shorts, based upon schematic connections. Next, we had a script that would insert defects into the simulation input file and run the simulations. Our challenge then became analyzing the resulting data for all these defective circuits. This was not a simple matter of “did the defective fail/pass a test?”–we wanted to deliberately explore the resulting behavior. At this juncture we each developed our own code to parse the resulting data. I decided to transfer the results to an Excel file, and then write code in Visual Basic to parse the results and to visualize the results.
Now, I could have just written one long program, but enough repetitive tasks existed to warrant writing some subroutines. I remember talking with Pat Caraher multiple times: “Sure glad I wrote those subroutines, as updates are easy.” As changes came up and coding errors occurred, that choice saved me time. In the rush to get the job done, engineers often overlook the reality of maintenance. Thankfully the efficiency that subroutines offered made updates efficient, as well.
Have a Productive Day,
Dear Reader, What memory or question does this piece spark in you? Do you have a story related to the maintenance or writing of code? Please share your comments or stories below. You, too, can write for the Engineers’ Daughter–See Contribute for more information.