Perspectives from the *other side* on Software, Management and Life

Wednesday, December 31, 2008

2009 - Qualities to Wish For!


First posting of 2009, and its so cliche to be posting my resolutions for the coming year(s). Though there is a twist to it, they're not new year resolutions but more than that. They're my envy list of the qualities I wish I had. Without further adieu:

1. Dedication to Work - My work pays for my bills (religious beliefs aside for a moment, and even with them there is a need to "earn" one's livelihood). Yet sometimes I get the feeling I'm not as dedicated as I should be, and with some bright examples of individuals who're always a few minutes early to office, complete all their work and then every now and then even respond to queries off hours.
2. Hours of Sleep - a 24 hour day is just too small if one spends 10 hours in bed and getting ready. Ten is probably the time I take in terms of sleeping, getting ready for work and then before getting to sleep. I wish I was one of those individuals who could sleep 5 hours and get ready in 30 mins (including a breakfast on the go).
3. Memory - I hate having to dig up my notes just to confirm what was exactly said in a meeting three months back. If only I could have a photographic memory spanning multiple months (or years as a special bonus).
4. Fair - In management, decisions are made on a daily basis that impact the lives and quality of life of others. It may be a small decision for a manager to take, but a huge one for the employee. I hope my decisions to date have been just and fair, and the ones I make in the future are even more rational along with being just and fair.
5. Communication - The ability to communicate clearly is never really achieved. Theres always room for improvement. And in my case, along with a sizeable portion of individuals, we have a long long way to go.
6. Health - must not end up in the ER with a heart attack! Should run 5K twice a week! Wishful thinking on my part.



Wednesday, November 26, 2008

Mobilink - Horrible Customer Relationship Management



Mobilink is the largest mobile service provider in Pakistan, although its quickly been loosing its market share to its competitors (Ufone, Warid, Telenor and Zong). If I were to analyze mobilink, here are my thoughts:

1. Slow mover. They've been around for the longest time. They were successful in out smarting Paktel and some other company - but it was an easy win given the lack of decent management in any one of those firms.
But even with this advantage, they've been caught with their pants down ever since the new telco's arrived in Pakistan. Their customer base was just itching to jump ship and couldnt be more glad with competition arriving
2. Good enterprise penetration. This is probably the only plus for mobilink as they've managed to hold on to the enterprise market. But slowly and surely, their higher rates and lack of good customer service will catch up
3. Quality and Coverage. Their call quality and coverage isnt all that great, but hey neither is that of the others - so not much competition!
4. GPRS/Edge. Telenor's the clear leader in launching of edge services, but mobilink does seem to have awaken to the need. They're still playing catch up though
5. Blackberry. Mobilink was first to launch exclusive blackberry service and held the monopoly in Pakistan for some years. Only recently has Ufone entered this market. I'm not a crackberry person, so not something I get high on
6. Little connection with the young crowd. My firm deals with a certain telco product and so I know from at least some data that we have that mobilink has lost the touch with the younger crowd. Its a matter of time before this crowd gets into the enterprise and drive out mobilink from there as well!An Advertisement by mobilink - better spend the money upgrading that CRM!

In the end, if you're wondering why I decided to leave, well I got a call barring error one fine day while making an international call. Since I've been a mobilink post-paid user for 3 years, I thought it must be some mistake. But to my surprise on calling their helpdesk I was told to increase my security (I used a CC, so all they had to do was get pre-authorization on it), but to treat a premium user who has paid his bills for 3 years on time like this just made my blood boil.
I got hold of the supervisor, gave him a good lecture on customer service and he had my international dialing turned on in a few hours.
Then a few days later I get a call from a mobilink agent asking me to verify:
1. My name
2. My NIC
3. Other numbers being used in the house
4. Other telco providers whose SIM was being used in my family (I told the agent to mind their business on that one)
5. Address

Then a few hours later, their courier came by to verify the home address in person AND got my NIC number as well.

A few days later, I get a call by another mobilink CSR asking the SAME questions. I was a little perturbed but cooperated. Then a few days later my international dialing gets turned off again! I call the helpdesk only to find out that the PTCL number I had on file could not be verified. Well, the morons in PTCL had equally lousy service and so i decided to stop paying my bills to them. And since when is there a requirement to have a working PTCL (Land line) number to get a cell? I'm told by mobilink its a PTA requirement??. Anyhow I ask that next time they feel like disconnecting my service they should atleast call and inform me before carrying the disconnection out. In case you're wondering I gave them my office PTCL and got international dialing enabled.

Ahh - I wish that were the end, but then I get a call a few days back by mobilink asking the SAME questions. I was fuming and told the lady to type in "customer refuses to answer the same questions he's answered twice already. If the CRM does not work, then its not the customers fault. There ought to be laws against such harrasments!". Anyway, the courier guy came to my house after a few hours and I sent my house maid to sign off on the letter attesting I lived in the house.
Then today I figured my international calling was disconnected AGAIN!! So I've gone to ufone and gotten my number transferred and am now going to campaign for others to do the same!

Sunday, November 16, 2008

Economic slump, Hyper Inflation and Possible Fears - Pakistan



For the past few months we here in Pakistan have experienced a lot. From a rapid devaluation of the Rupee (30%), frequent power outages, terrorism and then economic slow down. What we have NOT experienced is a responsible fiscal policy by the current PPP government.
Pakistan, as is the rest of the world, going through troubled financial times. The processed goods sector here, which is the textile industry given its single largest share in exports, has taken a huge hit. Europe and the US are all going through "shrinkages" in economies leaving retail vendors there to be extremely price sensitive in addition to a reduced turnaround in sales. There is nothing anyone can do about this.
The software export industry (offshore software firms) was probably a couple hundred million, maximum a billion. The too may shrink due to the hit enterprise focused firms have taken since a lot of them have shut down (I've heard Fannie May and Freddie Mac had some software components being built out of Pakistan). Although a number of commentators have speculated that offshoring may grow due to this downturn for cost saving reasons, I'm beginning to speculate it will grow as a percentage but will shrink in absolute terms.
Agriculture, this is probably the most painful topic. Pakistan being an agriculture based economy has the dumbest minds focused on increasing the productivity. From the feudals who own the lands, the politicians responsible for the relevant ministries to the "scientist" involved in tactical matters. We've had GM seeds grown here without any prior impact analysis. We've used pesticides without concern for environmental impacts. We've created a system where large land owners (read feudals), get prefrential treatment even though agriculture output from their lands is lowest in terms of output/hecter (need to verify this statement!). And then water shortage in this area thanks to India and power shortages in running tube wells.

This leaves little breathing space for a government known more its lack of competence and merit (read part about giving government jobs on nepotism!). If Hyperinflation sets in, it will impact:
  1. Money holding costs - holding onto cash is a costly and risky proposition, thereby forcing individuals and firms to be nonliquid- from the frying pan to the fire.
  2. Large risk premiums to cater to unknown inflation rates - causes inefficiency in the system
  3. Misallocation of input and output goods - again causes high inefficiency in the system
  4. Contineous adjustment costs - hiring/firing, changing listed prices and misc activities to publish price change
*Read more on such costs from here.

Now that Pakistan's gotten a few Billion (7) from IMF, it must act quickly to announce a strategic economic growth plan. Otherwise we're just waiting for the sky to fall in a few months once the temporary relief from the loan dies down.

Sunday, October 19, 2008

Weekend Movie - Idiocracy

One movie to watch if you're interested to know how the current presidency and PM's cabinet work in Pakistan under Zardari and Gillani, check out: Idiocracy




Maybe its all just a bad dream and I'll wake up to find that Pakistan is being run by smart, honest and intelligent individuals.
Anyhow, it brings goosebumps to my neck to even think about an organization being run by such folks (see the movie on the makeup of the cabinet), and to try to take this in a more positive way, how to ensure that only the talented and deserving are promoted to take on leadership roles. Are there tell tale signs of smooth talkers who take credits of others and are the perfect examples of parasites? If so, I'm all ears!

Saturday, October 11, 2008

Bad hair doesnt make for a genius

The Western world is not the only one with short sighted executives running their major financial institutes into the ground. We here in Pakistan, all too foolishly assume anyone with a Citi Group, IMF or WorldBank experience is a genius capable of converting a third world country like ours into an Asian Tiger (ok, that phrase is so 90's).

Our very own Shaukat Aziz proved how corporate bankers make for lousy economist and country development strategist. Under Shaukat Aziz, the country was converted into a credit junkey nation that was driven by consumerism. Hmm, wonder why he pushed the country there ....wait a minute, wasn't he posted in nyc and assumed the cause for the great US economy to be its symptoms. Its like extrapolating from Einstin pictures that anyone with crazy hair is a genios, and enforcing all men to have crazy hair!



So to stop myself from getting back into memory lane and mentioning all that I believe to have been wronged by incompetence in the political arena here, let me get to the reason why I'm posting today.
I got a call from my credit card bank ie Askari Bank, to take out a loan on low interest rate! What?? The global economy is crashing, ours probably crashed eons ago ...and a bank wants to offer me money with no collateral! Too bad I cannot short their stocks as the genius's in Pakistan's Karachi Stock Exchange thought it best to shut the house down indefinitely through the use of floors. Must be "genius" season world-wide!

Sunday, September 14, 2008

Pakistan caught in the global recession head lights

These days are bad. The downward direction of oil isnt happening fast enough. We are still above the magic $100 marker per barrel. Lehman is about to be broken up (after a number of heavy weights in the US have already crippled). Indications are lit of Canada, Europe, China and Japan quickly sliding into recession.
....And there is Pakistan. If the crazy war on "terror" wasnt enough, we have a completely incompetent government running the show. It is pushing the already fragile economy towards a severe form of stagnation by:

  1. Imposing taxes on fuel. I know I've heard the story on how this isnt a bad thing and poor folks can be provided subsidies to offset this blah blah. The reality is that any form of subsidization to the poor is an extremely naive and broken process in the third world. Who is poor and who is not, and when there are more poor than funds; who gets it and who doesnt is all subjective and prone to corruption. Anyhow, higher than necessary fuel prices have brought about inflation in the economy here that is bringing everything to a standstill. The government can increase its own revenue by reducing its direct taxes on fuel and moving it to other processed goods which do not impact inflation.
  2. Lower locks on the stock exchange. Karachi Stock Exchange (KSE) has had lower locks active for about a month now ie there is no exit in the market for the majority shareholders. All this to please a few who think that by ducking their heads in the hole in the sand they can avoid the typhoon! This will have long term confidence concerns not easily returned.
  3. Lack of any policy on the subject of recession. I have not heard a single statement by our government on the subject other than that we will control prices or the most hollow of slogans ie "roti, kapra and makaan". We're living in the 21st century with rulers unfit to rule even in the 19th century.

I fear that even when the rest of the world will turn around and boom after this cycle of world recession, we will still be in the hole thanks to the incompetence of our President, PM and the rest of the lot in the federal government. Lack of timely decisions can lead to the worst case scenario of uncontrolled inflation, as being faced by countries like Zimbabwe. It's time to bunker in!



Sunday, August 10, 2008

Independence Day


Every year there are Independence day celebrations on 14th of August. On this day in 1947 Pakistan came into being. The British colonizer's left, though without French support :)
So here we are again, driving through the same memory lane of naustalgia and how the Nation has progressed. This year too, like all others, we will have TV shows that will emphasize the positives and gloss out the negatives of the past 60+ years.
This year I plan on spending the Independence day reading through current affairs book. But in terms of reflection, here are my thoughts on how Pakistan would be graded if it were being audited by management consultants:
  1. Mismanagement - we probably wrote the book on how not to manage a nation. Ok, a little harsh there, I think there are a couple of other countries out there who have out done us eg Somalia, Afghanistan, Nigeria, Zimbabwe etc. But still, we're in that list. The army has constantly misunderstood its role, the politicians have acted on short term selfish motives, and the society as a whole has played into religious/patriotic themes by those who pledge allegiance only to themselves or their "tribes".
  2. Institution infighting - a nation consists of three pillars ie judiciary, executive and legislative. In our case, we somehow managed to get the army in there as well. And then, somehow all institutions/pillars managed to abdicate their core responsibilities while trying to take on the responsibilities of other institutions.
  3. Organizational misalignment - A good executive knows which knobs to twist and which ones to leave alone. A smooth running organization needs all its business units to be aligned correctly and running towards the stated organizational goals. And every so many months, everyones progress needs to be reviewed and the organizational goals updated as a consequence. I do not believe we've ever had a government thats understood this. Unfortunately most heads of the "business units" ie ministries, are incompetent and have generally been elected by an uneducated lot who quickly forget how history repeats itself (thats to be expected for a country with a high illiteracy rate)
Its easy to give opinion and a "charge sheet" while sitting on the sidelines, but nonetheless constructive criticism is always good. Now the million dollar question being how to bring about good governance principles into practice when none exist. Comments anyone?



Sunday, July 20, 2008

Of Yes Men

By Yes men, i do not mean the imposter's for WTO etc, but rather men and women who always respond with a "yes sir" to their superiors. And worse, provide advises which are always in the affirmative. Surrounding oneself with such individuals generally leads to a corrupted thought process of an illusion of always being right and a gradual degradation of analytical thinking.

I bring this up, as I always usually (try to) ask my direct managers for advise before making major decisions. This is not to say that all decisions need to be approved or have an organization run democratically, but it is advisable to bring on board key stakeholders who will rally the "troops", ie employees of your organization around the change.
At a company I used to work for a long time back, we had a joke around each corporate directive related to a change in policy, that being that the monkeys like to rotate knobs hoping to hit the jackpot by chance. Obviously the executives there did not take on board the front line managers (that tends to happen quiet frequently in fortune 500 companies), who were far from convincing when relaying the need for the changes, as they themselves were far from convinced.

To keep myself from being surrounded by yes men, I try to do two things. One, I keep a "yes meter rule" handy when dealing with direct reports who I meet often. If they are all praise and have too many "yes" over a few weeks, then its best I not ask them for advise.
And second, I try to refrain from showing agitation or irritation at being given information that is not of liking. This includes rebuttals on decisions taken by me and bad news. Nobody wants to be the bad news messenger, but it takes courage to do so!

All said, lately I've been preoccupied with the local political landscape here in Pakistan. I watch the daily events with a sense of helplessness. Our Prime Minister, Yousaf Gillani, is a yes man at best, and a moron otherwise. I would not trust him to run a 50 man software company, let alone a nation of a 160 million. Its probably similar to how most (democrats) felt after seeing George W Bush win steal the white house. Anyhow, if you're seeing massive immigration out of Pakistan, then you now know why.

Sunday, July 06, 2008

High Oil Prices and its Impact on Offshoring of IT

Recently, we've been swamped with project bids. I am unsure if other offshore firms are in the same boat or not, but it could just be "referrals" at work due to our higher than usual marketing effort in the previous quarter. However of late I have been excessively concerned with the future of the offshored IT services given the rapidly changing dynamics of the world with astronomical oil prices.

Just to give a glimpse of the impact on a developing country, the cost of inelastic price goods such as food, fuel, electricity etc have appreciated well over 30% and rising. In a developing country, the vast majority of the population is just hanging by a thread around the poverty line. With monthly inflation heading towards 30% I dont even want to imagine its impact on the society.

In contrast, in a developed nation inflation has a limited impact due to appropriate market forces already in play. The cost of fuel will make a dent, but the substitutes to commodities impacted will be made readily available and unless the economy hits stagnation, by and large the majority will pull through. Examples include availability of generics in medicines, tax incentives for fuel efficient cars/appliances, entrepreneurs betting on disruptive technologies etc.



Being in a developing country ie Pakistan, has had the selling point of lower labor costs, which has been instrumental for "wave 2" offshoring, ie inline with concepts of labor arbitrage. But with the cost of living rising significantly, and market inefficiencies that hamper the availability of cheaper substitutes (read corrupt and inefficient/non-innovative governments/private sectors), the labor arbitrage may not hold for much longer. The salaries will need to rise, and in doing so will impact the arbitrage. And with offshore productivity generally considered to be lower, the honeymoon may come to a screeching halt. This arbitrage is key for "wave 2" specific offshore countries in sustaining the lifestyles they've quickly gotten used to.

I fear a reversal of offshoring where possible, lets face it, no firm is going to track back on billions of dollars of investment in offshore office overnight. But if the oil prices remain high, the reversal may happen and catch up pace unless the "3rd wave" is quickly achieved.

My view of the positives and negatives stacked up on the offshore market are given below.

Positives
  1. Still cheaper to do business in developing nations by around 30% to 60%
  2. Access to large pool of technical resources (most developing nations have had a sustained high population growth rate - in simple terms, population average age is young and entering job market)
  3. Over time, offshoring has become more straight forward and the unknowns and risks have come down. Hiring US based managers with experience in dealing with offshore engineers too has improved, thereby reducing barriers to offshore

Negatives
  1. Offshore productivity is slightly lower. Thats both because onsite managers cant manage as efficiently and the typical offshore engineer is not as versed with the problem being resolved. A typical US based engineer is better able to relate to the concerns/problems as the target market is generally the US population for products
  2. US engineering costs may come down. An employers market in the US quickly forces engineers to reduce their salaries. They are able to take advantage of work from home opportunities as well (See my previous post) with a high degree of reliability, thereby reducing their gas bills and cost of living. This will further reduce the arbitrage.
  3. US businesses may cut down on IT budgets and initiatives as corporations feel the oil pinch. This will speed up the previous point
  4. Political unrest in the developing world due to hyper inflationary pressures. This is probably consequence, and I do hope it never comes around to this!

Wednesday, June 25, 2008

Work from Home

Working from home (WHM) has been practiced since the 90's in the US from what I know. But it was in the early 2000's that it really caught on. As is with fads, the pendulum swings to the extreme ie I knew plenty of co-workers who would go out on day trips when they were suppose to be "working from home".
Confession: I went on skiing trips while WHM and would use a brittle WAP based email tool on my cell to respond to any fires. Of course, I'd have to catch up in the evening with the backlog ...but still, its not something I'd want to do again

Getting to the meat of the subject, here are some of the models for WFH:
  1. Light - must come to office each day. But can go home early on some days when workload isnt as high
  2. Medium - can work 2-3 days in a week from home.
  3. Heavy - work from home as many days as one likes. All coordination between team over conference calls, emails and IM


With Fuel prices at record levels, WFM seems like an ideal solution. However its pretty easy to get burnt when managing a team using the 3rd model (ie heavy). In the developing world, the infrastructure is poor, which means you may be stuck with a production emergency only to find that your key developer doesnt have internet or electricity at the moment and no ETA either.
And since the average programmer in the developing world has fewer years of experience, lack of maturity is a significant concern specially in terms of productivity.

My recommendation, specifically for software development in the developing world, is to go for the light WFM option ie issue everyone laptops but make it clear that these are only for situations where support is needed offhours and the one off weekend. This allows for team building to take place, while ensuring adequate checks and balances by having them in sight of their managers. I'm not a proponent of the micro-management style, but the job of a manager becomes a good number of notches difficult when responsible for deliverables being developed by home working engineers. Today's IT managers are generally overworked as it is, specially in the outsource market. So I'd much rather err towards the manager's side and hold him/her responsible for the deliverables without fear of excuses related to WFM concerns.
The benefit of the light WFH, other than having higher employee morale (engineers love laptops!), is that it enables the off hour support that is generally required every now and then for offshore development (due to timezone differences).

In summary, be careful with a WFM program in the developing world, because the infrastructure isnt close to the 99.99 reliability and specially when the average experience of developers is below 5 years.
That said, I do look towards rolling out an aggressive WFM for our engineers in 1-2 years as Pakistan has seen a significant boom in telecommunications and the software industry looks to be maturing. But in the meantime, I remain on the sidelines.

Sunday, June 22, 2008

Office Space

My favorite topic! What makes people get up in the morning and spend a significant portion of their life in a place other than home. This subject is spoken with great emphasis in the startup world. I remember being pitched by a dot com in "those" days, on how my room can be of any color of my liking. The only thing that hit me back then was, you got to be kidding me ...I really dont care what the color is as long as its not bright red!


(Picture of a typical callcenter setup. NOT a great cubicle layout, specially if you're doing software development)



Hiring and retaining top talent is a tough challenge. For a high growth company, an exceptional team is its competitive advantage. For a low growth company, IMHO, too many intelligent employees makes the life of the managers more difficult. I say that because operational tasks constitute the major chunk of workload in a low growth company, and above average intelligent folks begin to nag their managers for challenging tasks more quickly. And since there arent enough challenging tasks, its a nightmare for the front line managers to keep their workforce excited.

Returning back to the subject, here are my thoughts on an office space in an offshore software development house (hopefully a high growth one!):
1. Cubicles - yes, its not necessary to give everyone an office. Its too expensive and with emphasis on agile development, its not as productive either. My wishlist for an ideal cubicle is:
a. Minumum 6x6 (feet) per developer. Having it shared by two developers in a 6x12 works well
b. 5 feet high
c. Laptop friendly ie all power sources on the desk so employees dont have to get under it twice a day.
2. Window space. I'm not a big fan of having a window with a view. I remember being in North Carolina on a client visit and having the meeting in a conference room that had two window walls overlooking a lake. Everyone kept getting distracted and well, I dont even remember the topics covered except for the view. I'm perfectly content with having no windows in the office.
3. Meeting rooms. There's a school of thought in interior designing that believes that common space is a more important place than the private areas of individuals. Whether you believe in this or not, as the team grows you need to ensure the meeting rooms exist for teams to meet up and be comfortable during it. This means having meeting rooms capable of accommodating 90 percentile team sizes and having sufficient number of them to avoid collisions.
4. Lighting. I've seen offices that have dull lighting, and you DONT want your office to be one of them. Make sure the lighting is good.
5. Laptop friendly. For offices that restrict wireless for security reasons, get a life and check out WPA.
6. Line of sight for managers. This may sound like micromanagement, but managers must be aware of their team's activities. This requires manager be seated within the vicinity of their team and not on some other floor or in a "managers" area where they're completely disconnected from team.
7. Common area for employees to engage in activities like table tennis, dart throwing etc. I prefer not to have a TV in the office as major sports events generally distract a large percent of the workforce.
8. Chairs - get the best (high back with firm support and plenty of flexibility in height, arm rests, recline etc)!

Since we're talking about "offshore" offices, there is a strong likelihood its a developing country, so it must also have:
7. Power and internet backups
8. Good cleaning services



For another perspective on office space, check out http://www.joelonsoftware.com/articles/BionicOffice.html

Wednesday, June 04, 2008

In the line of.... Fire Musharraf!

For those that understand urdu, these are MUST see documentaries/talk shows that have recently been aired. I'll try to add more as i find them. Pretty much nail Musharraf to the crimes he's committed against his own nation in the name of patriotism. Punish him for treason!

Meray Butabik with ex-Rawalpindi core commander part 1







Meray Butabik with ex-Rawalpindi core commander part 2






Sunday, June 01, 2008

I'm on Alltop!

Check it out, I'm on Pakistan.alltop.com :)

Daylight savings and software patches

Pakistan has (quiet hastly) jumped on the daylight savings bandwagon. We've done this twice in the past and failed each time, although this time round the rationale is quiet understandable ie saving of energy.
I'm on ubuntu ...and havent received *ANY* alert for upgrading the daylight savings patch. I wonder if one is available for Windoz? I'm not worried for my system ...since I'll just change the timezone to Bangladesh as its +6 GMT to keep all the other timezones in synch. But what about banks, airlines and other such businesses where local time and timezones is critical?

Speed Programming

Ever wonder how typing speed helps increase productivity? Or how writing short hand helps improve understanding whats actually being said in class? These questions may seem unrelated, but they allude to negate a fairly common phrase of SLOW AND STEADY WINS THE RACE.

I realized this in school, when fast typers were done with their assignments well before the rest; the content and quality was a different matter altogether :). But there are distinct advantages in being able to do things fast.

Programming language and architecture play a key role in the speed of the delivery. And when Speed Programming, certain tradeoffs are understood to be implicit. The biggest one being "Production Ready" ie the lack thereof. Speed programming can be defined as writing functional code quickly to resolve a problem statement. As mentioed earlier, such forms of code is generally far from "production ready", but it shows the proof of concept (POC) and is demo'able to prospective investors. Done craftfully, a prototype can land a decent investment that can be used to rework a production ready solution.
It is also a great way for a company to push out some of its ideas into the open and have business sponsors or clients decide which ones needs to be invested upon. An example is how Jonathan Schwartz made a case for Looking Glass using a prototype written by a single developer to woo the company's brains into focusing on the desktop. I am sure





A site with some decent suggestions on Speed Programming.

So if you're wondering if you're a speed programmer, check out the following site to see if you're able to do some of the problems in one sitting:

  1. MathWorks
  2. Stanford competitions
  3. CMU
As far as me, I've been involved with way too many enterprise software to think like a speed programmer. But the idea is neat and definitely a HUGE asset for an individual and their employers to have!

Tuesday, May 27, 2008

Linux!!!



Here's to celebrating my first Linux anniversary, specifically Ubuntu. As you've probably guessed, I have a technical background, but I'm no Unix geek. So its been a painful move. And to be honest, I STILL find it painful!
So why did I move, you ask? Here is why:

  1. Hate viruses! They cause major headaches, unexpected downtimes and sometimes even loss of data
  2. Want reliability. Yes, Windows is far from being rock solid. And was Vista Microsoft's Halloween gift?
  3. Need to take the path less taken. Its a good geeky conversation starter
  4. Been there, done that

And here is how its turned out:

  1. Yep, viruses are a thing of the past. Well ...so are most of the standard apps too. Gotten used to openoffice, and other tools. Disclaimer - I still have windows hidden away in my virtual instance of VMWare.
  2. Neither is desktop Linux. I was looking for 1 year uptimes, or at maximum rebooting once a month. My laptop crashes (mostly coming back from suspend) every other day.
  3. Yep - its definitely the path less taken. Although I dont recall it ever being a conversation starter (like I said, I'm no Unix geek!)
  4. Havent come across too many people with Linux on their laptops!
So in conclusion ....I'm looking to switch to Macbook Pro. I'll get one when my company hits the jackpot or if my friends reading this blog feel like being generous!

Friday, May 23, 2008

Changing the office culture

In my early years of employment, I was once questioned how it felt working for one of the 'best' companies. Ofcourse, the word best being used in an extremely subjective manner. To this my response was its only as good as the manager I report to.


Now I find myself in a position of being the manager's manager, and it hits me - how do the employees feel about working here. I assume its good, after all there is a casual and open door policy maintained but .....
There is no such thing as perfect, and the culture I try to set with my direct reports may not be seeping through or not as quickly as I want. For those of you who like reading books, a good one is Growing Great Employees - Turning Ordinary People into Extraordinary Performers. But this book is great for managing direct reports, not changing the overall culture of an organization.

My experience is that its important to have the corporate culture evolved as part of your initiatives (if you're taking on a C level position). Since nothing is perfect, there will be avenues for improvement. With most organizations, the cultures are extremely crude or are different depending on division and groups, and this requires your attention.

Here are a couple of suggestions:
1. Shuffle up entry and mid management after assessing weaknesses and strengths of the managers. Entry and mid level management quickly get comfortable with status quo and thereby facilitate a stale culture. Note: be careful with shuffling, a blind shuffle often causes ruffled feathers and attrition.
2. Get employee survey feedbacks on managers. Make sure employees understand that their feedback will be given anonymously to their managers. The managers should in turn be measured
3. Insert yourself in the hiring process. Hire only the best, but ensure they're good team players. Everyone being hired should know you (assuming you're not a fortune company!), and the corporate vision from day -1.
4. Participate in random team meetings to see how the manager/team chemistry works. This isnt the best place to see it, but its better than not seeing it at all.
5. Regular all hands. For smaller companies, this means having company dinners and intermingling with employees. For larger ones, it means having an offsite etc. This allows all employees to get information direct from the source, which is immensely empowering since its not filtered by his/her manager.

And if you know of any good books on this, I'm all ears!

Saturday, April 26, 2008

Enterprise and Web technology convergence

Bidding on new software projects is a combination of art and science. A project's bid must entice the 'buyer' both on technical and budgetary matters. It is critical to assess the mindset of the buyer/customer before making the final bid. Some customers want to be at the cutting edge of technology, while others prefer to be on the tried and tested platforms. The bid scope and cost vary significantly with the approach and hence the need to determine the customer mindset. The same applies for in-house projects where the end deliverable may have metrics other than "business enablement".

All said, the two major camps of technologies ie Enterprise and Web are converging. Web technologies are significantly cheaper to develop in, deploy and maintain. While enterprise technologies require an army of developers, licensing costs and huge maintenance funds.

Before I lay out the argument as to why the two technologies will converge in the near term, let me first state what I regard to be Enterprise technology. Enterprise technology generally consist of both software and hardware configurations and technologies inline with the following set of norms:
1. Software
a. Unix (few exception with Windows)
b. Oracle
c. Java (.net when on Windows)
d. n-tiered architecture
2. Hardware
a. Deployment on multiple machines. Multiple webservers, appservers and databases
b. Emphasis on failover and high availability
c. Load Balancers
d. Firewalls


(typical enterprise architecture)



There is a significant learning curve associated with becoming an enterprise architect ie someone with the ability to develop applications in the enterprise given the variety of technologies and fancy features available.

Web technologies (simply defined as LAMP or equivalent with RoR etc) have matured and are quickly becoming part of the mainstream. These are generally hosted in 3rd party data centers and use "pay as you go" services and infrastructure. Their biggest positive being quick time to market.

The big difference, other than the technologies being used, is the mindset of the architects and the developers. Web technology has an agile and rapid taste to it, while enterprise has a documentation centric, heavy process and cross department coordination and long planning sessions taste.

The phenomenon of these market segments being merged poses a threat to one entity. Since web technologies are the under dogs, the threat is to the enterprise segment. Enterprises now need to reassess how they'll remain competitive in a market moving towards SaaS (software as a service) and where technology costs should further go down to drive the bottom line. Newer competition may leap frog existing technology centric enterprises through the use of cheaper and quick time to market web technologies.

The convergence is imminent because:
  1. Grid computing is here to stay. This has lead to 3rd parties to build out server farms on a pay-per-use model. The business model requires this to be cheaper compared to an in-house datacenter. While specialization and economy of scale will drive the cost per unit to go down. Since web technologies are grid friendly from the onset; lightweight and single threaded execution model, they can take advantage of these immediately without the need to re-engineer an app as will be required for most enterprise apps.
  2. Barriers to entry for businesses have been reduced with globalization. With fewer barriers in place, new entrants will make use of low cost web technologies to enter markets with creative ideas. At the end of the day, the end user is concerned with utility and cost, and if newer entrants beat existing enterprises on both, the users will leave for greener pastures. However since the cost of migrating to a different system is non-trivial, existing enterprises can hold onto their customers as long as they keep the cost differential within the threshold. Since enterprise technologies are expensive to maintain and enhance, they've got an uphill battle.
  3. Opensource is mainly web centric, enabling significant R&D expenditure to be outsourced when using web technologies. While enterprise technologies still require huge licensing costs to offset the R&D costs.
  4. Web technologies now come with the backing of the industry gorillas like google, amazon and Sun to name a few.
My prediction is that enterprise technology will likely be pushed into the same market as the "mainframe" world. It will be critical, but not mainstream. A small number of niche developers will hammer at it somewhere in the corporate basements. Datacenters will disappear from corporate premises (except the big financials where data security will always be paramount).

Labels: ,

Wednesday, April 16, 2008

Increase in calling rates to Pakistan

I just read with horror about PTA increasing calling rates from outside to Pakistan. It is beyond my imagination. Reasons are as follows -
  1. Increasing international calling rates will not benefit the economy, to the contrary it will burden it. Here's why, we are a country of 160 million ...thats a huge number ie we need to play with economy of scale. Increasing the rates will reduce the call terminations into Pakistan significantly. Overall there will be a loss of revenue to PTCL as individuals hold back from calling Pakistan, reduce their call times and switch over to VoIP. By going the walmart route, they can easily increase both their top and bottom line ie reduce rates!
  2. "The sources privy to the PTA, however, argued the increase in ASR rate was unlikely to damage the revenue, as the authority had already deployed technical solutions to check grey traffic brought into the country through illegal means." Are they smoking the magic dragon? What makes PTA think they're even half as competent as they need to be. There is NO way they can stop VoIP, they'd probably break every other internet app before locking in on VoIP. Afterall, this is the authority responsible for the international outage of Youtube.
  3. Damage to Pakistan's economy. By increasing the international calling rates to Pakistan, foreign firms will likely enforce calling restrictions within their offices to keep costs under control. This will generally lead to barriers in the free flow of information, which is generally key for keeping good relations with your customers. And it may actually be a blocker for new customers who'd add another column in their partner evaluation just on "communication costs".
  4. And why is VoIP illegal in Pakistan anyway? I, along with every other individual and firm dealing with US based customer use VoIP. Since PTCL is no longer a government run monopoly, it makes no sense to feed white elephants. Majority of the Pakistanis could care less if it goes out of business tomorrow.

Since no rant is worthy of being read without a conclusion proposing a solution, here's mine. Fire ever bum in PTA ... this price hike will benefit no one, not even the morons in PTCL recommending the price hike. Incase anyone's *wondering*, PTA is run by a retired army man!

Saturday, April 12, 2008

Developer Productivity

I've read a number of articles on developer productivity, but NONE of them have helped me increase it from a perspective of a "C" level position. There is just too much organization and turfs for me to drill through to figure out if a certain team as a whole stinks, or if I'm responsible for their poor productivity by not creating and ensuring a path to success.
Here are a few articles I've read but as you'll see (if you've ever managed multiple teams), they dont come close to depicting the true picture:
(image from http://www.worth1000.com/emailthis.asp?entry=387650)

  1. http://forums.construx.com/forums/t/186.aspx
  2. http://wsdj.sys-con.com/read/43343.htm
  3. http://www.solidstategroup.com/page/1623
  4. http://fc-md.umd.edu/projects/Agile/Maurer.htm

This topic and problem is as old as software development itself. There's even a whole field around it ie software engineering with the million dollar question being how to make software development an aspect of engineering whereby building major software systems boils down to using sound principles and processes. This is in contrast to the "heroics" rule where a star developer delivers the goods while the majority of the team rides the boat as tourists.

The jury is still out on the "perfect process and principles for developing software", with agile development being the new thing. In the end, being responsible for delivery of technology projects remains a headache at best. A GOOD article on the subject of productivity is:

http://haacked.com/archive/2007/06/25/understanding-productivity-differences-between-developers.aspx

My two cents on the topic are:
1. All Developers must have an incentive to be productive. This means:
a. Use logical metrics to measure productivity ie Do not use Lines of Code as a measure etc etc, as they certainly dont hold true in today's coding world of smaller is better. Use peer feedback and be careful when getting feedback from the team manager. Word of advise on team managers - sometimes they hide their faults by throwing the blame on others or are incompetent to a level where they do not understand what productivity is.
b. Dont let poor performers bog down the good ones. If the good developers are left chasing bugs created by prolific bad coders, they will only feel frustration. In the end, the good developers will be frustrated and burnt out while the bad ones will feel on top of the world. End result - attrition of top talent!
c. Dont assign average individuals to be leads or managers. They're dead weight AND they generally frustrate top talent in the team. Get rid of them ...yes, move them out. Dont wait for a major disaster to take action.
d. Ownership. Ensure code is OWNED by developer(s). If the code base is small, the team lead can be the owner ie all checkins MUST be reviewed and approved by him or her. If the code base is large, distribute code modules amongst key individuals. Unowned code is like a rental car, there is no incentive to be "nice" and drive with care....Ops, did i let a secret out :)
e. Keep QA close to your ears. They are optimally situated to report back on the overall quality of the application. Listen to them and mentor them. Using QA resources, a process of proactively identifying careless mistakes and developers responsible for them is a key benefit. This is a key component of measuring productivity

2. Enforce tools of the trade ie Source code repository, Bug Tracking system, Project management system. The ones I'm fond of are: SVN, Trac and Basecamp. Needless to say, best practices must be followed. This works miracles when tracking down escalations.

3. Recruit only the best. Taking shortcuts when hiring in crunch is generally the excuse for having a team of mediocres....dont fall in the trap.

4. Keep in close touch with all developers. They need to know that they can always escalate concerns over their managers when they're not being heard. But keep your managers in the loop until its clear the incompetence is at the mid management level.

5. Encourage developers to be vocal. Business Analyst need to know they'll have hell coming down if they screw up - as they'll stir up a storm in a beat if development doesnt deliver no matter where the flaw is. Note of caution: Dont ever let it become a "us vs them" argument, by emphasizing objectivity and professional communication.

6. Hire or promote an excellent developer to audit coding and processes being followed in different projects after every major milestone, where possible. This individual must be a killer, someone others can learn to respect because of his or her command on logic and technology. Otherwise it's just another position and overhead everyone in the org despises (I'm not a fan of creating COE's ie centers of excellences unless youre running a large firm). If you're at an executive level position in the technology department, than you're essentially offloading some of your own responsibilities here ...but lets face it, todays business world requires executives to burn their days in meetings.

Labels: ,

Tuesday, April 08, 2008

What I've learn from failed projects

This is an open ended discussion, as a project can fail for a billion reasons. There are a number of books that discuss this topic, but I'll refrain from doing a book summary and just list a couple of takeaways from the offshored projects that I've seen fail. They are (in descending order of importance):



  1. Expectations management. Its easy to say "yes", "will do", "ok", even when its feared that meeting the committed items is going to be difficult. Not being candid with your feedback and sometimes not forcing your opinions back on customers or client PMs is a weakness. Today's aggressive business environment requires technical leads/offshore PMs to be vocal and understand the end objectives of the business through the use of corporate goal buzz words in their arguments ...you know, the fluffy statements like "customers first", "quick time to market", "Return on Investment", "Strategic advantage" ....in the end decisions get made based on how well an argument is presented rather than just on its merits.
  2. Poor project planning. The usuals ...ie tracking progress, managing scope, being on top of client emails etc etc
  3. Technical impotence. Managing a technical team has always been a pain in the .... All organizations I've consulted with or managed have had business screaming down on the IT/technical teams. So first of, come to terms with the fact that you're likely working with engineers with deep flaws (unless you work at Sun, Google etc etc). You need to ensure you setup an environment where their flaws are reduced over time and their faulty coding does not become a source of embarrassment for you. For this, an environment where they are able to flourish and grow is needed, while making sure you're able to weed out the bad. Emphasis on weeding out! By not taking out bad engineers, you are creating an dis-incentive for other engineers to work hard. If thats not a possibility, raise it with senior management so you're not seen trying to play blame games when things go south.
  4. Communication. Most offshore managers have bad english. This may not seem like a disadvantage, but if an escalation happens - you'd much rather not have an executive scratching his/her head just to figure out what you're saying. By the time you're able to get one thought across, the incompetent moron with a good grasp on the language may have fired out 10 thoughts, increasing the everprobability of having his side of the story being sold.
  5. Relationship management. Try to figure out something to have a conversation about that is outside work. F1 racing, Football, cricket etc. It makes a big difference in how you're perceived by others and their attitudes towards you (specially if they're sitting on the other side of the world). Perceptions help greatly as it allows for better flexibility, specially during crunch time.

Labels:

Sunday, April 06, 2008

Challenges of offshore development (view from the offshore side)


The US employment market is fairly vibrant with an array of talents. It is a market like no other. It's archille's heel being immigration ie when the flood gates are open, the US employment market is full of all forms of talent. When the flood gates are closed (as they have been in the last few years), its a little bit more barren.
I will not get into the benefits of offshoring, needless to say expectation must be inline with reality otherwise offshoring will be labeled a failure no matter what.


(Image taken from http://www.ogi.org.uk/images/Team-effort-to-get-the-Pont.jpg)
Returning back to offshore development and the number of challenges from the eyes of an offshore perspective, here are a couple:
  1. Extra hot market - new offshore development houses are sprouting everyday. And since talent isnt as plentiful as the number of companies, attrition rates are relatively high. In this environment, things can quickly go from bad to worse as the saying goes "when the going gets tough, the tough gets going" only in this case the developers get going ...to another software house! Hence the need to ensure escalations are kept within bounds. US based managers have lately picked on a couple of buzz phrases eg "we need to have all hands on deck on the weekend", "i need access to development 24/7", "we're all overworked but we got to do what we got to do". What such managers fail to realize is that this leads to a boiler room environment where top talent is stretched close to its breaking point.
  2. Blame game - offshoring exposes the ugly truth generally hidden away. A development process that may have been going "smooth" will go haywire with cost overruns and delays when offshored. Both parties are to blame but offshore generally gets the brunt of it as its the new element in an old recipe. A common cause is PM's being incapable of understanding the basic elements of software development. Let me qualify this, when business is done in one room, mistakes and other not-so-well-thought-out directions are quickly identified and corrected. Put offshoring in the mix and its easy to get the development team running in the wrong direction only to realize on D-day that there is a typhoon. As far as "smooth", I have yet to see a software development initiative in a fortune 500 company (all onshore) that is delivered on time and on budget. Software development is an agile business that requires constant course corrections.
  3. Local project managers - Projects that are managed locally or use a local liaison (as team lead etc) require someone who is good great at communication, managing expectations, pushing back customers/onshore, pushing hard local development and ensuring quality deliverable. This is a tall order for anyone. Finding such a PM offshore is extremely difficult, with most US based PM's being poor in a number of these skills.
  4. Quality Engineers - everyone wants a google engineer who works smart and works hard (a 120% of it ;) ).Everyone. I cannot emphasize this enough, offshore productivity is slightly lower than US productivity. And no engineer wants to work a weekend, but offshore engineers do. They are generally not paid overtime and do not have equity/stocks in the clients they work for ie ZERO incentive to work overtime.
I'll probably touch this subject again later when i get some more time. Its a subject that i'm passionate about yet is too big to discuss in one sitting :).