Skip to content

Deadline Chatting

Work­ing on remote, widely-distributed teams has its advant­ages (I can work from home in my base­ment, wear­ing whatever I feel like) but also, of course, its dis­ad­vant­ages. In par­tic­u­lar, when the team is work­ing against a hard dead­line, being sep­ar­ated means not able to gather in front of a white­board, or eas­ily meet to dis­cuss the prox­im­ate cause of some bug.

For the latest deadline-driven push to com­plete the test­ing and bug-fixing on time to deliver to the cli­ent, with a five-person team work­ing in timezones from East­ern Canada to Bris­bane, Aus­tralia (with a couple of us on Pacific time in the middle and the pro­ject man­ager on Chicago time), we star­ted a group chat using skype. Teams have done this for years, of course, using IRC, so the tech­nique isn’t new. Skype has the nice fea­ture that you can switch cli­ents (in my case from PC to Mac laptop to Android phone), and the chats auto­mat­ic­ally sync so you can catch up on what happened since you last logged on (in my case also answer ques­tions while sit­ting in a con­cert at my son’s school, or at the air­port). Yes, I’ve heard the con­cerns about secur­ity back doors with skype but the choice of chat sys­tem isn’t mine to make.

Seven days, 2351 lines, and 29964 words later, we shipped. Coordin­at­ing the test files, regres­sion test­ing, bug fixes, and doc­u­ment­a­tion updates with the com­pet­ing pro­jects, late nights, and timezone issues would have been much more dif­fi­cult with any other means of com­mu­nic­a­tion. Yes, the chat got con­fus­ing at times with vari­ous issues being dis­cussed sim­ul­tan­eously amongst the three of us who were most involved, and there was a cer­tain amount of “can you remind what that issue was about again”, but some of that was due to the late nights and dead­line pres­sure rather than the medium of communication.

And it was fun, more fun than email mes­sages. Chats are more imme­di­ate, less formal, we made each other laugh and wandered off topic at times, which doesn’t hap­pen much in email in a cor­por­ate set­ting. It’s some­how easier to write “well done!” or “I need cof­fee” or “can you explain that again” in a chat than email. And in some ways it’s almost easier than being in the same room with people. With the amount of work in a short time, and late nights/long days, tem­pers occa­sion­ally get short and irrit­a­tion rises. In a chat it’s easier to step away and not say some­thing you’ll regret later; easier to say “I need a break, I’m going for a walk” than if you’re in the same office as someone else work­ing on the same deadline.

Remote teams are often said to not be as pro­duct­ive as teams in the same office. After this exper­i­ence, I think some of that lack of pro­ductiv­ity is due to the people, and some to not fig­ur­ing out how best to use tools (even simple ones like chat) that are avail­able. Of course, every­one has to for­get their ego, and be pre­pared to say when they don’t under­stand or need more details (often easier in chat than face-to-face). And be under­stand­ing when things go wrong, while still work­ing to put them right again. A good pro­ject man­ager who knows when to keep out of the way and when to offer encour­age­ment also helps, thanks AM!

Random Windows Crashes

My Win­dows 7 PC has been sub­ject to ran­dom freezes, once every couple of days, where the entire PC freezes to the extent that a reboot is neces­sary. Since most of my phone calls are VOIP, when my PC freezes it cuts me off, which isn’t great for busi­ness or my peace of mind. So I set about try­ing to find the cause.

One poten­tial cause of these sorts of crashes is old drivers. So I updated the sound card drivers, the mouse driver, the video card driver, and most oth­ers I could find. Net effect on freezes: zero.

Some web site sug­ges­ted old ver­sions of Java might be a prob­lem. I unin­stalled Java com­pletely, and rein­stalled the latest. Net effect: zero, except for muck­ing up my install­a­tion of Eclipse and cost­ing me time play­ing around with envir­on­ment set­tings to get the right com­bin­a­tion of Java ver­sions set up again.

The fam­ous (infam­ous?) Win­dows chkdsk pro­gram found no errors.

Check­ing whether any import­ant ker­nel files had been cor­rup­ted, using system32/sfc.exe, showed no problems.

Microsoft has a Memory Dia­gnostic Tool, worth a try. Res­ult: no appar­ent memory issues.

At this stage I was run­ning out of good ideas, so I tried some­thing more ran­dom and moved the USB cables for the mouse and key­board to dif­fer­ent USB slots on the back of the PC. I did this two weeks ago, and the sys­tem hasn’t frozen since. Coin­cid­ence? Maybe mov­ing to a dif­fer­ent slot made Win­dows rein­stall the USB drivers?

Amusing Spam

There is some amus­ing spam out there, that makes me smile. These ones are from people try­ing to write idio­matic Eng­lish, but get­ting some of the words wrong, words that are syn­onyms in other con­texts but not used in these. I also notice the trend away from extolling the vir­tues of whatever it is they’re ped­dling to bare-faced flat­tery with an embed­ded link.

Unques­tion­ably believe that which you said. Your favour­ite jus­ti­fic­a­tion appeared to be on the web the simplest factor to have in mind of. I say to you, I cer­tainly get annoyed at the same time as other people think about issues that they just do not under­stand about. You man­aged to hit the nail upon the top and defined out the whole thing without hav­ing side-effects , folks can take a sig­nal. Will likely be back to get more. Thank you

There are more, but that’s the pick of this week’s crop.

Requiring OmniAuth

A small note in the “in case I need this again” category.

I’m writ­ing a Sinatra app and want to add Twit­ter OAuth for sign­ing in. A good way to do this appears to be with the omniauth gem but I ran into an issue. require 'oa-oauth' is the doc­u­mented way to require the right gem, but the error I was get­ting was ‘require’: no such file to load — oa-oauth (Load­Er­ror), des­pite hav­ing installed the gem. I use RVM to con­trol the Ruby envir­on­ment, so also checked I’d installed the gem with the RVM ver­sion set to the ver­sion of Ruby I was using (1.9.2). Hunt­ing around I found a par­tial answer on the issues list. Par­tial, because the answers there didn’t help, but the sug­ges­tion to try bundle show omniauth did. Bundle came back with Could not find gem ‘omni­auth’ in the cur­rent bundle.

The answer turned out to be to edit the Gem­file to add gem omniauth to it, then run­ning bundle install. After that, bundle show omniauth found the gem, and require 'oa-oauth' in my Ruby app worked as well.

Syncing Google Calendar and Tungle

I came across this weird prob­lem recently, where my Tungle account (tungle.me/laurenwood) was only syn­chron­iz­ing some of the events on my Google cal­en­dar. I checked they were set to the right cal­en­dar (yes), marked as busy (yes), and still couldn’t find the answer.

This is an issue that quite a few people have had. Appar­ently what’s going on is that Google cal­en­dar sup­ports three types of avail­ab­il­ity for events: free, busy, and tent­at­ive. In the UI on the browser and on the Android they only show the free (avail­able) and busy. BUT, when you cre­ate an event on the Android cal­en­dar, it’s assigned the “tent­at­ive” status. I have no idea why, since I added those events to the cal­en­dar myself, they’re not invit­a­tions that I still have to accept or decline. And the fact that there appears to be no way to change the status once the event has been cre­ated just makes it worse. I tried chan­ging the status manu­ally to “busy” in both the browser and the Android cal­en­dar app but that didn’t work. The only thing that did work was to delete the event and recre­ate on the desktop.

For­tu­nately tungle imple­men­ted a fix — you can choose to mark the sup­posedly tent­at­ive appoint­ments as “busy”. Here’s hop­ing any other apps I may wish to sync with my Google cal­en­dar also imple­ment this feature.

Manager Skills

Some­how I missed the news about Google’s Pro­ject Oxy­gen earlier this year. This was a large pro­ject that meas­ured what skills the most effect­ive man­agers at Google use, and the pit­falls poor man­agers fall into. As one might expect from Google, the res­ults are but­tressed by a ser­i­ous amount of data: over 10,000 answers about 100 vari­ables. If you work for any­one, or man­age any­one, it’s worth read­ing about, even if what you do isn’t in software.

What I found inter­est­ing was this quote, from https://www.nytimes.com/2011/03/13/business/13hire.html:

In the Google con­text, we’d always believed that to be a man­ager, par­tic­u­larly on the engin­eer­ing side, you need to be as deep or deeper a tech­nical expert than the people who work for you,” Mr. Bock says. “It turns out that that’s abso­lutely the least import­ant thing. It’s import­ant, but pales in com­par­ison. Much more import­ant is just mak­ing that con­nec­tion and being accessible.”

It’s been recog­nised for some time in other busi­nesses that the skills required to be a good man­ager are not neces­sar­ily the same as those needed to do good tech­nical work. I’m glad to see the data com­ing from Google to sup­port the notion that good soft­ware pro­ject man­agers do not have to be tech­nical enough to be lead developers (although they do need to have enough tech­nical skills to know what’s going on).