Jul 182009

sample OO class diagram

As you may already have read in my previous posts, one of my biggest pet peeves in the IT industry today is that a lot of people are using Object Oriented Programming (OOP) without even understanding the basic concepts behind it. They’re not using OOP for its benefits over the previous generation’s simple structured procedural programming; they’re using it simply because the language they’re coding in is OOP (e.g. Java, .NET).

To put it bluntly, it’s like writing spaghetti code in a structured programming language.

With this being my perspective about the local status quo, I feel that I have to post about the basics of OOP before moving on to the other fun stuff related to programming.

Continue reading »

Posted by Bry Tagged with: , , , , , , ,
Jul 172009

I might as well get this one out before I write other software engineering posts.

You might have noticed that I rarely use computer programmer when talking about people crafting software. This is simply because crafting quality software requires a lot more than knowing how to code programs.

Recall the waterfall model:

Waterfall Model

As mentioned in my post, it’s flawed, but only for its flow. The steps, from System Requirements up to Operations, are still applicable in the creation of all client-based software systems.

As you can see, Coding (or in technical terms, Construction), while still a very important part of software development, is just one of the seven steps in development. Of course it doesn’t take only 1/7th of the total project effort, but in practice it only takes 50-20% of the total effort: the larger and the less agile the project, the less effort is spent on construction.

That said, in the context of software development, the term programmer is sometimes used as a pejorative, implying that the person’s only job is to code programs based on designs handed down to him by Analysts or Software Architects. In other words, he’s just a grunt.

I personally don’t consider the term to be a pejorative, especially since I personally don’t mind getting my hands dirty with grunt work. So yes, I’m proud to be a computer programmer. However, I won’t use that term in my posts because, as I said above, it’s too narrow.

In place of “computer programmer”, you would see me use the terms software developer and software engineer interchangeably.

Both terms solve the problem posed by “computer programmer”, namely, that both titles span the entire software development life cycle. Software developers are not limited to computer programming. They can also be analysts that gather and process the user’s requirements, or architects that design from a much higher standpoint than analysts. They can also be in specialized roles other than programming like QA Testers and DBAs. They can even be Project Managers, a role that don’t have any direct relationship to the crafted system itself.

The only practical difference between the two terms is that some people shy away from software engineer because as it stands software engineering is still mostly a misunderstood buzzword rather than a serious profession. You have guys saying “I’m a software engineer!” but fail to grasp the basic concepts of software engineering from project management (e.g. Brook’s Law, Peter Principle) down to construction (e.g. basic OOP concepts).

But then again I’m unfazed by that concern. I’m still hoping that the day will come that our profession would be a lot more respectable than it is now, so for that dream, I’ll be using the two terms interchangeably.

Posted by Bry Tagged with:
Jul 162009

Richard Feynman

As you may have guessed from some of my posts a couple of months ago, physicist Dr. Richard Feynman is one of my favorite scientists. While it is true that I only came to know about him after graduating from college, his work in promoting proper scientific and engineering procedures, as shown by his cargo cult speech and his demonstration of the O-ring failure in the Challenger disaster, has inspired me to… well… put back the “science” back in “computer science” and “engineering” back in “software engineering”.

Beyond his contributions to physics and his storied biography, Dr. Feynman is also known for his teaching ability. During his years as a professor, he was able to explain clearly the complex concepts of physics to college students—an impressive feat during his time.

With the wonders of modern technology (and the size of Bill Gate’s wallet), the public can now watch some of Dr. Feynman’s lectures. According to Microsoft’s press release:

REDMOND, Wash. — July 14, 2009 — Microsoft Research, in collaboration with Microsoft Corp. Chairman Bill Gates, today launched a Web site that makes an acclaimed lecture series by the iconic physicist Richard Feynman freely available to the general public for the first time. The lectures, which Feynman originally delivered at Cornell University in 1964, have been hugely influential for many people, including Gates. Gates privately purchased the rights to the seven lectures in the series, called “The Character of Physical Law,” to make them widely available to the public for free with the hope that they will help get kids excited about physics and science.

The historic lectures and related content can be seen at http://research.microsoft.com/tuva. The name “Tuva” was chosen because of Feynman’s lifelong fascination with the small Russian republic of Tuva, located in the heart of Asia.

Feynman was one of the most popular scientists of the 20th century, equally regarded for his scientific insights as well as his ability to convey his enthusiasm for science through his lectures and writings. He shared the Nobel Prize in Physics in 1965 and was also known for his quirky sense of humor and eccentric and wide-ranging interests.

I’ve only seen the first two videos and I can say that they are fun to watch. Dr. Feynman may have his awkward moments (he made a discussion flow mistake in the first video) but overall we can see how well he engages his audience as discusses the lesson. One thing to note in the video is how lectures were presented back then, namely, how Dr. Feynman relies on slides only as visual aids and not as some summary tool. (For the record, I hate it when people use PowerPoint slides with more than one line of text for teaching.)

You might be worried about the “freshness” of his lectures, especially considering that these lectures were made in 1964. Fortunately, unlike some other fields of science, the understanding of the fundamental laws of physics haven’t changed much in the past 45 years. A college student will find these lectures as informative as they were back then.

Posted by Bry Tagged with: ,
Jul 152009

bikeshed

Here’s yet another nice bit of information I found while browsing Wikipedia last year. I’m sure many of you would be able to relate to the scenario described below.

From Parkinson’s Law of Triviality:

Parkinson’s Law of Triviality (also known as the bicycle shed example, and by the expression colour of the bikeshed) is C. Northcote Parkinson’s 1957 argument that organisations give disproportionate weight to trivial issues.

The concept is presented in C. Northcote Parkinson’s spoof of management, Parkinson’s Law (1957). Parkinson dramatises his Law of Triviality with a committee’s deliberations on a nuclear power plant, compared to deliberation on a bicycle shed. While discussing the bikeshed, debate emerges over whether the best choice of roofing is aluminium, asbestos, or galvanised iron, rather than whether the shed is a good idea or not. The committee then moves on to coffee purchasing, a discussion that results in the biggest waste of time and the most acrimony.

A nuclear reactor is so vastly expensive and complicated that people cannot understand it, so they assume that those working on it understand it. Even those with strong opinions might withhold them for fear of being shown to be insufficiently informed. On the other hand, everyone understands a bicycle shed (or thinks he or she does), so building one can result in endless discussions: everyone involved wants to add his or her touch and show that he or she is there.

So the next time your boardroom meeting degenerates to a “pissing match” over trivial things, you now have a less vulgar term to describe it. :P

Further reading: Why Should I Care What Color the Bikeshed Is?

Posted by Bry Tagged with: ,
Jul 142009

pattern

As you may have guessed from its title, the book First break all the rules is all about breaking conventions in managing people.

One of those widely held conventions is the belief that “Every employee should be treated equally”. The book explains that this should not be the case, especially after taking into consideration the individual talents of your people.

Continue reading »

Posted by Bry Tagged with: , , ,
Jul 132009

Sisyphus

I saw the term “learned helplessness” last night when I was ready my feeds from my friends’ blogs. However, it was only later this afternoon that I asked myself if I had posted about it in this blog before. I mean, it’s such a simple (yet important concept) that I thought that I already posted it here.

Turns out it was not the case (I posted it in an intranet wiki in my old company) so here I am posting about it.

Continue reading »

Posted by Bry Tagged with: ,
Jul 132009

paycheck is overrated

Back when I was still working, I never really cared about paydays. So while everyone else was looking forward to those two days in the month where their accounts would magically be filled with money again, I’d be actually be so oblivious about those dates that I’m often surprised when the ATM receipt says I have more money in my account since I last checked it.

Since I didn’t care about my paycheck, I didn’t realize that it was a very good indication of my financial stability until Lifehacker linked to The Simple Dollar post about living from paycheck-to-paycheck.

Paycheck-to-paycheck living happens when you are regularly waiting for your next paycheck before you make basic financial moves, like paying bills or buying food or doing something fun. It’s incredibly dangerous for a number of reasons:

While it has never been not be applicable to me, I know many of my friends have this mentality. Head over to the post and see if the advice there would help improve your financial stability.

The First Steps Away from Paycheck-to-Paycheck Living [from The Simple Dollar, linked by Lifehacker]

Posted by Bry Tagged with: ,
Jul 072009

BMI fail

I hate BMI. It’s the reason why I was called “obese” in my 2008 annual HMO check-up even after going through six months of regular exercise and controlled dieting (which resulted in losing over 20 pounds of fat on my body).

I found a link yesterday about the flaws of using BMI as a gauge for a person’s fitness. While I have already mentioned why BMI is inferior to Body Fat Percentage in a past post, this article sheds light on why the former’s use is more prevalent than the latter.

Americans keep putting on the pounds — at least according to a report released this week from the Trust for America’s Health. The study found that nearly two-thirds of states now have adult obesity rates above 25 percent.

But you may want to take those findings — and your next meal — with a grain of salt, because they’re based on a calculation called the body mass index, or BMI.

As the Weekend Edition math guy, I spoke to Scott Simon and told him the body mass index fails on 10 grounds:

Top 10 Reasons Why The BMI Is Bogus [from NPR]

Posted by Bry Tagged with: ,