Main Content

Syncronise - software, trains, and buses. Please!

Archive - Originally posted on "The Horse's Mouth" - 2010-08-22 22:47:04 - Graham Ellis

To get from my home to the Divisional Police HQ on another side of Melksham, I can take a five minute bus ride on the X72 or 272, change at the Market Place onto the 234 or X34, and ride for another five minutes. So for a meeting at 19:00, I can catch a bus just after 18:00 to be there in good time, right? Finishing at 21:00, I'll be home for 22:00 ? There are, after all, two buses an hour on each route.

Wrong!

The two buses are not evenly spaced through the hour, so that's going to extend the time
The buses don't connect, so that's yet longer with another wait.
And the buses become sporadic into the evening, which makes the journey home interesting!

From Home at 17:03, getting to the Market Square at 17:08
From the Market Square - 18:02, getting to the Police Station at 18:07
Then ...
From the Police Station at 21:38, getting to the Market Place at 21:43
From the Market Place at 23:43 (oops - just missed one and hit a service gap!) getting home at 23:51

So that's 20 minutes of travel and a two hour meeting ... eating up 6 hours and 40 minutes.

It's not just buses that have this issue - I witnessed the "Didcot Dance" on Saturday, where the train from Bristol to London pulls in to Didcot Parkway just as the train to Oxford pulls out of the station. It's scheduled like that - almost every time. Is there any traffic for the service? Yes - there is; there used to be an hourly train from Bristol to Oxford, and very popular it was too, but with the almost spiteful lack of connections (people get upset when they see the train they want to get onto pulling out!) and resultant waste of people's time, it's a market that's being snubbed by the lack of provision of an appropriate alternative.





There have been similar problems in the software industry, with new releases / upgrades - and it's been an especial issue in the open source world where a whole series of elements, maintained to synchronized schedules, come together to make a whole system.

Let's say that I released my new core module for the Diamond language on 1st April 2010. Now Diamond has a twice-yearly release cycle after thorough checking, so I'll submit my module. Closing dates, though, are 1st March and 1st September, with a three month Beta test process thereafter before full release. So my module isn't available in the Diamond distribution until 1st December 2010.

But that's only half the story. My core module actually provided enhanced support for the Fadi Database, which became practical in their release 2.0. Fadi 2.0 was actually released on 1st February 2010; the closing date for updates / submissions was 1st December 2009, and the critical bit that I needed to work with was actually submitted (and waited for their six monthly cycle) on 1st August 2009.

So - let's see. That's code that's basically complete on 1st August 2009 only being accessible from Diamond 16 months later - 1st December 2010. There has to be a better way. And indeed there is ...

With libraries / resources such as Gems (Ruby), Pypi (Python Package index), Pear and Pecl (for PHP) and CPAN (for Perl), early adopters can download upgrades / separate modules and uncouple themselves from the release syncrhonisation - at the price of a little more effort.

Diamond is fictional (I think). Fadi is also a made up name - Fast Access Database Implementation!




Could a similar uncoupling work for transport? Frankly, I doubt it - by a few subtle changes here, a marginal retiming there, can do wonders. More radically, there are some routes to be looked at - can they serve an extra loop? Does the once-daily bus on routes 235, X96, and a couple of others really need to run once connections are properly and regularly sorted out, and does this free up a vehicle to help turn some other route into clockface and connecting?