Sunday, May 25, 2008
I was browsing YouTube and came across this song "Purani Jeans" by Ali haider. This was one of my favorite songs while I was in college. the song is all about what happens in college and most of the things I can related too.
Purani jeans aur guitar
Mohalle ki vo chhat
Aur mere yaar
Vo raaton ko jaagna
Subah ghar jaan
Kood ke deewar
Vo cigaretee peena
Gali mein jaake
Wo karna daanton ko
Ghadi ghadi saaf
Pahunchna college hamesha late
Vo kehna sir ka
"Get out from the class!"
Vo bahar jaake hamsha kehna
Yahan ka system
Hi hai kharaab
Vo jaake canteen mein
Vo gaane gaana
Yaaron ke saath
Yaadein reh jaati hain
Baatein reh jaati hain
Vo papa ka daantna
Vo kehna mummy ka
Chhodein ji aap
Tumhein to bas nazar aata hain
Jahan mein beta
Mera hi kharaab
Vo dil mein sochna
Kar ke kuchh dikha dein
Vo karna planning
Roz nayi yaar
Ladakpan ka vo pehla pyaar
Vo likhna haathon pe
A + R
Vo khidki se jhaankna
Vo likhna letter
Unhein baar baar
Vo dena tofe mein
Sone ki baaliyan
Vo lena doston se
Yaadein reh jaati hain
Baatein reh jaati hain
Aisa yaadon ka mausam chala
Bhoolta hi nahin
Kahan meri jeans aur guitar
Mohalle ki vo chhat
Aur mere yaar
Vo raaton ko jaagna
Subah ghar jaan
Kood ke deewar
Monday, December 24, 2007
Friday, October 19, 2007
Saturday, August 04, 2007
Harry Potter and the Deathly Hallows got released on the 21st of July 2007. About 2 years back, when the Half Blood Price got released, me along with a friend had gone to Crosswords at 6 AM in the morning thinking that there will be a huge crowd. There wasn't a huge crowd but it was fun though.
This time Blossoms bookstore opened at 5.30 AM sharp. There was a line of 100+ people eagerly waiting for the book. There was a TV crew too but the children and young adults were more interested in the book than the TV crew.
I got hold of the book and started reading it. When there was about 30 pages remaining, the power went off. It was raining cats and dogs. I waited for 5 minutes thinking that the power will come back, but unfortunately it didn't. It was already 11.30 PM so I thought, that let me go to sleep. But after five minutes I realized, I could not sleep without finishing the book. I started searching for candles but unfortunately there were none. Finally, I decided to use the light from my cellphone (Nokia 1600). Just when I completed reading the book, the power came back. I guess it was MAGIC.
Saturday, July 28, 2007
You can download it from
Download and installation instructions can be found at
Sunday, July 08, 2007
Right now the agents are open sourced and soon the whole code base will be available.
Read more here
The Open HA Cluster community
Sunday, June 10, 2007
Sunday, June 03, 2007
When I was discussing this with a friend of mine, he said its good that the Bengal government did not to agree to 15L price, as Infosys was trying to extract much more just because of its brand value. He also found that 100 acres employing 5000 people was a waste of space, although he agreed that Infy campuses are lavish with swimming pool, gym and what not. Well its one way for Infy to attract "bright" engineers. Most of the entry level engineers hired by Infy get attracted to the brand name and the facilities it provides. I found nothing wrong in that. Every company has a strategy. Also indirectly the Infy facility would be providing employment to many others. For example, there would be people employed indirectly for maintaining the campus, the security, the catering facility, the sports facility, the transport facility. Then these 5000 well paid employees will splurge their salary in shopping malls and multiplexes. So the campus would have done a lot of good to Bengal.
But now that was one side. What about the private developers, developing the same land and building housing complex, office space, shopping centers. This would have also generated a lot of employment. But still it would miss the Infy brand name. Thankfully Buddhadeb babu understands this. He has now offered Infy 100 acres (read to occupy immediately) at 15L per acre at Kalyani about 60 kms from Calcutta. This is a good move. Since the land is ready to occupy, Infy could kick off its campus building almost immediately. Secondly government gets a good deal because a town near Calcutta will get developed and other IT companies may follow suit. Lets see how it goes. Infy hasn't yet accepted the offer. I am keeping my fingers crossed.
News about Infy pulling out in Times of India
News about Buddhadeb Babu again offering land to Infy in Economic Times
Sunday, May 27, 2007
Over here I have taken job as an example. It has to do with everything in life. Like the house I stay in. Its good, comfortable. Does that mean I stay in the house forever. Potentially, I could look for a new house but it could come with its own set of problems. But does that mean that I do not look at all .... ok may be the house example was not so good but hopefully if you are still reading you have got the point.
Ok Ok. I am confused. But aren't you also confused. Are you happy with what you are doing or you have just forgotten the happiness and joined the rat race like me. Well, a fatter rat is given more respect than the ones who fall behind. So is it better to be a fat rat or slow down and be a tiny one. I don't have the answer, I am still trying to find out.
I had gone to Calcutta for the weekend (and Monday) to attend a marriage. In this trip I was expected to go to my Aunt's house as I had not gone to her house for more than 2 years now. So I decided that I will definately go to her house. Her house is about 25 Kms from my house. Me and my sister decided that we will leave early (10AM) so that we reach latest by 12.00 noon. That day Mamata Banaerjee decided to call for a Rasta Roko type of a thingy. Guess what, a strike or procession has been called is not unusual to me, what was unusual was that this road blocking exercise had a precise time - 11.00 AM to 12.00 Noon. So the major roads would be blocked by her supporters only during this time.
Well I didn't really care about the timings. But my sister was calculating how we could avoid all this and reach. Anyways next morning we left the house, I really didn't understand the calculations my sister did but still followed her. We got up in a Jadavpur Airport mini bus and would be getting down at LakeTown.
I was getting up in a bus in Kolkata after a long time. The last few years when ever I had come I used to go out in my Dad's office car. After retirement, it was back to the bus. So we boarded the bus and in the beginning everything was normal. Luckily the bus was not too crowded. Then after some time the bus driver was driving the bus like a motor cycle. Well It was fun in the beginning and then he went real crazy. Now I didn't understand that he was also doing his mental calculation to bypass the road blocks. Anyways the funny part is the bus was driven by not one person, but three people. One, the real driver, the man behind the wheels. Second one was the conductor, who was making sure that the passengers bought bought the ticket and got down at the right place. (Note: only passenger's getting down). The third guy was a helper, who made sure that the passengers boarded the bus and guess what .... he would shout and make the small cars, taxis, auto's move out of the bus' way so that the driver could drive the bus like a two wheeler. In his enthusiasm he sometimes actually forgot to drop the passenger. When the conductor realized this, he said that seems like all that passengers would have to get down at the airport only, the last stop. The helper realized his folly and cooled down a bit.
Then the inevitable happened. We got stuck in the road block at one intersection. The time was 11.45 AM. There was another side road, which would enable us to bypass the crossing, so I told the driver why not take it. The driver replied that this would get over soon. I got irritated, all it would take us would be 5 minutes and this guy was actually saying that these protesters actually followed time. In a state which is notorious for its work culture and punctuality, people were actually expecting that the protesters would follow time. Now my sister pitched in and told me why not wait and watch. Well she actually believed that the protesters would honour the timings. Wait and watch it was for me. Then the even more surprising thing happened. The roadblocks got cleared at 11.55AM (on time) and everything started to move.
For the last 10 years I have been living outside Calcutta. When I left, it was called Calcutta and I still had that image of Calcutta. But I realized it has changed. Processions, strikes and other forms of peaceful protests religiously follow the timings. Every one is now more proactive to avoid these and go to their work. I guess Buddhadev babu's reforms have definitely changed the mindset of some of the people. I hope he or his successor ( don't know if he (Buddhadeb babu) is going to get re elected looking at all the violence happening in Nandigram and elsewhere) can carry on the reforms.
Sunday, May 13, 2007
Tuesday, April 17, 2007
Thursday, March 15, 2007
A few days back I got to see Windows Vista in action. A friend of mine had bought a DELL Laptop with Windows Vista. It was the basic edition, did not have the 3D desktop but looked clean. But alas, I was disappointed, withing 5 minutes I had managed to make the desktop hang. There was a clock utility running on the top right hand side. I pulled it and released it under the start button. The desktop hanged. It was a soft hang. After waiting for 5 minutes I rebooted the machine. Everything was back to normal. In spite of this, I liked the looks, neat and clean. Didn't use it enough to comment more on the pros and cons. Watch this space for more on Windows Vista
Sunday, March 04, 2007
1."DON'T LET SOMEONE BECOME A PRIORITY IN YOUR LIFE...
WHEN YOU ARE JUST AN OPTION FOR THEM....."
2."NEVER CRY FOR ANY RELATION IN LIFE
BECAUSE FOR THE ONE WHOM YOU CRY
DOES NOT DESERVE YOUR TEARS
AND THE ONE WHO DESERVES
WILL NEVER LET YOU CRY......... ........ "
3."TREAT EVERYONE WITH POLITENESS
EVEN THOSE WHO ARE RUDE TO YOU,
NOT BECAUSE THEY ARE NOT NICE
BUT BECAUSE YOU ARE NICE........ ........."
4."NEVER SEARCH YOUR HAPPINESS
WHICH WILL MAKE YOU
RATHER SEARCH IT IN YOURSELF
YOU WILL FEEL HAPPY
EVEN IF YOU ARE LEFT ALONE....... ......... ......"
5."HAPPINESS ALWAYS LOOKS SMALL
WHEN WE HOLD IT IN OUR HANDS.
BUT WHEN WE LEARN TO
WE REALIZE HOW BIG AND PRECIOUS IT IS!"
Monday, February 12, 2007
Thursday, January 04, 2007
Tuesday, November 28, 2006
Monday, November 27, 2006
Sunday, November 26, 2006
Sunday, June 25, 2006
We reached her home and were greeted by her parents and we got or schedule. We would be visiting Mahabalipuram and a theme park on the East Coast Road. So we all got ready for our visit to Mahabalipuram. We had yummy breakfast, poori sabzi, idli, vada and the most tasty coconut chutney I had ever had. Finally after breakfast we left and reached Mahabalipuram shore temple at about 11.30 AM.
It was very hot and humid and being so accustomed to the cool and pleasant Banaglore weather we were already feeling the effects of the SUN. We roamed around in Mahabalipuram and saw some more ruins and then headed for a restaurant to have lunch with idea being we could spend some time in a cool air conditioned restaurant.
Finally we headed for the golden beach, which was not too bad. Actually the water was a welcome relief. We had great fun splashing in the sea.
Finally it was time to go home. Once at home we cleaned ourselves and had yummy dinner and watched a movie on HBO. Next day was our actual Pondicherry trip. We would be visiting various places in Pondicherry.
We woke up next day and went to a big temple in Pondicherry where my friend did some Puja and then we had breakfast with the temple elephant .... ok what I meant was we were having the prasad when the temple elephant came and blessed all of us and had his breakfast - prasadam :)
Then we visited Aurobindo Ashram. Photography was not allowed and hence no pics. Its was a quiet place. The stillness of the place kind of unnerved me ... I am too used to noise ... I actually can get disturbed if there is no noise :)
Then we took a walk along Pondicherry's marine drive to reach the Pondicherry tourism office. We were taking a Pondicherry city tour. Again we had to wait for some time for the bus to come. Finally we were off and our first visit was a huge temple which was still being constructed.
Then next stop was Auroville. It was a nice and beautiful place. First we had to listen to a small film on the history of Auroville and then we took the 1 1/2 km walk to the Matri Mandir only to be disappointed to know that we will not be allowed to enter it. It seemed like the walk was useless. Anyways we had fun watching the crowd :D and finally came back.
We had lunch at a restaurant. Two of my friends left for home as one was not feeling well. The rest 4 of us continued. We saw a botanical garden, church, the Chunnabar back water. Did boating and finally came to the Pondicherry museum.
Then our host came and we roamed around on Marine Drive thinking that we would get to see some French babes. We weren't so lucky :) but we saw some French buildings and generally roamed around.
Reaching home we had dinner and set out for the bus stand. This time bus was on time. 6 hours later we were in Bangalore .
Saturday, June 10, 2006
Thursday, May 11, 2006
Monday, April 10, 2006
2.. Phuchka: gol-gappas aren't a patch on phuchkas. Try Bengal
Karaishutir Kochuri: a seasonal favourite, have it with "alur dam".
3.. Luchi: puri and phulkas - no comparison.
4.. Alurdom: the world's best. Try the offering at Vivekananda Park.
5.. Jhalmuri: a unique concoction, with nothing to equal it.
6.. Telebhaaja: these and jhalmuri are like 'made for each other'.
7.. Chanachur: many have tried unsuccesfully to steal the formula, MNCs
8.. Alukabli: where will you get something like this?
9.. Ghugni: again, chana is not the same at all.
10.. Radhaballavi: try it with alurdom or cholar daal.
11.. Chanmp: even Pakistani cricketers have sampled these, in Chitpur.
12.. Rezala: out of this world, just out of this world!
13.. Paradiser Sharbat: there is one which is green, and another, pink. No
college student from Presidency or the University has failed to sample
14.. Lere Biscut: needed to make the batter for chop-katlet.
15.. Chicken Kabiraji: an unbelievable variation on the chicken cutlet.
16.. Moton Afghani: an equally innovative presentation of the mutton
17.. Dimer Kalia: again, where do you get something like this?
18.. Kasha mangsho: it has become an institution now.
19.. Roll: the ubiquitous mutton, chicken or egg roll. Unquestionably
superior to any variants (Frankies 4 that matter) in any other city of the
world. And also....
20.. Coffee houser coffee ar adda: try the float with ice cream.
21.. Bharer chaa: on the Maidan, from shining brass vessels on a rainy day.
And not to be missed in all this,
22.. Pan unmatched, even in Benaras or Lucknow. Honestly!
The sweeter side
23.. Roshomalai: a creamy, mouth-watering delight!
24.. Jilipi: smaller than the jalebis and tastes quite different.
25.. Lal doi: is an experience by itself!
26.. Sada Doi: have it @ the shop, "Mithai"
27.. Kamala bhog: a pale yellow orb, delicately sweetened.
28.. Notun gurer sondesh: a winter speciality available in no other city.
29.. Rosogolla: simply needs no introduction.
30.. Natun gurer Rosogolla: the latest innovation. There are many, many
more traditional favourites.
31.. Shitabhog: pure white, sweetened to just the right extent.
32.. Mihi Dana: golden yellow, saffron scented.
33.. Maalpoa: rich brown pancakes, dripping in sugar syrup.
34.. Ranga alur pithey: another traditional favourite in winter.
Up fashion street
35.. Fashions keep changing. But the dhuti-panjabi and tangail look never
36.. Dhuti with extra broad borders: the finest and most elegant available
37.. Dhutis in red or black! The latest sensation in Calcutta.
38.. Giley kara Panjabi: those with the improbably crinkled sleeves.
39.. Tangail Sari: the best in these all-time favourites can be found here.
and the other marks of distinction are...
40.. Bidyasagari choti: you still get them here.
41.. Kabuli Chappal: another old favourite.
42.. Garader Sari: ideal with pujo bari, shankher awaaj.
Sights and sounds
One wakes up in the morning and hears their voices drifting through the
air. So typically do they say their bit...that it is difficult to
forget....and even more so ...to imitate...
43.. Shil katowala: they chip the stone slabs which grind masalas.
44.. Chhuri Kanchhi Shaanwala: sharpens knives, scissors and anything with
45.. Lep Shelaiwala: they make those cotton quilts which warm you up in
And early in the morning, before Durga Pujo, who can forget the strains of
46.. Mahalayar mahishashuromardini
Other things, quaint and very special
48.. Chinese Food in China Town: an early morning breakfast here is an
49.. Metro Rail: spick and span, and the trains are dot on time.
50.. Maidan: the ideal p lace to be on a sleepy, winter morning.
51.. College Streeter Boipara: bookworms buzz around this place morning,
noon and night.
52.. All Night Music Conference: you won't find a minute to yawn.
53.. Circular Rail: see the river all along as you travel on the train.
54.. Ganga te nouko bihar: either in a country boat or a steamer or on
55.. Dolphins in the Ganga: if it's your lucky day, you might catch a
glimpse of a frolicking shoal.
56.. Morning tram to the Maidan: see how green and fresh the city looks.
57.. East Calcu tta Wetlands: our very own eco-system regulator - just on
Travel in style
58.. Rickshaw: still the preferred form of transportation for some,
especially children and the elderly.
59.. School van: it's to be seen to be believed.
60.. Tram: if you have time on hand, you can see the city glide by.
61.. Roker adda: Calcuttans are an adda baaj lot.Mohan Bagan & East
Bengal: prices of ilish or chingri go up, depending on who wins the
62.. Jatra: who says it is all melodrama?
63.. Durga pujo: the pomp and pageantry, reserved each year for the 'mother
of all festivals'.
64.. Little magazine: you still find devotees of this publishing wonder.
65.. Book Fair: when the fair is on, you are there - whether you love books
66.. Cricket match at the Eden: cricketers and cricket lovers the world
over treasure the experience.
67.. Hydrant: there's a move by the CMC to revive the practice of ashing
the streets with Ganga water from the hydrants
68.. Italian Saloon: road side barber joints, where you sit on a piece of
69.. Chinese dry cleaners: do a very clean job, indeed.
70.. Darjees of Metiabruz: are a cut above the rest. Even if they cut
corners at times!
Now, Tell Me Is There Any Other Place Better Than Kolkata On Earth?
Sunday, February 19, 2006
A very good article ... must read specially for software engineers.
Posting the article from
They Write the Right Stuff
As the 120-ton space shuttle sits surrounded by almost 4 million pounds of rocket fuel, exhaling noxious fumes, visibly impatient to defy gravity, its on-board computers take command.
The right stuff kicks in at T-minus 31 seconds.
As the 120-ton space shuttle sits surrounded by almost 4 million pounds of rocket fuel, exhaling noxious fumes, visibly impatient to defy gravity, its on-board computers take command. Four identical machines, running identical software, pull information from thousands of sensors, make hundreds of milli-second decisions, vote on every decision, check with each other 250 times a second. A fifth computer, with different software, stands by to take control should the other four malfunction.
At T-minus 6.6 seconds, if the pressures, pumps, and temperatures are nominal, the computers give the order to light the shuttle main engines -- each of the three engines firing off precisely 160 milliseconds apart, tons of super-cooled liquid fuel pouring into combustion chambers, the ship rocking on its launch pad, held to the ground only by bolts. As the main engines come to one million pounds of thrust, their exhausts tighten into blue diamonds of flame.
Then and only then at T-minus zero seconds, if the computers are satisfied that the engines are running true, they give the order to light the solid rocket boosters. In less than one second, they achieve 6.6 million pounds of thrust. And at that exact same moment, the computers give the order for the explosive bolts to blow, and 4.5 million pounds of spacecraft lifts majestically off its launch pad.
It's an awesome display of hardware prowess. But no human pushes a button to make it happen, no astronaut jockeys a joy stick to settle the shuttle into orbit.
The right stuff is the software. The software gives the orders to gimbal the main engines, executing the dramatic belly roll the shuttle does soon after it clears the tower. The software throttles the engines to make sure the craft doesn't accelerate too fast. It keeps track of where the shuttle is, orders the solid rocket boosters to fall away, makes minor course corrections, and after about 10 minutes, directs the shuttle into orbit more than 100 miles up. When the software is satisfied with the shuttle's position in space, it orders the main engines to shut down -- weightlessness begins and everything starts to float.
But how much work the software does is not what makes it remarkable. What makes it remarkable is how well the software works. This software never crashes. It never needs to be re-booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. Consider these stats : the last three versions of the program -- each 420,000 lines long-had just one error each. The last 11 versions of this software had a total of 17 errors. Commercial programs of equivalent complexity would have 5,000 errors.
This software is the work of 260 women and men based in an anonymous office building across the street from the Johnson Space Center in Clear Lake, Texas, southeast of Houston. They work for the "on-board shuttle group," a branch of Lockheed Martin Corps space mission systems division, and their prowess is world renowned: the shuttle software group is one of just four outfits in the world to win the coveted Level 5 ranking of the federal governments Software Engineering Institute (SEI) a measure of the sophistication and reliability of the way they do their work. In fact, the SEI based it standards in part from watching the on-board shuttle group do its work.
The group writes software this good because that's how good it has to be. Every time it fires up the shuttle, their software is controlling a $4 billion piece of equipment, the lives of a half-dozen astronauts, and the dreams of the nation. Even the smallest error in space can have enormous consequences: the orbiting space shuttle travels at 17,500 miles per hour; a bug that causes a timing problem of just two-thirds of a second puts the space shuttle three miles off course.
NASA knows how good the software has to be. Before every flight, Ted Keller, the senior technical manager of the on-board shuttle group, flies to Florida where he signs a document certifying that the software will not endanger the shuttle. If Keller can't go, a formal line of succession dictates who can sign in his place.
Bill Pate, who's worked on the space flight software over the last 22 years, says the group understands the stakes: "If the software isn't perfect, some of the people we go to meetings with might die.
Software is everything. (It also sucks.)
In the history of human technology, nothing has become as essential as fast as software.
Virtually everything -- from the international monetary system and major power plants to blenders and microwave ovens -- runs on software. In office buildings, the elevators, the lights, the water, the air conditioning are all controlled by software. In cars, the transmission, the ignition timing, the air bag, even the door locks are controlled by software. In most cities so are the traffic lights. Almost every written communication that's more complicated than a postcard depends on software; every phone conversation and every overnight package delivery requires it.
Software is everything. It also sucks.
"It's like pre-Sumerian civilization," says Brad Cox, who wrote the software for Steve Jobs NeXT computer and is a professor at George Mason University. "The way we build software is in the hunter-gatherer stage."
John Munson, a software engineer and professor of computer science at the University of Idaho, is not quite so generous. "Cave art," he says. "It's primitive. We supposedly teach computer science. There's no science here at all."
Software may power the post-industrial world, but the creation of software remains a pre-industrial trade. According to SEI's studies, nearly 70% of software organizations are stuck in the first two levels of SEI's scale of sophistication: chaos, and slightly better than chaos. The situation is so severe, a few software pioneers from companies such as Microsoft have broken away to teach the art of software creation (see "Drop and Code me Twenty!" )
Mark Paulk, a senior member of the SEI technical, says the success of software makes its weaknesses all the more dramatic. "We've developed software products that are enormously complex and enormously powerful. We're critically dependent on it," says Paulk. "Yet everyone complains how bad software is, with all the defects. If you bought a car with 5,000 defects, you'd be very upset."
In this software morass, the on-board shuttle group stands out as an exception. Ten years ago the shuttle group was considered world-class. Since then, it has cut its own error rate by 90%.
To be this good, the on-board shuttle group has to be very different -- the antithesis of the up-all-night, pizza-and-roller-hockey software coders who have captured the public imagination. To be this good, the on-board shuttle group has to be very ordinary -- indistinguishable from any focused, disciplined, and methodically managed creative enterprise.
In fact, the group offers a set of textbook lessons that applies equally to programmers, in particular, and producers, in general. A look at the culture they have built and the process they have perfected shows what software-writing must become if software is to realize its promise, and illustrates what almost any team-based operation can do to boost its performance to achieve near-perfect results.
Software for Grown-Ups
"Shipping hell continued today. Grind, grind, grind. We'll never make it. Have I said that already? Why do we always underestimate our shipping schedules? I just don't understand. In at 9:30 AM; out at 11:30 PM Dominos for dinner. And three diet Cokes."
No, it's not the on-board shuttle group. It's Douglas Coupland's "Microserf's," a true-to-life fictional account of life in the software-fast-lane. And it's the dominant image of the software development world: Gen-Xers sporting T-shirts and distracted looks, squeezing too much heroic code writing into too little time; rollerblades and mountain bikes tucked in corners; pizza boxes and Starbucks cups discarded in conference rooms; dueling tunes from Smashing Pumpkins, Alanis Morrisette and the Fugees. Its the world made famous, romantic, even inevitable by stories out of Sun Microsystems, Microsoft, and Netscape.
It's not the story of the on-board shuttle group. Their quarters are a study in white-collar pedestrian. The most striking thing is how ordinary they look. Other than the occasional bit of shuttle memorabilia, you could be in the offices of any small company or government agency. Everyone has his or her own small office, and the offices have desks, PCs, and sparse personal artifacts. People wear moderately dressy clothes to work, neat but nothing flashy, certainly nothing grungy.
It's strictly an 8-to-5 kind of place -- there are late nights, but they're the exception. The programmers are intense, but low-key. Many of them have put in years of work either for IBM (which owned the shuttle group until 1994), or directly on the shuttle software. They're adults, with spouses and kids and lives beyond their remarkable software program.
That's the culture: the on-board shuttle group produces grown-up software, and the way they do it is by being grown-ups. It may not be sexy, it may not be a coding ego-trip -- but it is the future of software. When you're ready to take the next step -- when you have to write perfect software instead of software that's just good enough -- then it's time to grow up.
Ted Keller, 48, the group's senior technical manager, looks and sounds like the headmaster of a small private high school. It's Keller's job to make sure the software gets delivered on time, with all its capabilities, without regard to turf battles. He's a compact, bald man, a little officious and persnickety, qualities any astronaut would find reassuring. He has a gentle, geeky sense of humor, not so much with outsiders, but with his crowd.
It comes out in a meeting between members of the software group and their NASA counterparts. It's held in a small conference room overstuffed with 22 people and an overhead projector. Several times, from the back of the room, Keller issues a wry remark about the speed of code delivery, or the detail of some specifications, and the room lightens with laughter.
Otherwise, the hour-long meeting is sober and revealing, a brief window on the culture. For one thing, 12 of the 22 people in the room are women, many of them senior managers or senior technical staff. The on-board shuttle group, with its stability and professionalism, seems particularly appealing to women programmers.
For another, it's an exercise in order, detail, and methodical reiteration. The meeting is a classic NASA performance -- a rehearsal for an almost identical meeting several weeks away. It consists of walking through an enormous packet of data and view -- graphs which describe the progress and status of the software line by line. Except for Keller's occasional asides, the tone is businesslike, almost formal, the view - graphs flashing past as quickly as they can be read, a blur of acronyms, graphs, and charts.
What's going on here is the kind of nuts-and-bolts work that defines the drive for group perfection -- a drive that is aggressively intolerant of ego-driven hotshots. In the shuttle group's culture, there are no superstar programmers. The whole approach to developing software is intentionally designed not to rely on any particular person.
And the culture is equally intolerant of creativity, the individual coding flourishes and styles that are the signature of the all-night software world. "People ask, doesn't this process stifle creativity? You have to do exactly what the manual says, and you've got someone looking over your shoulder," says Keller. "The answer is, yes, the process does stifle creativity."
And that is precisely the point -- you can't have people freelancing their way through software code that flies a spaceship, and then, with peoples lives depending on it, try to patch it once its in orbit. "Houston, we have a problem," may make for a good movie; it's no way to write software. "People have to channel their creativity into changing the process," says Keller, "not changing the software."
The tight strictures the group practices can make the siren song of the rock n roll software world hard to resist. Quinn Larson, 34, had worked on shuttle software for seven years when he left last January to go to work for Micron Technology in Boise, Idaho, automating the manufacture of Microns memory chips.
At Micron, Larson was given the task to automate the saws that cut finished chip wafers to the right size. Screw up the program, you destroy the valuable wafers.
"It was up to me to decide what to do," says Larson. "There were no meetings, there was no record-keeping." He had freedom; it was a real kick. But to Larson's way of thinking, the culture didn't focus on, well, the right stuff. "Speed there was the biggest thing," he says. "The engineers would say, these are our top priorities, and we need to get'em as fast as we can." But the impression Larson got was that engineers didn't seem too concerned about how well the finished software actually worked. "Basically, they wanted quick software -- just put it out the door."
Larson started back at the shuttle group in mid-August. "The people here are just of the highest caliber," he said on his first day back in Clear Lake.
It's the Process
How do they write the right stuff?
The answer is, it's the process. The group's most important creation is not the perfect software they write -- it's the process they invented that writes the perfect software.
It's the process that allows them to live normal lives, to set deadlines they actually meet, to stay on budget, to deliver software that does exactly what it promises. It's the process that defines what these coders in the flat plains of southeast suburban Houston know that everyone else in the software world is still groping for. It's the process that offers a template for any creative enterprise that's looking for a method to produce consistent - and consistently improving -- quality.
The process can be reduced to four simple propositions:
1. The product is only as good as the plan for the product.
At the on-board shuttle group, about one-third of the process of writing software happens before anyone writes a line of code. NASA and the Lockheed Martin group agree in the most minute detail about everything the new code is supposed to do -- and they commit that understanding to paper, with the kind of specificity and precision usually found in blueprints. Nothing in the specs is changed without agreement and understanding from both sides. And no coder changes a single line of code without specs carefully outlining the change. Take the upgrade of the software to permit the shuttle to navigate with Global Positioning Satellites, a change that involves just 1.5% of the program, or 6,366 lines of code. The specs for that one change run 2,500 pages, a volume thicker than a phone book. The specs for the current program fill 30 volumes and run 40,000 pages.
"Our requirements are almost pseudo-code," says William R. Pruett, who manages the software project for NASA. "They say, you must do exactly this, do it exactly this way, given this condition and this circumstance."
This careful design process alone is enough to put the shuttle organization in a class by itself, says John Munson of the University of Idaho. Most organizations launch into even big projects without planning what the software must do in blueprint-like detail. So after coders have already started writing a program, the customer is busily changing its design. The result is chaotic, costly programming where code is constantly being changed and infected with errors, even as it is being designed.
"Most people choose to spend their money at the wrong end of the process," says Munson. "In the modern software environment, 80% of the cost of the software is spent after the software is written the first time -- they don't get it right the first time, so they spend time flogging it. In shuttle, they do it right the first time. And they don't change the software without changing the blueprint. That's why their software is so perfect."
2. The best teamwork is a healthy rivalry.
Within the software group, there are subgroups and subcultures. But what could be divisive office politics in other organizations is actually a critical part of the process.
The central group breaks down into two key teams: the coders - the people who sit and write code -- and the verifiers -- the people who try to find flaws in the code. The two outfits report to separate bosses and function under opposing marching orders. The development group is supposed to deliver completely error-free code, so perfect that the testers find no flaws at all. The testing group is supposed to pummel away at the code with flight scenarios and simulations that reveal as many flaws as possible. The result is what Tom Peterson calls "a friendly adversarial relationship."
"They're in competition for who's going to find the errors," says Keller. "Sometimes they fight like cats and dogs. The developers want to catch all their own errors. The verifiers get mad, 'Hey, give it up! You're taking away from our time to test the software!'"
The developers have even begun their own formal inspections of the code in carefully moderated sessions, a rigorous proof-reading they hope will confound the testers. The verifiers, in turn, argue that they deserve credit for some errors found before they even start testing. "From the verification group's perspective," says Pat McLellan, a senior manager, "we're aware that if there was no independent verification group, the developers would tend to be more lax. Just the presence of our group makes them more careful."
The results of this friendly rivalry: the shuttle group now finds 85% of its errors before formal testing begins, and 99.9% before the program is delivered to NASA.
3. The database is the software base.
There is the software. And then there are the databases beneath the software, two enormous databases, encyclopedic in their comprehensiveness.
One is the history of the code itself -- with every line annotated, showing every time it was changed, why it was changed, when it was changed, what the purpose of the change was, what specifications documents detail the change. Everything that happens to the program is recorded in its master history. The genealogy of every line of code -- the reason it is the way it is -- is instantly available to everyone.
The other database -- the error database -- stands as a kind of monument to the way the on-board shuttle group goes about its work. Here is recorded every single error ever made while writing or working on the software, going back almost 20 years. For every one of those errors, the database records when the error was discovered; what set of commands revealed the error; who discovered it; what activity was going on when it was discovered -- testing, training, or flight. It tracks how the error was introduced into the program; how the error managed to slip past the filters set up at every stage to catch errors -- why wasn't it caught during design? during development inspections? during verification? Finally, the database records how the error was corrected, and whether similar errors might have slipped through the same holes.
The group has so much data accumulated about how it does its work that it has written software programs that model the code-writing process. Like computer models predicting the weather, the coding models predict how many errors the group should make in writing each new version of the software. True to form, if the coders and testers find too few errors, everyone works the process until reality and the predictions match.
"We never let anything go," says Patti Thornton, a senior manager. "We do just the opposite: we let everything bother us."
4. Don't just fix the mistakes -- fix whatever permitted the mistake in the first place.
The process is so pervasive, it gets the blame for any error -- if there is a flaw in the software, there must be something wrong with the way its being written, something that can be corrected. Any error not found at the planning stage has slipped through at least some checks. Why? Is there something wrong with the inspection process? Does a question need to be added to a checklist?
Importantly, the group avoids blaming people for errors. The process assumes blame - and it's the process that is analyzed to discover why and how an error got through. At the same time, accountability is a team concept: no one person is ever solely responsible for writing or inspecting code. "You don't get punished for making errors," says Marjorie Seiter, a senior member of the technical staff. "If I make a mistake, and others reviewed my work, then I'm not alone. I'm not being blamed for this."
Ted Keller offers an example of the payoff of the approach, involving the shuttles remote manipulator arm. "We delivered software for crew training," says Keller, "that allows the astronauts to manipulate the arm, and handle the payload. When the arm got to a certain point, it simply stopped moving."
The software was confused because of a programming error. As the wrist of the remote arm approached a complete 360-degree rotation, flawed calculations caused the software to think the arm had gone past a complete rotation -- which the software knew was incorrect. The problem had to do with rounding off the answer to an ordinary math problem, but it revealed a cascade of other problems.
"Even though this was not critical," says Keller, "we went back and asked what other lines of code might have exactly the same kind of problem." They found eight such situations in the code, and in seven of them, the rounding off function was not a problem. "One of them involved the high-gain antenna pointing routine," says Keller. "That's the main antenna. If it had developed this problem, it could have interrupted communications with the ground at a critical time. That's a lot more serious."
The way the process works, it not only finds errors in the software. The process finds errors in the process.
Just a Software Problem
The B-2 bomber wouldn't fly on its maiden flight -- but it was just a software problem. The new Denver airport was months late opening and millions of dollars over budget because its baggage handling system didn't work right -- but it was just a software problem. This spring, the European Space Agency's new Ariane 5 rocket blew up on its maiden launch because of a little software problem. The federal government's major agencies - from the IRS to the National Weather Service -- are beset with projects that are years late and hundreds of millions of dollars over budget, often because of simple software problems. Software is getting more and more common and more and more important, but it doesn't seem to be getting more and more reliable.
As the rest of the world struggles with the basics, the on-board shuttle group edges ever closer to perfect software. Admittedly they have a lot of advantages over the rest of the software world. They have a single product: one program that flies one spaceship. They understand their software intimately, and they get more familiar with it all the time. The group has one customer, a smart one. And money is not the critical constraint: the groups $35 million per year budget is a trivial slice of the NASA pie, but on a dollars-per-line basis, it makes the group among the nation's most expensive software organizations.
And that's the point: the shuttle process is so extreme, the drive for perfection is so focused, that it reveals what's required to achieve relentless execution. The most important things the shuttle group does -- carefully planning the software in advance, writing no code until the design is complete, making no changes without supporting blueprints, keeping a completely accurate record of the code -- are not expensive. The process isn't even rocket science. Its standard practice in almost every engineering discipline except software engineering.
Plastered on a conference room wall, an informal slogan of the on-board shuttle group captures the essence of keeping focused on the process: "The sooner you fall behind, the more time you will have to catch up."
Charles Fishman (email@example.com) is a writer based in Raleigh, North Carolina.
Tuesday, February 07, 2006
Systems Administration & Support
Finance and Accounts consultant
Training and Knowledge Management
DBA (Crash Specialist)
Quality Assuarance & Documentation
Reorganization & Downsizing Consultant
IDP & Personal Records
In house Hackers
Internet Explorer WWWF
Support Software and Backup
Sr. Manager Projects
Annual appraisal & Promotion
Technical Writer (Ramayana Sign off document)
SDLC ( Sudarshan Wheel Development Life Cycle )
ISO Consultant (CMM level 5)
Lead Programmer (all companies are vying for him)
Motivation & Team building
MAINFRAME LEGACY SYSTEM
Microsoft product Written in VB
Microsoft Service Packs and patches
Sunday, December 25, 2005
Friday, December 16, 2005
19. "It's never done that before."
18. "It worked yesterday."
17. "How is that possible?"
16. "It must be a hardware problem."
15. "What did you type in wrong to get it to crash?"
14. "There is something wrong in your data."
13. "I haven't touched that module in weeks!"
12. "You must have the wrong version."
11. "It's just some unlucky coincidenc
10. "I can't test everything!"
9. "THIS can't be the source of THAT."
8. "It works, but I havn't been tested."
7. "Somebody must have changed my code."
6. "Did you check for a virus on your system?"
5. "Even though it doesn't work, how does it work?
4. "You can't use that version on your system."
3. "Why do you want to do it that way?"
2. "Where were you
And the Number One Reply by Programmers when their programs don't work:
1. "It works on my machine."