Software Engineering - The Nightmare

Last night, I had a midterm exam in "Software Engineering". The name of the subject might mean nothing to someone who is not in the IT/IS or computer related field. It meant nothing to me when I first heard it. But the lecturer has defined the scope of this subject with plain and simple language, "how to develop a software or information system successfully". (In fact he defined it in Thai as "ทำยังไงไม่ให้เจ๊ง" I don't think I could translate it very well to English.)

Well, by that definition, it is quite easy to get the big picture of the subject, but its details are rather boring and having a lot of useless things to memorise, especially for me. I am just a computer user, for Pete's sake. I am not going to develop any software or information system. My job is to use the computer program that someone has developed to get my work done. If I ever have anything to do with the software development, I would probably be a "pain-in-the-arse" user who always giving unsolicited comments about how unwise and un-user-friendly the program was. And I can do that without taking Software Engineering class, since the criticism is in my blood. :-)

But you know what, according to the stuff I learned from the class, my act is really crucial to the success of the software development project. The software that works is the software that users want to use. And if anyone wants to develop a software that users want to use, s/he has to listen to what users think about the software (and that, sometimes, requires putting up with harsh users, like me ;-) ) And s/he is supposed to have good communication skill. Talk in users' terminology.

I guess my company software development team have forgotten what they have learned in their Software Engineering class. They just develop whatever software they think would work, rather than what users like me want. (Their typical answer would be "you can't do that, because… you can not." No further explanation.) They think they know better than users because they can say something in computer terms and users don't understand it. Yeah, throw in a couple of technical terms and we got stunned. :-(

Well, I thought I would talk about the exam and I ended up complaining again!! :-) The exam wasn't so bad actually. I was worried that I wouldn't be able to answer the questions and still cramming at the last minutes before the exam. But after, I think I could do as much as others could do. So it was kind of relieving... at least for a while. I have another exam on Saturday (tomorrow). Last night I was supposed to revise for it, but I didn't fee like it. So I just watched some soap opera on TV and went to bed. I think I was punished for that, because I had a nightmare.

In the dream, I somehow got to sit in the car with the Software Engineering's lecturer, so we talked and talked and talked. He found out that I already got master's degrees before, so he expected me to answer his exam questions very well, you know, with the better answers than other students. And after he marked my exam paper, he showed me the results. I got 2 questions completely wrong, and missed one easy question, just because I forgot to do it. I looked at the marks, I still got something like 80 marks, that was surprising (it was too high, considering those wrong and missing answers). But then I realised that the full mark was like 120, not 100, so I was a bit disappointed and pissed about my mistakes. Then I woke up.

It must be the anxiety about tomorrow exam that makes me having such a funny (and a bit scary) dream. (Actually I once forgot to answer question in the exam last term, that was a "real nightmare".) I was glad when I woke up from it and realised it was just a dream. However, I have to wait until tomorrow, to find out if the saying "bad dream is the sign of good luck" (ฝันร้ายกลายเป็นดี) is true. I think it is unlikely for my case, and besides I more believe in "what goes around comes around". I would get good marks if I read more books. But since I didn't, I could accept the consequence willingly. :-)