This story starts with a challenge that appeared on my twitter timeline. Fellow SAP Mentor Thorsten Franz had just published his SAPMentors Outreach app for the Android platform, in time for SAPphireNOW/ASUG 2011 in Orlando. You can read about that Proudly Presenting the SAP Mentors Outreach Mobile App for Android – Connect with SAP Mentors at SAPphireNOW/ASUG Orlando. The best way of describing the app is provided by Thorsten ... "It is designed to help the SAP Community connect with the SAP Mentors, especially at big events like SAPphireNOW and SAP TechEds, where many Mentors are present and easily recognizable". A technical feature is that the app pulls data from a cloud-based SAP River application (built by Thorsten Franz, Richard Hirsch and Nigel James) which captures SAP Mentor data and exposes this data via authenticated RESTul APIs. Thorsten did a fantastic job building and publishing his mobile app for the Android platform as the first 'consumer' of this data.
But then the challenge came out from my twitter friend Björn Weigand (@weigo) to collaborate on building an iOS version ...
At the same time I discovered that SAP Mentor John Astill had already developed prototype iOS code that connected to the SAP River system using the provided RESTful APIs. Somehow online, the three of us gravitated together.
So, a chance to build a new iOS app, collaborating with like-minded professionals in the cloud, for an app that would help the community find and connect with SAP Mentors. How could I resist?
If you want to learn more about the iOS app itself, Björn has written a great blog about it SAPMentors Outreach iOS App. What I would like to focus on is the collaborative aspects that took place to bring it to life.
Think about this for one moment .... this mobile app was designed, constructed and published to the Apple App Store by three developers who have NEVER MET, NEVER SPOKEN WITH EACH OTHER (unless you call the chat function on SAP StreamWork 'speaking') and WHO LIVE IN THREE SEPARATE CONTINENTS. Instead the vehicle for our collaboration to make this possible was the use of a single SAP StreamWork activity. Joining Björn Weigand, John Astill and myself as the developers, Thorsten Franz contributed insights into the original version of his Android app, whilst Richard Hirsch provided valuable input on SAP River. The source code was shared using a SVN repository provided by John Astill.
Planning & Design
Early on Björn took the initiative to lead this project. He was eager to publish his first app and both John Astill and I as SAP Mentors were happy to support him with our own expertise.
Björn enthusiastically provided original planning and designs to kick-start the process. Here is an early mockup that he posted into the SAP StreamWork activity ...
A RACI Matrix was also established using SAP StreamWork ...
And timelines established by Björn ...
Prototyping and Development
When development was occuring in earnest, sometimes one of the developers would notice another had just posted an update to the SAP StreamWork activity (because of email notifications). This enabled us to on occasion have an impromptu 'conversation' using the chat function in SAP StreamWork ...
We also uploaded into SAP StreamWork some screenshots of our latest accomplishments ...
Use Cases and Statistics
As you can see SAP StreamWork was used as the 'central hub' for all our communications and collaboration to make the app a reality. As mentioned earlier an SVN repository kindly provided by John Astill was used as the shared source code repository.
Some of the other threads which we employed in our SAP StreamWork activity included:
- Ranking lists (to prioritise features)
- Checklists for final cleanup
- Discussions on various topics, such as 'How to share coding', 'Core data persistence', and 'iPad detail view'.
- Thorsten's original Android source code along with his essay on its inner workings
- River REST API uploaded by Richard
All in all the SAP StreamWork activity included 31 work items (consisting of specific discussions, ranking lists, checklists, timelines, RACI matrices etc.) with as many as 243 individual comments across these work items (yes, I counted them).
With this experience I found SAP StreamWork to be a great fit for the task. Often I would look back through a thread in the activity to remind myself of what was agreed. Imagine the difficulty if you tried to accomplish this using email threads.
I liked SAP StreamWork before, and I like it even more now.
Sometimes when I think about native mobile app development I recall a quote from The Godfather Part III - "Just when I thought I was out, they pull me back in.". This type of development can be really tedious (particularly when it is done only in the evening hours). Nonetheless, the opportunity to collaborate with fantastic professionals who I have never met, but who have common interests, has been well worthwhile. If you are reading this and you work with the other team members concerned (Bjørn, John A, Thorsten, Richard), give them a big pat on the back from me!