Wednesday, October 25, 2006

Painless Software Schedules

Some excerpts from the Article on Joel On Software

So, you have to make a schedule. This is something almost no programmer wants to do. In my experience, the vast majority just try to get away with not making a schedule at all. Of the few that make a schedule, most are only doing it because their boss made them do it, halfheartedly, and nobody actually believes the schedule except for upper management, which simultaneously believes that "no software project is ever on time" and in the existence of UFOs.

So why doesn't anybody make a schedule? Two key reasons. One, it's a real pain. Two, nobody believes that it's worth anything. Why go to all the trouble working on a schedule if it's not going to be right? There is a perception that schedules are consistently wrong, and only get worse as time goes on, so why suffer for naught?

Programmers are not interchangeable. It takes seven times longer for John to fix Rita's bug than for Rita to fix Rita's bug.

When you have to pick fine grained tasks, you are forcing yourself to actually figure out what steps you are going to have to take.

And when you haven't thought about what you're going to do, you just can't know how long it will take.

If you have to figure out what subroutines you're going to write, you are forced to pin down the feature. By being forced to plan ahead at this level, you eliminate a lot of the instability in a software project.

Most programmers have no idea how to guess how long things will take. That's okay. As long as you are continuously learning and continuously updating the schedule as you learn, the schedule will work.

Updating your schedule daily should only take about two minutes. That's why this is the Painless Schedule Method -- it's quick and easy.

A programmer should never, ever work on new code if they could instead be fixing bugs.

The schedule is not the place to play psychological games.

You might be able to get 20% more raw code out of people by begging everybody to work super hard, no matter how tired they get. Boom, debugging time doubles.

But you can never get 3n from n, ever, and if you think you can, please email me the stock ticker of your company so I can short it.

Not many of them are running business what-if scenarios... these are programmers, here

Tuesday, October 24, 2006

Ghar ke one liners

Jeetey raho, sukhi raho. Ishwar vidya de, bal de, budhi de, tandrusti de. Vidwan bano, maan-baap ka naam roshan karne wale bano.

Cha peesen, roti khaansen

Chottey.......

Guddo.......

Motto.......

Ved.......

Mammi, tun badi nikammi. Teri jaan nu bachen rovan, tun khele rammi.
DON

Director: Farhan Akhtar

Theatre: Waves, Noida

Date: 24th October, 2006

Dialogues:

Don ko pakadna mushkil hi nahin, namumkin hai

Log Don ko nahin, duniya ko chod ke jaate hai

Don ke peeche 11 deshon ki police padi hui hai

Tumhen maloom hai ki is pistol mein goli nahin hai, mujhe maloom hai ki is pistol mein goli nahin hai, lekin police ko to nahin maloom ki is pistol mein goli nahin hai





Monday, October 16, 2006

Why is execution so important?

Almost anybody can tell you what is theoretically right. I know it, you know it and almost everyone in the world knows it. BUT, who ensures that what is theoretically right is executed right. In the professional world, every day we have lots of meetings and everyday we take lots of decisions. YES, all those are right, BUT who ensures that they are executed. Planning takes 30 minutes and its execution 30 hours :)

Below is an E-Mail which I had sent on 7th Feb, 2004 to one of my Ex-Managers. Two and a half years down the lane, we are still trying to execute it. Had I led it to a proper closure that day and at that time, the cost now would have been too low and we would already have reaped the benefits.

Hopefully I would learn something from it and be careful the next time :)

Hi

I have tried to work on a framework with the help of which the automation of the testing of wireless STAs can be done (with the help of WirelessConfigurationTool package). It will require add ons to the code we have for PrismServer and PrismProfileChanged and implementation of test cases. I am giving a brief overview of the idea I have in mind:

There will be test suites and test cases within suites. Test suites are a group of test cases for which the settings of the AP will remain the same. Each test case will have some configuration information in the form of XML going to the PrismPCtl running on the DUT (depending on the test case being executed). The Wireless STA settings will be changed accordingly and the expected result noted.

Before triggering a new test suite, the user will be prompted for permission. This is required because before executing each test suite, the settings of the AP need to be changed accordingly. The prompt would give the user time to change the settings of the AP. This also can be automated by synchronization between the changing of settings in the AP and the transmission of new profiles to the STA.

The framework I have tried to make has the concept of test suites and test cases built in. It prompts the user before starting the test cases within a test suite. The full automation (i.e. automatic setting of AP after each test suite) is not yet done, but theoretically speaking it should not be a tough task.

The ADVANTAGES of automating the test cases are:

a) I think that after a fair deal of automation, only one day should be required per DUT for testing purposes. Thus it should save *lots of time*.

b) There is no need to *repeat the monotonous activity* of running the test cases reading a test case document, after we have considerable faith in the automation of test cases and they start giving the desired results.

c) It should *save lots of firmware dependent bugs* because it is not feasible to run the whole bunch of test cases manually after each firmware / UMAC revision is released (which have been quite frequent going by past experiences).

d) It should be *quite easy to append* new test cases to the test suite as more and more features become available (WPA, WPA-PSK).

e) The test suites test the wireless features and thus they *should be independent* of the type of DUT we are working on. For ex. the same bunch of test cases should work with a USB Cohiba or a PCI device attached to the laptop.

Thanks
Vaibhav

Friday, October 13, 2006

Good things I have learnt from my past managers

Change the circumstances and the same people will behave differently.

It is not the people but the circumstances which create the problem.

Separate the people from the problem.

What would I do if I am a chef of a restaurant and I have customers who are waiting eagerly for a meal? I would put some onion and start frying it. The smell would tell the customers that something is cooking and their patience level would rise. This would give me time to prepare what they want.

I can show you the path, but I cannot walk for you.
Why do I reject lots of resumes?

Some time back, I have been assigned the responsiblity to scan resumes for Linux requirements in our BU. The Human Resource team sends me a list of resumes which they believe should suit the profile, I go through them and then give my feedback to them. In the feedback, I am supposed to suggest to them about the candidates with whom we should go in for a telephonic interview. A thing which I had not been noticing and was brought to my notice by an E-Mail was that I was rejecting a lot of resumes at the initial scanning stage itself. Now that makes the job of the HR more tough because it means they need to get even more resumes. I was asked the reason on why I reject so many of the resumes. That made me think about what we are focused on.

I am working for the Wireless BU of a semiconductor company which is responsible for delivering sample network drivers for different BUS interfaces in Linux kernel and also other Embedded Operating Systems.

The above line summarizes the logic on the basis of which I shortlist candidates for telephonic interviews:
  1. Wireless
  2. Network Drivers
  3. BUS Interfaces
  4. Linux Kernel
  5. Embedded Experience
  6. Operating Systems
If the resume matches 6 out of 6 criteria, then he / she is my first priority. If the resumes matches 5 out of 6, I still shortlist them. Anything lesser would not do.

I am very much inspired by the following excerpt while shortlisting people (and I would be even more choosy if I had to run my own company):

An important thing to remember about interviewing is this: it is much better to reject a good candidate than to accept a bad candidate. A bad candidate will cost a lot of money and effort and waste other people's time fixing all their bugs. If you have any doubts whatsoever, No Hire.

For more details about the article, refer to The Guerilla Guide To Interviewing

Sunday, October 08, 2006

And I Quote :)

How many times have you heard this quote doing the office rounds?

"Please do not tell it to anybody"

The end result of the rumour mills working overtime is that

"Everyone knows everything but no one knows anything"

Someone resigns and no one knows it
Someone does not resign, still everyone believes he / she has
Someone is promoted and no one knows it
Someone gets a new job responsibility and no one knows it
Did the Google Guys listen to me?


In my post "This is not fair" I had raised a question on Googles ability to search my posts properly. I had started adding a Category to each of my posts to make the search of the posts easier, but unfortunately the keyword search wasn't working properly. In the post, I had requested Google team (hmmmm, do they read all these posts or is it just sheer co-incidence) to check why it wasn't working? Now, they have introduced the CATEGORY FEATURE in the Beta version of Blogger. THANKS GOOGLE :)
Lage Raho Munnabhai

Director: Rajkumar Hirani

Theatre: Liberty, New Delhi

Date: 2nd September, 2006


Khosla Ka Ghosla

Director: Dibakar Banerjee

Theatre: PVR Spice, Noida

Date: 7th October, 2006

Dialogue: Jaisi bimaari waisa ilaaj


DOR


Director: Nagesh Kukunoor

Theatre: Shakuntalam

Date: 8th October, 2006



Tuesday, October 03, 2006

What is required to get a business running?

[Lee Iacocca: Talking Straight]

Start with good people, lay out the rules, communicate with your employees, motivate them and reward them if they perform. If you do all these things effectively, you can't miss.

My thoughts

I think if you get good people, then most of the other things follow because Good People are Good :)

Why are rules important?

They make the game predictable and help you to understand where you are moving as a team.

Why is communication important?

My Ex-Manager used to say: Change the circumstances and the same people will behave differently. Communication is important to keep things in motion, to let the team know where its moving.

Why is motivation required?

Because I have seen N number of times that people refuse to work (directly or indirectly) because there is no motivation for them to do a thing. Motivation is required to make the positives clear to the team. Whats amazing about human nature is that sometimes even a negative thing is motivating if the general belief is that it helps the team? For ex. I have seen many people do a thing very efficiently (even though they may not like it) if they believe that they are doing it for a good cause (which in a team means for the betterment of the team).

Why is reward required?

Have you ever heard about a free lunch :)? I never have.
ARZ Kiya Hai

Din mein chein nahin
Raat ko neend nahin
Ji na lage kahin
Khuda, kya yahi pyaar hai?

Khuda: Nahin beta, private job walon ka yahi haal hai.......

A logical followup question: Am I tired today?

Wednesday, September 13, 2006

How dates were in the earlier days?

When is my mausis marriage anniversary?
It was at some date of September when it was neither too hot nor too cold.

What is my grandmothers age?
She is around 16 years (hmmmm, maybe 15 on the days she is feeling younger :)) bigger to her eldest daughter.

What is my grandmothers date of birth?
The worlds best kept secret

How do my relatives remember moments when I was born?
There was a song being sung on the radio in the background: Yashomati mayia se pooche nand lala..... (For a change, this date is well remembered :))
Even more amazing

My grandmother, around 76, knows English and she does not even know that :) The penetration which English words have made into the Hindi language is really amazing and my grandmother is an example of it. She knows that if a landlord asks his servant to do something, its an order. Two generations elder to her, one of our relatives was a Civil Surgeon (She knows who is a Civil Surgeon and the hindi for it is Bade Wala Doctor). She knows that if she eats something really oily, her whole digestive system becomes heavy (she understands what heavy feels like but doesn't know heavy is a gift from the English world to Hindi). The hottest discussion (and we had to involve my mother also in it, which hasn't been concluded yet even after her involvement) that came up was whether Ice Cream is a Hindi or English word. Now my grandmother and mother are pretty much convinced that its Hindi, but somehow I tend to disagree. The final conclusion of the debate was that we all agree to disagree :)

Sunday, September 10, 2006

Its Amazing

I am reading "The Monk who sold his Ferrari" these days. The book is all about positive thinking and the changes you can bring in your life if you want to. One of the things mentioned in the book is that for a change to become a habit, it takes 30 days. Now the amazing thing which I felt going through by blog today was that in the piece I wrote some time back on Change, my attempt at inducing a change in some of my habits also took around 30 days. I had not read the book when I attemped to make changes in some of my habits, but the fact that the numbers of days it took me to change the habit comes out to be the same as those mentioned in the book is simply amazing.

Friday, September 08, 2006

Brand Value

In the all-hands meeting, there was a discussion on how to develop the brand value of a company in India. My thoughts on it:

When I joined my first company in 2000, I did not have an idea about the professional world. I knew all the tid-bits like C, Networking, OS fundamentals and stuff you can think off, but I did not know how to apply it. I still remember the first assignment I was given in Wipro was to find out the changes in code that would be required if we make a variable from 16 bit to 32 bit. I spent days to figure that out, but the days I spent figuring that out, I had mentors beside me who spent minutes everyday to help me figure that out. Those minutes were PRECIOUS for them on that day and for me today. But the reason they had those minutes for me was that Wipro culture was built that way. You help young people out and mentor them towards the right path. It was what I wanted as a fresher and it was what they gave me. That was the BRAND VALUE any fresher willing to learn should be looking out for.

When I joined my current company in 2002, I wanted to break the boundaries I had started to feel in my first company. My first company, being a big company, had a little buerocratic culture built in. Moreover, being a services company, it had the dis-advantages of not focusing on innovation and products. I had always wanted to get the system perspective and see products taking shape. It was something that would have been difficult to materialize there, and so I came to my current company. A small company focused on product development was the BRAND VALUE a two year experience guy was looking at.

When I had five years experience, I suddenly started thinking about my long term goals. A great amount of debate focused on what I wanted to be – An architect or a manager. A parallel ladder (with equal opportunities to grow in both ladders) was the BRAND VALUE a five year experience guy was looking at.

When I will have eight years experience, I think forming a world class team would be my prime goal. A team which works like a team, is devoid of politics, is ready to be there for others, does not think about boundaries (definitely not the yeh tera kaam tha kinds). A company which gives me the liberty to do this is the BRAND VALUE I would be looking at.

Beyond that, I think its too early to talk. But if we come back to the topic of the debate, I think a single company can very well provide the BRAND VALUES which people look for at different point of their careers. Mentoring the freshers was something that was missing in my current organization till now. I would not have recommended it to a fresher when I joined here in 2002, but with the effort being spent on the topic (freshers training) over the last year, it is one of the better companies to be at this moment of time. It is a product company and if you are the kind of person who wants to learn everything, it is encouraged here. With the All-Hands, I think there would (should) be focus on getting equality between the two ladders. It is certainly the BRAND VALUE all techies want in their company and I hope we get it in my current organization.

Wednesday, July 05, 2006


Quote: Iski smile meri smile se badi kaisi

Question: Who in the below picture is saying this to whom?
Is it Didi to bhabhi or bhabhi to Didi?

Thursday, March 16, 2006

Kitne Mahine / Saal

Thats me when I was around 2 years old. There is a custom in our family to cut the new borns hair only after the second Dusshera (Yup, I came to know about it couple of days back). I was born on 7th November and the family custom gave my hair two years security before anyone could touch them.

Now coming to the heading of the blog: Kitne Mahine / Saal. I came upon this whacky thought of re-doing the past once again. Earlier, the family custom made me look like that and 27 years down, I would like to do it for my pleasure. But, I have absolutely no idea on how much time it would take to do it. Following are the estimates I got till now:

Papa: 4 months
Saurabh: 6 months
Mine: 5 months (Chose the average till now, thats called BEING SMART)

Get the brains working overtime and tell me how much time you think it would take to get there!

The final plan is to TAKE A SNAP when I reach there in the same pose as above, thats what I call a perfect PLAN :)

Category: Personality