Collaborative Development by Example
On Tuesday of the week before Las Vegas SAP TechEd && d-code it was windy in Sydney. In fact it was very windy. A serious low pressure system was passing over us and bringing winter-like conditions to much of eastern Australia. In parts of the Blue Mountains – just east of Sydney – snow cut roads and railway lines, trees were down everywhere, etc. All this on the second week of October – well into our spring and very unseasonal.
Someone sent out a tweet – sorry I can’t remember who – that drew my attention to http://earth.nullschool.net. This is a site built by Cameron Beccario, @cambecc, that provides a visualisation of global weather conditions, ocean currents and ocean surface temperatures.
On Tuesday 14th October eastern Australia looked like this – except animated of course.
I spent a bit of time playing with the user interface because it was so much fun and so interesting. You can adjust the altitude to see the wind conditions at different levels right up to the jet stream and stratosphere. Move forward and back in time to see changes. Modify the map projection to see the whole world in one page. Etcetera.
As I looked to see how Cameron had built this I was pleasantly surprised to find that he had made the project available on GitHub for anyone who wanted to make use of it under a MIT License. Great – I couldn’t clone it quick enough.
I knew Clint Vosloo and Chris Rae were planning to enter DemoJam the following week with an entry called Swell Analytics. Swell Analytics used an API supplied by MagicSeaweed that provides Surf conditions from all over the world. I thought Camerons’ “earth” visualisation would be a great starting point for the UI which would allow the user to search around the world for a surf spot and then drill down to get the surf conditions in detail.
The map coordinates were passed to a web service that returned the nearest Surf Spots monitored by MagicSeaweed. When the user selected one it then called the MagicSeaweed API to get the surf conditions for that spot.
The MagicSeaweed API returns all surf condition reports for the spot over the past few days, including weather charts and forecasts. By moving quickly through these charts I could produce an animation effect that looked pretty cool.
Once completed I handed over the code to Clint & Chris to plug in their components. These included historical analysis of the surf spot and analysis of related social media feeds using HANA.
I had spent less than 2 hours on this – but there is clearly more than two hours work in the result. A true example of collaborative development. I have not met Cameron or the people who worked on D3, or backbone, or Node. I don’t know anyone at the National Weather Service or Natural Earth. But we all worked to produce this outcome and I am deeply grateful to all of them. So are Clint & Chris. 😉
That is why GitHub, and other services like it, are so important to developers today. That is why SAP CodeExchange was so important and why it was so disappointing that it was killed with little notice. For developers to truly collaborate we need a distributed revision control, change control, call it what you will service, and associated tools, to support us. That is also why SAPLink is so important – a great collaborative project totally driven by the community.
Most important of all is the developers who share their work, outcomes, and experience with the rest of the developer community and thereby make the whole greater than the sum of the parts. They allow minnows to stand on the shoulders of giants to produce great outcomes.
If you don’t know what Git is I think it is time you found out.
You can watch a replay of the Swell Analytics Demo here.