Monday, February 17, 2014

Scaling QA using just-in-time QA for Agile teams

I'm often asked how to integrate QA into sprints, especially for teams transitioning to Agile and have limited QA people (eg., 1 QA for 10 developers).

JIT (just-in-time) QA is one good way to do this. The QA acts as a consultant for the team/s and is brought in early into the process, as early as the planning stage. This also develops a QA mindset among the developers themselves as they begin programming while mindful of bugs to anticipate ("Begin with the end in mind!").

Here's how Atlassian does JIT QA: http://blogs.atlassian.com/2013/12/jira-qa-process/

Tuesday, December 3, 2013

Innovating a ketchup packet

I like Heinz for continuously innovating their ketchup packs. 

Saw this today at a fast food joint. You can use it two ways depending on whether you want it as a dip or to squeeze out the ketchup onto your food. 

Innovative Heinz Ketchup Packet

Thursday, November 14, 2013

Doing what we can to help Haiyan/Yolanda survivors

My wife and her fellow Fulbright scholars in the US set up an event to raise funds for Haiyan/Yolanda survivors.

They have a simple but achievable goal:
Hi! We are Filipinos currently studying in the US.

Our goal is simple: help typhoon survivors in Central Philippines get safe drinking water, now! We pledge to walk 50 miles for your donations. If you donate $15/mile, we could afford to send one box of Aquatabs (50,000 liters of water) in a week. Help us and thanks in advance!

-- Data Canlas, Jay delos Reyes, Lyrica Lucas

The fund drive is aimed at Filipinos and friends in the US, but they accept from everywhere. Please click the picture below to find out how you could help (will lead you to a public Facebook Page). You don't have to donate money. Just forwarding the link to their FB page to friends who may be interested will greatly help.


Visit http://www.facebook.com/50forthePhilippines

Monday, November 11, 2013

Yolanda/Haiyan, public leadership, and hope

Typhoon Yolanda/Haiyan is the biggest storm in the world's recorded history and it struck the Philippines. Like all Filipinos, I've experienced many such big typhoons, like Yoling/Patsy in 1970 (Wikipedia entry), a storm that inundated our town for nearly a month, if my memory serves me right.

These natural disasters bring out the best and worst in us. There are lots of stories of heroism, like people I know from media who helped rescue stranded citizens at the height of the storm. But there are the inevitable bad stories, like the massive looting of a mall in one of the devastated cities.

This provided fodder again for some fellow Filipinos who lamented "the problem with Pinoys," typically comparing us to the disciplined response of Japanese citizens in the aftermath of the tsunami in Fukushima.

But here's the rub. When people have lived a lifetime without receiving any care from their public officials, it's everyone for themselves. If your family hasn't had anything to eat in three days and no contact from public leaders, you're pushed against the wall. In fact that's how one looter put it, after shamefully admitting to taking part in the looting.

Japan's governance is way better than ours -- their government serves the people. Contrast this to local governments in the Philippines, especially in the remotest provinces, whose officials systematically loot the public coffers and continue to build unfinished roads, bridges, and basketball courts while pocketing most of the funds. So we should see this as a problem of leadership, or the lack of it.

In my simplistic view, our corrupt public officials have failed us on many levels. They have kept themselves in power through patronage politics, sustained by denying people proper education, jobs, and reproductive health rights. It is the same system that has failed to formulate proper disaster preparedness in a storm-ridden country. It is the same populace that keeps voting them in place and so the cycle goes on. Yolanda is as much a man-made disaster as it is natural.

Still, there is hope. Through time, I have observed our disaster response getting better. There's a dearth of good public officials, but quite a few exemplary leaders have risen. We're still a long way off but we've slowly chipped off the leadership neglect that entrenched itself during the corruption in the Marcos years.

Disaster preparedness does not happen the week or month before the storm.
It happens in the way governance is done, in urban and social planning. It degenerates when settlements are allowed to mushroom in an area vulnerable to floods, when flimsy structures are allowed at all to be erected, when evacuation centers are not located on safe ground, or when neighboring local governments refuse to coordinate with each other on matters as simple as traffic and garbage collection.

A friend said that now would be a good time to reset the country. I agree. To draw another parallel with our Asian neighbor, it would be like Japan after World War II, rising from devastation and despair and emerging a better nation.

This should be our turning point. This should be where we realize what public service really means.  This should be the time to make our public officials accountable.

I hope that's not too much to hope for.

* * *
Update: Nov 12, 2013. This came in today from a friend:
"When it comes to preparation, the Philippines may want to study two countries that have made major progress in coping with typhoons, cyclones and hurricanes: India and Cuba.Read the full article here.  

* * *
If you wish to help the relief efforts, please share this poster on Twitter, Facebook, Google+ etc. My wife and her fellow Fulbright scholars in the US will walk/run 50 miles to help give typhoon survivors access to safe drinking water.





Tuesday, November 5, 2013

Helping hands and connectors - my new lab assistants

The simple pleasures of life include the arrival of an Amazon package that turns out to have the goodies I bought. Say hello to my new lab assistants. That's Helping Hands with Magnifying Glass and the microtivity Breadboard w/ Jumper Wires. Get ready to Solderrr!


Reading output from a photocell and Arduino


My Arduino starter kit came with a photocell, aka photoresistor, aka a light dependent resistor (LDR). That made me happy (see Side Story, below). I didn't know if it was working or not.

Photo from Adafruit.com
An LDR works by varying the resistance in a current, depending on the amount of ambient light it detects. As a kid, this was the coolest device for me (again, Side Story). Unfortunately, I never got to playing with an LDR until I got it as part of the Arduino starter kit.

So I first tried inserting it in a basic Arduino-LED circuit. I tried covering the LDR with a finger or black cloth but I couldn't detect any change in the brightness of the LED.

Lady Ada came to the rescue with this Arduino photocell tutorial and I was able to set up the experiment. The tutorial should result to a LED light growing brighter as the room grows darker.

There was one problem though. Although I could get the LED to light up, I could only detect very faint changes in the brightness when I covered the LDR with different materials (including my finger). Turning off the room light didn't help because I couldn't be sure if the variation in brightness was the result of my eyes getting accustomed to the dark.

I wanted to be sure that this was really the LDR working and not some external factor. So I scrutinized the sketch and realized that the code included an output of the reading. Here's a snippet from the sketch, available at Adafruit:
photocellReading = analogRead(photocellPin); //read input from Pin 11 

  Serial.print("Analog reading = ");
  Serial.println(photocellReading); //print the value from Pin 11 
Lady Ada's circuit design involved hooking up the LDR into one of the analog inputs of Arduino (Pin 11). This then allowed Arduino to read and print the analog values as they got affected by the LDR. But where was the output being printed?

Well, the new Arduino IDE (1.0.5) includes a Serial Monitor (Click Tools > Serial Monitor), a window that displays output from the Arduino board. I covered the LDR and started detecting minute decreases in the values. Then I turned off the lights and found a significant drop. Eureka!

I altered the delay value in the sketch so I could record the changes in one screen (from the default "100" to "5000". You could see this in the screenshot below:

Notice the changes in value as the ambient light changes. 569 is when the lights are off.
It turns out the LDR was quite sensitive, detecting and printing out minute changes as I moved around the room. It's just that the circuitry and the LED weren't expressing the analog changes properly. I figured I could calibrate this by changing the other resistors in the circuit, but that's for another experiment.

See it in action in this video:


* * *

Trippy Side Story. As a kid, I was fascinated at how light-controlled switches worked. A friend of mine told me that such a switch was called a "light sensitive device" or LSD for short. I phoned our local electronics supply shop and asked the guy, "Do you guys sell LSD?" The guy at the other end said, "Huh?" and dropped the call. I only figured out his reaction years later, when I realized what LSD really meant. :)

Monday, November 4, 2013

Installed MySQL and PHPMyAdmin

I've been using sqlite3 mostly to brush up on programming and web app development. It's faster and easier to manage and I needed a quick way to run databases as soon as I upgraded to Mavericks. I also successfully reactivated the built-in Apache and PHP in Mavericks.



Eventually I had to install MySQL and phpMyAdmin again, so I did the usual web research on this. I was pleasantly surprised. Installing MySQL and phpMyAdmin have become lots easier than it used to (thanks partly to the now well-documented glitch in the default port/socket that MySQL uses in Mac OS X.)

I was wowed by the user interface (UI) improvements on phpMyAdmin.

I followed the instructions from this blog about installing and configuring Apache, PHP, MySQL, PHPMyAdmin. And also used BrianFLove's blog as a reference.

Reading these blogs made me understand more about the internal config of PHP in php.ini (a file I usually just quickly glossed over because I did not have the leisure of time). I was also happily surprised by the clearer explanatory notes in the php.ini file (it's been a while since I read the details).

What to do when you've got a virtual scrum team

Scrum and Agile are suddenly popular in Asia, and because a lot of companies take on outsourced projects, they usually have virtual teams, w...