Thursday, September 27, 2007

Surprise surprise, I'm a computer scientist. However, when was the last time I actually wrote down something technical here? It's not as if working with computers was my job and end of story. It is not as if I were that naïve as to believe computer science needs computers... So here's a brief attempt to display my c-s-k-i-l-l-s :D

Have you ever thought taxes are unnecessary complicated? Shouldn't they be automated? Shouldn't civil law have functional tests? Don't I deserve a good UT for my life? Etcetera. If not, consider it. Why don't we test our processes? Why software is the only segment where we recognize we don't understand the problem completely?

Take your life. Think about it. Now, do one thing more, test it! You see, most people don't think much about the grand scheme of their lifes. They are then surprised when 10 years after they don't have enough money for their kids or elder years. Then, there are those who think, plan and devise huge plans. However, besides "reality checks", when was the last time they tested their plans in an ordered form? It's like they haven't considered that their plans can have bugs!

Here's one example of this. Ask yourself "why you are doing X?" How many times do you need to ask the question to get a real answer. Real answer being, getting some value from X. "Why do you accumulate pens?" "Because I like pens" No, that's not a real answer. It's a placeholder. "Why do you like pens?" "Because I like them. That question doesn't make sense. It's like asking why you like, uhm something you like?" That's another common way people answer this question. Ideally you should get to a point similar to, "I like pens because when I was a child, my father gave me one, each time he went to a business travel." Now you can see why she accumulates pens. Now she can ask if there's a better way to feel what she tries to emulate each time she adds another pen. People don't attach to things, events or people for the sake of it.

The same occurs in software engineer. One must always answer why does the client wants that use case.

In your life, you are your first client, your architect, and hopefully your tester. Once you know your goal, you should setup test cases. To see if you continue going through the right path. I would say you need unit tests and functional tests. UT are the "you should be ashamed if you don't pass this simple test". Of course, each of us needs to create our own list. It is not a I wish I could do it. It's a baseline for the great life you deserve to have. On the other hand, functional tests are somehow more complex. For UT, you want tests that are black or white. YOu either passed that test or not. Not with functionals. Let's put the tests I have up to today. (The list grows and changes as I do.)

UT
  • Had I walked 10min without fatigue? In the last 2 days. (health)
  • Had I walked over drove whenever reasonable? (health, ecology)
  • Had I used stairs over elevator whenever possible? (health, ecology)
  • Had I used the stairs 2 floors without fatigue? (health)
  • Had I shaved myself? In the last week. (groom)
  • Had I bathed with all the calm in the world? In the last week. (health)
  • Did I slept 8 hours? (health)
  • Did I slept until I wanted? In the last week. (health)
  • Had I used conditioner? In the last 2 days. (health)
  • Had I driven with all the calm in the world? In the last week. (health)
  • Had I floss? In the last week. (health)
  • Had I checked my skin? In the last month. (groom, health)
  • Had I bought clothes? In the last semester. (groom)
  • Had I bought something I really like such as shoes, clothes, etc? In the last year. (groom)
  • Had I stop reading without enough light? (health)
  • Had I eat something? Every 4 hours. (health)
  • Had I not drink coke or any other soda? (health, mind)
  • Had I not eat sausage food? In the last week. (health, mind)
Probably I should stop right here. I don't want to make this a boring list. I have other categories: mind, social, work, family and ecology. If some reader wants to share his list, he is welcome :)

As for the FTs.
  • Do I have belly? (health) -- Currently I'm not passing this test.
  • Do I have any health problem? In the last month.
  • Am I happy with my weight? (groom)
  • Do my close friends think I look healthy? (groom)