Friday, May 29, 2009

Ode to Java

Oh Java code that strikes the page

Like wisdom siphoned from a Sage
Like random models fierce with light
That make the darkened worlds grow bright
Now opened to the world's great gifts
Now powered by the minds' new lift
May generics bloom as geeks grow wise
While the Source traps bugs within a vise

Monday, May 25, 2009

Working Remotely - Some Hints & Tips

Many development teams - especially in the Open Source world, are distributed geographically.  There are certain challenges with distributed teams which need special attention but luckily there are some great tools around to aid us in our daily work.  Here are some tools and advice, based on my personal experience that may help you work more effectively when working remotely.

Attitude

I believe the most important aspect of working remotely is a good, collaborative work ethic.  Talk to other developers on the team, don't just e-mail them, pick up the phone! open communication is key and without it everything else falls apart.  I cannot understate the importance of picking up the phone (or Skyping).  It's all too easy when you have a question to send a quick e-mail, move on to something else and forget where you were and the context of the question and problem.  You may think i'm stating the obvious, but think about the case of a geographically distributed development environment.  The decision to e-mail a question can lead to the question not being answered until the next day or even later, hindering the progress on that particular task which may have other unforeseen 'knock on' effects.  So, if at all possible - pick up the phone.

Discipline

It takes a certain amount of personal discipline to work remotely.  It's important to have clear objective which are measurable by management.  The developer should provide regular updates against agreed project deliverables.  This is an important part of gaining the trust of the rest of the dev team and management.

Useful Tools

There are a number of tools which can help a great deal when working remotely.  For example, you can author and co-author documents using Google Documents or Buzzword.  You can share larger documents and spare your inbox with Omnidrive.

Use cases can be developed together using on-line collaboration tools such as PBWorks which also has many other useful features to make teams more productive.

Evolve mind maps with Mind42 or MindMeister.  Need to actually talk to each other? well Skype is the obvious choice but Yuuguu lets you share applications too.  WebEx is also a great tool for on-line conferencing and holding secure meetings.  There are free versions of WebEx available.

Taking collective feedback on design has always been tricky, espcially in a distributed development environment. One of the most useful apps for de-centralised design is ConceptShare which allows online collaboration on design by way of contextual comments, markup and a full history of discussion. Another popular collaboration tool is Campfire.

Tracking the time you've spent on projects can be made easier by using a tool such as Klok - a personal time tracker.  Another tool which can be very useful it RescueTime which "gives your team the ability to see how they spent their time and helps them spend it more productively.  Team members have full control over their data.

One great tool for developers - if you happen to use the IntelliJ IDEA is IDE Talk which is instant messaing for developers within the IDE.  I've found this very useful.

If you want to send large files, i've found YouSentIt very useful.

Accessing Your Office PC/Network

It may be necessary at times to access your office network or PC.  Normall, your company will provide you with VPN access to allow you to access the company network remotely.  You can also use tools such as GoToMyPC or VNC, which I have used extensively and found very useful when accessing my office PC.

Unweaving the Rainbow, by Richard Dawkins

We are going to die, and that makes us the lucky ones. Most people are never going to die because they are never going to be born. The potential people who could have been here in my place but who will in fact never see the light of day outnumber the sand grains of Sahara. Certainly those unborn ghosts include greater poets than Keats, scientists greater than Newton. We know this because the set of possible people allowed by our DNA so massively outnumbers the set of actual people. In the teeth of these stupefying odds it is you and I, in our ordinariness, that are here.
RichardDawkins.net

Books I am reading this book at the moment:

Atheist

The Out Campaign: Scarlet Letter of Atheism