Category Archives: Pakistan

Code Complete 2; The Missing Link in Software Education

CodeComplete2_thumb_3I recently bought a copy of Code Complete 2, one of the many books on software engineering that I’ve been meaning to read for a long time. It focuses on a very small part of what I’ve been studying and practicing at my MSE program; software construction. 

By construction the book means the actual writing of code. It is the central part of software development since the requirements elicitation that precedes it is aimed at finding out what is to be constructed, and the testing phase that follows aims to verify the construction.

After going through the table of contents and skimming some chapters, I was amazed at why I wasn’t taught anything like this in my undergraduate Computer Science degree. In fact, I think one of the reasons why programs such as the MSE program at Carnegie Mellon exist is to fill in the deficiency of sound software engineering skills in CS undergrads. During my undergrad program, even though we had a ‘software engineering’ course, we were still not taught about basic construction techniques such as version control, peer reviews, and managing quality at the code level. I’m pretty sure this is the case for a lot of other programs out there as well.

Perhaps it is due to the fact that software engineering is still a very young field, but there is a huge gap between what is being taught in Computer Science undergraduate courses and what is required out there in the industry. I’m not sure about the statistics on how many undergrads get jobs in the industry right away, but in countries like Pakistan where research is not a priority, I’m willing to bet a majority of CS undergrad students look for jobs in the industry instead of pursuing higher studies and research.

This is exactly why programs need to prepare students for writing industry ready code. Books such as CC2 are vital tools for polishing your skills as a software engineer. I firmly believe that we would have a lot less failed projects and more happy customers if people looking to write code for a living would catch up on their reading first.

Tagged , , ,

Flying to CMU … almost There

I wrote this post while waiting at Boston’s Logan International Airport, almost 50 hours after I left Pakistan for the US.

Update 2: Got to Pittsburgh after 55 hours of travel. Wohoo!!!

Well this has been an experience indeed. I flew out from Lahore’s Quaid-e-Azam International Airport on the 10th of August for a transit riddled itinerary, Lahore – Abu Dhabi – London – Boston – Pittsburgh.

It was a day of lots of ‘firsts’. I was flying for the first time. I was going out of Pakistan for the first time. I was going to be away from my family for an extended period for the first time.

The buildup to this day was uncharacteristically full of uncertainty. This year the USEFP managed to delay visa’s for a lot of people. Even as I write this, there are a lot of Fulbright Grantee’s from Pakistan anxiously waiting for visas, while their classes have already started. I hope and pray that they get their visas soon, and know when they’ll be flying off to their schools.

I got my visa less than a week before my reporting date. At that time, like most other grantees, my mind set had changed from packing to thinking about finding a job as I was expecting something along the lines of a deferral. After that, me and my wife shifted my packing into overdrive (it was mostly my wife, me being the spoilt lazy bum I am). Here’s a view of our room at the height of packing mania.

photos 001

So after getting a haircut which my barber claimed would not require a trim for the next 4-5 months (I’m not used to dishing out 20 times the cash for a haircut :p), I was all set.

The Etihad flight in Lahore was delayed for a little more than an hour, so I spent about 4 hours in the terminal. The flight was awesome, Etihad has really nice Airbus A330’s. We landed in Abu Dhabi just in time to catch the next flight to Heathrow. I just rushed through transit to catch the next flight. The British Airways flight was really long, and not as comfortable as the flight before.

I had 4-5 hours to burn at Heathrow. I hooked up with other grantees there as well (Maliha, Salman, Ayesha and another lady). All of them were off to New York though, and my flight to Boston left a little earlier than theirs.

Heathrow is HUGE. We spent a lot of time roaming around. Our first priority was to call home, and we got that done relatively easily by getting our dollars converted into UK coins and using the many payphones there. It’s always good to have a credit card though, because then you can call and use the Wifi at airports more easily.

photos 008 photos 009

photos 011 photos 012

The flight from Heathrow to Boston was operated by American Airlines. The Boeing 777 was awesome, the in flight service was awesome and the food was surprisingly very good. I got a seat next to the emergency exit so I had lots and lots of leg space. I also had a pleasant 61 year old American lady sitting next to me, who was very interested in knowing more about me and introducing America to me once she found out that I was a Fulbright Grantee flying into the U.S. for the first time. She was returning from Ireland from her daughter’s wedding, and I ended up showing her my recent wedding pictures. She was really delighted to see our elaborate decorations and dresses.

We landed in Boston on time. And then lady luck decided to take a day off. I was to catch a local flight to Pittsburgh operated by U.S. Airways. I was greeted by an insanely long line at the ticketing terminal where I was supposed to get my boarding pass. There were people who had been missing their flights for a couple of days now, and were having to come to the U.S Airways terminal everyday to catch a flight. Everyone was really pissed off.

After waiting 6 hours in line, I was told I couldn’t be given a boarding pass. There was a problem in their system which prevented them from bringing up my record. They were able to get my data after about 45 minutes, and by that time I was told that it was too late to give me a boarding pass, and that I would be put on a standby list for this flight. The flight was already delayed from 5pm to 11pm, with a possibility of getting canceled.

I didn’t want to wait that long in the airport, ultimately get stranded at midnight, also leaving my family in limbo as to where I was (I tried for 30 or so minutes to make an international call, but the pay phones refused to cooperate).

So I got a boarding pass for the next day’s flight to Pitt, got a reservation in a nice hotel and stayed the night there. I was easily able to hook up with family back home using the free Wifi in my room  (BrainTel’s IP phone is a really nice and cheap way to stay in touch with family back home, especially for times when power shortages prevent them from using Skype, MSN etc.).

A hot shower and a breakfast on land after 2 days later, I was back in the airport. I wanted to verify where my luggage was. They’ve assured me that its booked to my final destination, and I should find it in Pittsburgh International. But the service was equally bad today, with people waiting in long lines at U.S. Airways terminals. I’d recommend all grantees flying in the near future to stay away from U.S. Airways, and request a different operator if USEFP hands you an itinerary with flights operated by them.

Whew, that was a long rant. Now I’m going to get something to eat, and then call CMU and tell them that I’ve missed the first day of orientation (they’ve probably noticed that by now :p).

Fly Safe!

Daylight Savings, a concept lost on us

I was waiting outside Siddique Trade Center (Lahore) the other day, waiting for my mom to wrap up shopping and come out (I can’t go within 10 feet of a tailor shop and not feel nauseous) . As soon as the clock struck 8, the lights outside and neon signs on the building came on.


Notice that because of daylight savings the sun hasn’t gone down yet and there’s lots of sunlight. I waited there for another 30 minutes, and there was still enough light that you didn’t need to turn on those lamps.

What’s the point of having daylight savings if people (I’m guessing Siddique TC is not the only culprit) are still switching on lights at the old times. Can’t they SEE the sunlight?! And its not like we’ve got lots of electricity to spare. Even now as I’m writing this, the power is out and I’m going to have to wait for it to come back before publishing this post.

So what’s the basic problem here? Lack of eyesight? =p Lack of consideration? And how do we fix this nationwide problem?

Firefox 3 – Why so few pledges from Pakistan?!

Firefox 3 is coming out tomorrow, and this time around Mozilla is going for a Guinness Record for the most software downloads in a day.

So far there have only been 1971 pledges from Pakistan. That puts us in the same category as countries like Ecuador, Belarus, Sri Lanka, Algeria and Egypt. Iran has a whopping 8684 pledges! And they’re right next door to us. (there’s no point in drawing comparisons with India)

Wasn’t Pakistan supposed to have one of the fastest growing tech industries? I thought our software industry and our ‘techies’ in general were a lot more enthusiastic about technology and generally well informed.

And Firefox is more than a web browser, for us web developers it’s a full fledge IDE. I simply can’t imagine web development without Firefox and Firebug. I shudder when I remember the days when we developed applications using Internet Explorer, and pretty much guessed what was going wrong with markup rendering.

So what’s wrong with us? Why are there so few pledges? What factors determine the level of participation in such events? Are we Pakistani’s inherently insular?

UPDATE: At least some Pakistani’s are doing the right thing. The awesome people at WCCFTech have put up a banner and I’m sure they’ve been the source of many pledges.

GeniDo – Granting your first wish (Offline Basecamp)

It was rightly predicted that the next big thing on the Web would be offline support from the web applications that we know and love. More and more offline apps keep popping up everywhere. The latest one to roll out is GeniDo (click to see demo video), a product by GeniTeam (founded by LUMS alumni).

I think it’s a great product idea, given the huge user base of Basecamp (more details at G&W). It’ll be great to see similar products for other web applications like rememberthemilk, backpack etc.

Regarding offline support for web apps, Flex and Google Gears have helped a lot in providing the infrastructure. I personally am really excited about Firefox 3’s offline app support (demo). Will finally have a reason to consider building Firefox only apps …


Working from Home

My Home Office

I’ve been working from home since I joined CDF Software about 2 months ago back in December. Here’s how it’s been:

The Good Stuff

  • Free food (free as in non-alcoholic beer)
  • No IT dept. saying I can’t use YouTube
  • Frequent fridge raids
  • My choice of furniture
  • Duel Masters with my kid brothers during lunch break (I’ve become a super awesome pro)
  • Did I mention free food?
  • Can switch from desk+chair+heater setup to a bed+quilt+heater setup in a jiffy if it gets too cold
  • No waiting in traffic to get home
  • Road trips of the office in Islamabad (haven’t had one yet, looking forward to one though)

The Not So Good Stuff

  • Increasing waistline (did I mention food up there?)
  • No waiting in traffic while going to work
  • Don’t get to see the sun that much
  • General indigestion (too much to eat I guess…)
  • No white boards and markers
  • Work hours can be hazy (really easy to get carried away and pull a nighter…)
  • No colleagues around to bug, poke and generally make miserable
  • No free air conditioning (it’s going to get interesting in the summers…)

Generally you don’t hear too often someone working from home in Pakistan. Although I miss being in the same room with my team, still working from home is great fun. I believe more companies should explore such options, since they turn out to be very cost effective for both the employer and employee. And if the resource you hire is capable enough, the overhead of communication isn’t that bad.


Pulse of the Nation

Ladies and Gentlemen, Pakistan Zindabad has been deprecated, use Pakistan Se Zinda Bhaag.

Read this in a friend’s nick, cracked me up. *sigh*


Wateen copies the Wiimote? C’mon!

It’s good to see Wateen’s services finally starting in full swing (after years of hard work and tearing up people’s lawns). In DHA they’re offering their ‘Triple Play Experience’ package, which offers Internet, telephony and cable TV services. Their marketing campaign has been huge and top notch as expected from the sister company of Warid. We’ve finally started getting package brochures and have sales people ringing bells every other day.

Here’s a partial photo (pardon the shabby picture taking) of the brochure that I got.

Wateen’s Wiimote?

See the resemblance with the photo below? (actually you’d be able to see a lot of resemblance if I had taken the photo a little better =p)

The Wiimote

This is the Wiimote for the popular Wii gaming console by Nintendo (I got mine last year – get yours now). I really didn’t expect Wateen to copy something so blatantly (ok so they added a couple of extra buttons …), and then put it on the front of their brochures. Ok so there’s a miniscule percentage of Wateen’s clientele who’ll have heard of or seen the Wii, but still, it was a letdown for me.

What I’m still wondering about is what this remote is for? I don’t see how one would use it on a TV. It’s definitely not a telephone. Can anyone from Wateen clarify what this contraption will do?


Recent Reading – Usability and Rhinos

Read two blog posts yesterday that I thought I’d mention.

Code’s Worst Enemy (Stevey’s Blog Rants): A monster of a rant (5222 words!), mainly talking about Java code’s natural tendency to be bloated and that programmers should strive for brevity of code. Apparently Steve’s been coding a game in Java for a hobby, and the code base got huge and unmanageable. Now he’s thinking of converting the game to Rhino (Javascript running on the JVM) partly because of Javascript’s immense expressive power, something that I’ve been ranting about for quite some time now. Can’t wait for Rhino on Rails!

Bootstrap Design for Geek Powered Startups: Not a regular reader of Tony’s … stumbled on the post from He’s basically highlighting factors to think about when making your own startup. Although everything that he highlights is true, two of his suggestion

“a UI designer should be baked into your organization as early as possible”


“usability testing should be baked into your organization from day one” 

are really important because startups usually don’t pay much attention to them.

Although I think UI designers are very rare in Pakistan, I still think that in house training can go a long way in making a ‘graphics designer’ into a ‘Web UI designer’. First of course, we have to get rid of the misconception that both are one and the same, a belief that’s practically ubiquitous in Pakistan.

Sadly, I don’t see Usability Testing happening anytime soon in our industry. If there’s any ISV or startup out there that does work in Usability, and you’re in Pakistan, speak up!


Usability @ GreenWhite

I finally got my Usability – Why it is important and What You can do post published on Green & White.

The post mainly talks about

  • The absence of any serious usability design activities in a typical software house in Pakistan
  • Why usability is important and what you can gain from investing time and resources into it during a project’s life cycle
  • Some basic points to help you in starting off with your usability analysis

I’ll hopefully be continuing this series on usability, touching on the various different techniques and concepts that will aid in making a website more usable.