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

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!