Seasoning the Raw through Extreme Programming

5 06 2007

One of the biggest issues facing IT companies in India today is hiring good staff. I think it’s become abundantly clear to my regular readers that this has become something of an obsession in my work. So, to break the monotony of dealing with idiots who claimed they were experienced, I started an experiment a month back with a couple of raw recruits straight out of college. Now these boys were sharp guys who had a good attitude to learn, and plus some basic knowledge, albeit quite limited and convoluted.

I’ve concluded that the primary drawback of hiring people “fresh” out of college is that they don’t know anything practical. The sad part is that their heads are so full of theory that by the time they get out into the real world, they’re completely confused and absolutely incapable of practical programming. I’ve mentioned this before in my earlier posts on the state of freshers in India.

In this case, I initially gave each of my two freshers some very simple tasks, different tasks mind you, that would require them to learn the basics of .NET programming. But after 10 days, they had made very little progress and I was left tearing my hair out and sitting with them for 3 or 4 hours just trying to explain how to use classes, how file reader operations work, etc. I mean this was baby stuff they’re supposed to have learned in college. And people wonder why I’m greying prematurely.

The trouble was that I really couldn’t devote this much time to these boys on consistent basis, and the company wasn’t big enough to justify a formal training program like what the big boys at Infosys and all do. At the same time, I was sure that just throwing them in front of a computer with some books and saying, “Code!” wouldn’t work fast enough. So, I hit upon an idea. What if I instead of using them as two separate programmers, I made them work as a single unit?

I got this idea from an article I’d read a few years back on how HP was using Extreme Programming to improve its coding standards. You can read up on Extreme Programming here @ Wiki. One of the concepts that I recalled from this particular article was that instead of have two programmers work separately on different tasks, HP assigned two programmers to a single workstation to work on a single task together. The idea was that the number of bugs in the code went down because there was a second person to verify the code as it was written. So while it didn’t actually speed up the development phase, it did reduce the time taken for the testing phase, an added bonus being that it reflected a higher standard of programming quality.

So getting back to my problem, I realized that the issue I was facing was that on their own these freshers didn’t have enough know-how to accomplish the task, but each of these guys had some knowledge that the other didn’t have. So, I made them work as a team, or one logical programmer to use geek speak, to accomplish a single task together at a single workstation.

I’m happy to say that this experiment was succesful. They delivered their new task inside of 3 days [the new task being one of equal complexity to previously assigned tasks]. I then had them work under a project leader to develop an in-house project for me. Not that I desperately needed the application, but it was a challenging project that required my freshers to cover all the basic concepts you need for a real-world .NET web application. 2 weeks in and they’re almost done.

What I learned from this exercise was that having a second person working on the same problem helped the freshers to think a problem through before implementing a solution, rather than operating on a trial-and-error basis. Additionally, the second “brain” helped to fill in gaps of knowledge that were lacking in the other person. So, together they would discuss a strategy, pointing out flaws in each others theory, and then implement that strategy together, testing and debugging it together. At the end of the day, they accomplished far more simply because they had more knowledge at their disposal, plus the ability to think things through before coding.

I’m not saying they’re perfect though. There’s still a lot of things they need to learn before they can become independent programmers. One major issue I’ve encountered, and one that I haven’t fixed yet, is getting them to conceptualize concepts and problems. For some reason, whenever I asked them something a little abstract like how does a web application work according to the client-server model, or how is a file uploaded handled, or how do URLs work, I encountered a major mental block. I’m only after the theoretical concepts, but for some reason since it’s applied theory, rather than definitions, they have trouble wrapping their brains around these ideas.

In the end, I realize that how to use these boys is not to talk to them about solving problems, but to clearly define the tasks to be delivered and them instruct them to do it. It requires a hands-on presence in the form of a team lead or project manager to clearly define for the boys what needs to be done, but once they’re clear on whats expected of them, they are able to deliver as per schedule. Based on the current results, I’ve decided to keep them together for another 3 or 4 months for them to gain more exposure before splitting them up.

The primary benefits of this approach are that a company does not need to invest in a formalized training program to train “freshers”, and that at the same time these freshers get exposed to real world programming from day one. They understand how live projects are dealt with, what methodologies are in place, what problems they are likely to face, etc. Most importantly, they learn the skills that are needed for them to become productive programmers quickly, especially those needed for the company’s ongoing projects. The company also benefits as it’s no longer dependent on hiring “experienced candidates” [refer to some of my other posts for my take on these clowns], and is able to groom and shape a team for the future.

So, in the near future, I can transition these two freshers into productive programmers who are capable of completing tasks alloted to them. True, they might not be ready to tackle problem solving and such, but that only comes with experience. But, rather than have non-productive people for 4-6 months, I have productive programmers within 3 months. And at a fraction of the cost of the “experienced programmers”.

The World’s Largest Pencil

5 06 2007

Yep. The Faber Castell Company, and it’s manufacturing facility in Malaysia is home to the World’s Largest Pencil. Standing at only about 65 feet tall and housed in a glass enclosure, it’s a Castell 9000 made of Malaysian lumber, and proper graphite. Yes, you can actually write with it.

How did I find this place? I was driving along to the Acer service centre, which is about 300m from this building and I see this huge sign that says, “The Worlds Largest Pencil – 100M thataway”. Well, just one more piece of evidence that Malaysians have major insecurity issues. Must be pen… sorry “pencil” envy. 🙂

The Easiest Goal Ever Missed

4 06 2007

My brother just sent me this video. Words fail to describe just how stupid this guy is. He didn’t even have to touch the ball. It was going in anyway. Any kind of mishit would have only helped the ball along. Instead, the guy does the one thing short of stopping the ball that could deny the goal. And he did so well until the finish. Take a look and marvel at just how the impossible it was to miss that goal. It just proves nothing is impossible.

Cool Engineering – The Ultimate Treehouse

3 06 2007

Just when you thought things couldn’t get weirder, they do. A couple of architects and an environmental engineer have teamed up to design a house that you can literally “grow” from trees. The Fab Tree Hab, as it’s called, is designed in such a way that trees are grown to provide the raw framework of the house over 5 years. The walls and such are then filled in using materials like mud and plaster. The interiors are then done up using conventional technologies. Power comes from solar energy, and there’s a specialized rainwater harvester/septic tank to process, recycle and provide tap water. The whole ideas is to be as environmentally friendly as possible. Some additional benefits are easy setup of swings for kids from some the branches, natural shade, etc. Here’s a conceptual video walk-through:

I would love to see this come to fruition. It would be really cool to see just how big a structure they can build with this. Maybe they could outdo Mukesh Ambani’s monster 60 storey “house” in Mumbai. That would certainly leave him “green” with envy. Pardon the pun. The full article is at here.

Cool Engineering – The Falkirk Wheel

2 06 2007

One of the coolest feats of engineering I have ever seen. A quick browse of the wiki entry reveals that the wheel is used to link two canals in Scotland, the Forth and Clyde Canal with the Union Canal. The only problem is that the union canal is 24m higher than the Forth and Clyde Canal. So engineers designed this marvel as a boat lift to link the canals by raising/lowering boats between the different canal heights. The canals were previously linked about a 100 years back by a series of 11 locks, but over the years they fell into disrepair and were filled in. For the Millennium, the government decided to reopen the link as part of a larger scheme to connect Glasgow and Edinburgh via various canals in Scotland as a tourist attraction.

One of the cool historical notes about this is that the Canal link actually traverses the Antonine Wall, for those fascinated by Roman history. Total cost of the project was 84 million pounds. But, it looks like its worth every penny. The really cool part is that to drive the 35m diameter wheels it only needs 1.5kwhr of power, which is probably about what your A/C consumes in an hour or so. And it completes a boat lift in about 4 minutes. Check out the video below:

More information on the wheel is available @ Wiki here. It’s definitely on my list of places to visit in the UK.

Is The One-Laptop-Per-Child Program Really Practical?

1 06 2007

I’ve been following the progress of the One-Laptop-Per-Child (OLPC) initiative for a while now since it was announced. Frankly, I thought it was a dumb idea then and I still think its a dumb idea now. The whole ideology of this program is to boost education and literacy in third-world countries as means to raising the standard of living in those places. It’s a nice goal, I admit. But, I have to wonder just what Nicholas Negroponte, the Director of the OLPC project, and all the other yahoos in the UN and various governments were on when they cooked up this hare-brained scheme. I’m not questioning their motives here. I’m just asking if there’s any sense in trying to foster creativity in kids who are having a hard enough time surviving on a day to day basis.

Just consider what they’re trying to achieve here. They’re targeting some of the most poverty-stricken areas in the world. We’re talking about places where electricity is a luxury, regular potable water is at a premium, and getting a square meal a day is the priority. So, enter into this scenario the OLPC cadres toting specially-designed laptops for kids to become computer savvy. Sorry, their vision is “To provide children around the world with new opportunities to explore, experiment and express themselves.” Thats fine, but isn’t it a bit moot if the kids are creative but lack fundamental knowledge like reading, arithmetic, and writing to take advantage of their creativity? How does the OLPC plan to impart that knowledge? It’s not like that the kids can learn all these things just by looking at a laptop screen? Just looking at something doesn’t make you smarter. If they could, then I should be a frigging genius for the stuff I’ve read and watched on my computer, TV, books, etc. An obvious statement I know, but one that has to be mentioned given the scenario here.

I respect what Negroponte and the OLPC stand for and are trying to achieve. But, when countries in Africa, like Rwanda and Ethiopia, and in Asia, like India and Bangladesh, are willing to spend US$100 per laptop for kids, you have to hold up your hands and say, “Stop the Cheque!”. Do some rough number crunching. Say that a country wants to provide about 100,000 OLPC laptops to its various primary schools. That’s a cool US$10 million right there. That’s just for 100,000 units. Unfortunately, it was recently announced that the price target of US$100 was not feasible, so the price has been revised US$175. So now its going to cost US$17.5 million for the 100,000 units.

Now, this may seem like a lot of units to you, but consider the population sizes in these countries. One of the sad statistics that define a developing [or third-world] nation is that life expectancy is not very high. So a large part of the population is the younger generations. Still, countries like Nigeria have a population of around 100 million, not to mention Bangladesh and India, which are 120 million and 1.3 billion respectively. Assuming that you’re even trying to target 2.5% of the population for this program, in Nigeria you’re still talking about 2.5 million kids. So you’ll need a minimum of about 1 million units to be shipped of Nigeria, a cost of about US$437.5 million, almost half a billion dollars.

Sure, Nigeria can afford it with it’s oil money. But what about Bangladesh? How would they pay for half a billion dollars worth of units? In the case of India, the cost of the OLPC project will run into billions of US dollars. All for what is really an advanced toy. Can’t this money be better utilized in some other manner? Why can’t the governments focus on improving primary education by boosting the salaries of educators and improving the facilities? Or why can’t governments start a fund to encourage parents to send their kids to schools?

The real issues to be tackled, in my opinion, are poor educational facilities and teaching standards, as well as encouraging parents to send their kids to school. Too often, kids are being denied the chance at a decent education because of the extreme poverty they are born into. The parents need all the help they can get to earn a living, so kids are put to work for the common good of the family. Unfortunately, they lose the opportunity to gain knowledge and have a career that might allow them to help their family overcome poverty.

Looking at the lack of educational facilities and standards, I recall a story I heard about one state-funded school here in Chennai that was giving a reading room by an NGO. The NGO wanted to encourage kids to read so it funded the construction of a reading room at a local school. They got all sorts of books for the kids in different languages and even got cute chairs and tables for the kids to sit at while they read. When the NGO staff went to deliver the furniture at the school, the staff asked them, “Why are you wasting your money getting books for kids? Just leave the furniture and go please. These chairs and tables are so nice. We can use this for our lunch room!”

How do you react to this kind of situation? The NGO staff were quite irritated, at the time, and starting criticizing the staff for not thinking like educators and for depriving children of the chance to learn. The staff responded by saying, “What can we do? We hardly have any facilities for ourselves. We don’t have proper books, no furniture, nothing. How can we teach kids when we have nothing to help us or to make it easier for us?” Unfortunately, this has been the story of Indian public schools since Independence. In fact, it has been found that India spends less on its public school education than most low-income countries. The Hindu has a very interesting article on this here.

Getting back to the point. The OLPC looks like just another gimmick by politicians to look good and squander more money. The net beneficiaries here are the manufacturers of these laptops, not the kids. Given the kind of money that is likely to be involved in this scam, governments might be better off investing in more long-term measures. After all, a laptop has a limited life-span. Also, has anyone even thought about the recycling problem this is going to create in all those already “polluted” countries?

It just shows that if you give politicians a chance to showboat, you can sell them anything. It’s just like the Emperor’s New Clothes. Only with laptops.

German Impales Self in Bath – Uses Plunger

1 06 2007

The Plot: According to the Ananova article, a 79-year old man in Germany wanted to have a bath, but couldn’t find the bath stopper. [This is the black rubber thingy that you shove into the drain to retain water. In the tub.] Apparently, desperate to block up the tub and bath, and unable to find the stopper, he used a plunger as a substitute. [A plunger is the rubber cup with a long stick attached to it used to unblock clogged drains and stuff. Note the long stick. It generally sticks UP!!!]

So, having solved his stopper dilemma, said German gets on with bathing and starts soaping. Unfortunately, he slips on the soap, and ends up impaling himself on the plunger. I think you get the picture. For more details, read the full article here.

The Verdict: I feel sorry for the guy, but you have to say that he got what was coming to him for tempting fate. What an idiot.