Friday, February 04, 2005

An update is in order. It seems like Wednesday to today just flew by in a blur, and all that is left is me trying to come up with a strategy that will allow me to cope with this new life of mine that seems to run faster than I can keep up with. Balance seems to be the key to finding sanity, but as of now that key seems to be lurking in a deep corner. I haven’t found the key, just like I didn’t find all of the bugs in this week’s C++ fun. As I mentioned in January, I registered for three classes that came to a total of 12 credit hours. I didn’t think that would be too hard to balance with work, and trying to have a little bit of fun on the side. Man was I wrong.

Though the schedule is grueling, and I am struggling to find a semblance of order, I am learning a lot. It seems that sometimes the most efficient form of learning and refinement comes only within the walls of the crucible that challenging projects, extenuating circumstances, and deadlines provide. C++ syntax is coming more readily than it did two weeks ago, and I am gaining more confidence in my ability to problem solve and trouble shoot.

This week I also wrote my first assembly program in MIPS. It was a nifty function that determined whether or not a number entered was prime. Special isn’t it? Thank goodness for the simple stuff. Assembly really teaches one about how stupid computers really are. It would give anyone a real appreciation for the modern computer, and all of the millions of things that it does to make our lives ‘easier’, though that could be a debate in and of its self.

I have the weekend ahead of me to catch up. I am determined to not play this game a day behind or the second before it is due. My poor math class has been so neglected. I am sure that if the teacher were to associate my participation in class with my performance on the last quiz and two assignments he would be completely shocked. I really need to take the time to introduce myself next week. I also need to take the time to catch up with his lectures. I think that there are three or four sections in the book that I need to do the homework on before Tuesday, if I am to be concurrent. That probably represents the better part of a day working on problems. I also need to prepare for the exam coming in that class next Thursday. Sounds like a weekend plan doesn’t it?

In addition to Math, there are assignments in both of my other classes as well. It is overwhelming.

In software practice, we had two lectures about debugging/software testing, and I found it very interesting to see what academia had to say about the subject. There are some great tools/ideas out there to help in the QA process, but how many companies are really willing to invest in them? I was most interested by the idea that programmers should write suites to test their code at the function level. That way when the programmer passes off the code to QA, he knows that the program does what he programmed it to do, at least at the function level. If programmers were to do that in my workplace, I am convinced we would send a much cleaner product out to our users. As a software tester, I can’t test at the function level, nor is it reasonable to think that I can test every conditional branch of the code. Generally, I don’t even see the code to test from. My position as a QA/tester affords me “black box” almost at is blackest. That wouldn’t be such a problem, if there was more guarantee that the product had been thoroughly “white box” tested. I think that the issue is that often our black box testing works just fine, and it would cost a lot more to have the programmer actually write a test suite for every new class/RPG program that he/she writes. Nonetheless, I still think that adding more white box tests to our process would help the product we ship to our users. The cost would be up front, but with subsequent changes, it would often help to verify cleanliness of the code. Not to mention, it would allow us to test software much more quickly, being able to feed scenarios directly to the code that would take hours to set up when running individual tests black box style over and over again. Another advantage would be that rather than having version after version of “fixes” we would then be free to make more enhancements. The software development process fascinates me. Though sometimes these lectures seem very far from the code we write in our assignments, I can see that there is real world application that students should be aware of.