Mar 26 2010

SMS Saves Lives

(2nd in the series “Superpowers and Science Fiction: How Mobile Devices Can Change the World“)

Text messages sent via SMS can reach their destination even when a cell network is too overloaded for phone calls to work. This knowledge can make the difference between life and death.

When Haiti was struck by a devastating earthquake in January 2010, buildings collapsed and trapped people in the rubble. Some had mobile phones, but were unable to call for help. Cell phone towers had power, thanks to diesel generators at the tower sites, but the phone network was overwhelmed by the number of people trying to make phone calls. Yet people were still able to send text messages, even posting to Twitter via SMS, pleading for help to free them from the rubble.

How is that possible?

Text messages are very short. SMS stands for “Short Message Service” – each message is limited to 160 characters. Compared to the amount of data sent for a voice call, this is practically nothing. Furthermore, SMS messages are sent on the same control channel that a phone uses to stay in touch with the nearest cell tower. The phone and cell tower frequently exchange packets of data to determine when the phone has moved to another cell tower’s area. Unlike a phone call, text messages do not need to be received at exactly the same time they are sent, and the receiver doesn’t even need to be in a coverage area when the message is sent. SMS uses a “store and forward” protocol that allows message delivery to be delayed until the receiver comes back into coverage. This provides an additional layer of reliability to ensure that messages reach their destination.

Almost every mobile phone has the ability to send text messages, but the same can’t be said for phone owners. If there are people in your life who have never sent a text message, encourage them to figure it out. Take the time to help them if necessary. Be the first person to exchange messages with them. It could save their lives. At the very least, it could give them peace of mind to verify that you are safe in the event of an earthquake, wildfire, or other disaster.

Jan 31 2008

Distributed Scrum: Agile Project Management with Outsourced Development Teams

I just ran across a paper from 2006 that talks about using the Scrum methodology with distributed software development teams:

There’s also some background on the origins of Scrum in general:

The idea of building a self-empowered team in which a daily global view of the product cause the team to self-organize seemed like the right idea.

The emergent behavior of self-organizing system is fascinating to me, even apart from software development. There’s definitely a parallel to high-performing agile software development teams.

One of the interesting complexity phenomena of the first Scrum with an observed “punctuated equilibrium” effect. This occurs in biological evolution when a species in stable for long periods of time and then undergoes a sudden jump in capability.

The recommended practices for distributed teams all seem involve keeping the traditional daily 15-minute scrum meetings with the whole team. People ended up emailing their status and plans before the meeting, to mitigate language issues and keep the phone calls short. I suspect that the main benefit of actually holding the calls, instead of relying solely on emails, is to provide accountability. Otherwise it’s just too easy to publish a daily report late, or skip the reporting completely.

An Experiment

I’m the “product owner” on a team with members from two locations in the Philippines, and me in the US. We’re experimenting with an approach where the project manager acts as “scrum master” for a morning scrum, held in a chat room instead of over the phone. The log gets emailed to everyone. I review the log, respond to issues via email, and follow up via instant message for anything that requires further discussion. As a result, there’s a searchable electronic record of all those conversations, which I’m very fond of. So far it’s working out pretty well!

Nov 1 2007

Case Studies: Three Nonprofit Intranets

Laura Quinn has written the stories of three different non-profit organizations (NPOs) applying different technology to improve their collaboration.

It’s good to be reminded that technology adoption and culture change don’t happen overnight:

While there has been consistent growth in usage since the redesign, it’s only within the last couple of months (almost four years later) that ALA feels that they’ve reached a “tipping point” where it’s now simply an expected part of the job to consult and contribute to information on LungNet

To balance that, there are often benefits that can be realized immediately:

Don’t underestimate the allure of simple things, however. The lowly staff phone directory is often one of the most popular features on an intranet.

Read the whole article:

Aug 15 2007

Mingle: Supercharged Index Cards

Thoughtworks describes its recently released Mingle products as a “new Agile project management application”. That’s “Agile” with a capital “A”, which is immediately apparent when you tour the product and see index cards arranged on the web page.

I would describe Mingle as “index cards on steroids”. Or maybe “index cards with superpowers”. This will delight the Agile faithful and quite possibly scare anyone who has never managed a serious project by sticking index cards to the wall. The data can be displayed in tables and summarized in charts, and you can create wiki pages with some effort, but the card metaphor is central and inescapable.


Each project has its own set of attributes for cards. You can define transitions that are basically shortcuts for making frequently used changes to card properties. For example, the “Development Complete” transition might change the status value to “Ready for Testing”, and the transition might apply only to cards with a status of “Ready for Development”. This gives you the primitives to codify your team’s workflow.


The display is built with tabs, each of which holds a page with a different view of the cards. The cards can be viewed on a grid, sorted into different lanes by some attribute. Dragging a card into another lane changes the attribute, which is nice for activities like release planning. Or, the data can be displayed in a table with configurable columns. A tab can also hold a wiki page, which is probably most interesting when using the chart widgets to show summaries and charts of card data taken from database queries. This is nice for things like burndown charts.


If you have a project with card attributes, transitions, and views that are useful, you can create a template for creating new projects. Mingle has interesting potential for use outside of project management. For example, I’m pretty sure you could build some kind of strategy board game with the right grid view and transitions. Ok, that’s not the greatest example, but my point is that Mingle is really a generic system for collaboratively updating data.


It seems to me that the card metaphor would become unwieldy when applied to large data sets, though that could be mitigated with a clever set of views. Certainly more scalable than physical index cards.

Links to cards can be made on wiki pages or card descriptions, but not from card attributes. This makes it a hassle to trace from task cards back to their corresponding story cards, unless the number of cards is small.

Mingle has an Excel import feature, but you need to need to paste into a text field from the clipboard. This reinforces my suspicion that Mingle is not for large data sets. Also, any newlines are lost in the import.

The wiki has no WYSIWYG editor, which will put some people off. At least in the initial release, it looks like wiki pages are only there to hold some charts maybe the team roster.


Mingle is built with Ruby on Rails, and deployed into a Jetty servlet container with JRuby. That’s cool. Response time is somewhat slow, even when running locally. Hopefully this can be improved in future versions of JRuby, because I’d like to see more integration between Rails applications and Java.


If your team can run with the index card metaphor, but you’re not in a position to use physical index cards, take a look at Mingle. If you’re looking for a more comprehensive or traditional project management application that works in an agile context, you might be better off looking at Rally Software or some other tool.

In any case, I hope that Mingle’s simplicity and slick user interface inspire other vendors to keep innovating in this space.

Jun 26 2007

Sharing Presentation Slides

After giving a presentation last night, I told a bunch of folks that I would post the slides… somewhere… and distribute the URL on a mailing list. Our Java User’s Group is just getting started, so we don’t have a way to post files yet. And I don’t currently have any hosting space that would be appropriate. What a great excuse to look at some free presentation hosting services!

There are two that I really like: SlideShare and Scribd.

Both are easy to use, and of course you can tag and search. They both have great resolution in the online viewers. Some other services get jaggy letters and diagrams, probably from less sophisticated processing or just being more aggressive about compression.

I highly recommend SlideShare for situations where most people will be viewing the slides online. The default size is just right for embedding, and the “related slideshows” it recommended for me really were relevant. If it could import notes from presentations and export to PDF, it would be perfect.

Scribd is excellent when you expect most people to download or print a copy after they’ve browsed it online. It can export to multiple formats (including MP3!) and there’s a convenient “Print” button. The embedded viewer (Macromedia Flash Paper) has some cool advanced features: zooming, search, copy to clipboard. It also does a nice job with word processing documents, which fall right into its sweet spot.

If you’re curious, you can see how my presentation came out:

It’s not an “apples to apples” comparison, since I uploaded the original ODP file (ODF Presentation, used by OpenOffice) to SlideShare and a PDF including the notes to Scribd.

This is a pretty useful way to share “traditional” documents. Are there systems out there that provide similar functionality within an intranet?