http://www.egeniq.com info@egeniq.com @egeniq How to successfully build an app with a decentralized team Thijs Damen Mobile Down South, June 7th, version
About Me Software Engineer Android, ios, HTML5 @thijsdamen thijs@egeniq.com 2
About Egeniq Mobile Development Knowledge Distributed 3
Working decentralized 4
Development kit Macbook 27 Thunderbolt display Proper chair and desk (if required) iphone, ipad Android tablet, android phone Software 5
Communication 6
Tools for communication Skype Practical Fast Reaches everyone (chat) 7
Know Your Coworkers Learn to read people. That s brilliant. That s BRILLIANT!!! :-) :-)... that s brilliant. :-( 8
Tools for communication Telephone When things get emotional or political Always available 9
Tools for communication E-mail Asynchronous Larger messages Easier to find back 10
Tools for communication Google Hangout Jabber/IRC Yammer 11
Daily stand-up meetings What did I accomplish yesterday? What will I do today? What obstacles are impeding my progress? 12
Bi-weekly meetings Face to face interaction Demos, presentations, interviews Having fun together 13
Flexible offices ICTU Offices The Hague 14
Working in the cloud 15
Storage in the cloud Google Drive Real-time collaboration Functional/Technical/Interaction designs Google Calendar GMail 16
Storage in the cloud Large files Resources, fonts, templates etc Project files - Functional/Technical designs - Graphical designs 17
Story based project management Pivotal Tracker Story based Collaboration 18
Pivotal Tracker 19
Source Control 20
Git Distributed 21
Git - Distributed No single point of failure Work offline Adaptable workflow 22
Git Distributed Incredibly fast 23
Git vs. SVN benchmark 24
Git Distributed Incredibly fast Merging is easy 25
Git Distributed Incredibly fast Merging is easy Can be hard to learn Hard to read documentation Access to very (!) powerful commands 26
Git - Rebasing Merge Rebase 27
Do not rebase commits that you have pushed to a public repository 28
Git Distributed Incredibly fast Can be hard to learn Submodules 29
Git Distributed Incredibly fast Can be hard to learn Submodules Pull Requests 30
Git - Pull Requests 31
Given enough eyeballs, all bugs are shallow - Eric S. Raymond 32
Git - Pull Requests 33
Code reviews safe money In a software-maintenance organization, 55 percent of one-line maintenance changes were in error before code reviews were introduced. After reviews were introduced, only 2 percent of the changes were in error. IBM's 500,000 line Orbit project used 11 levels of inspections. It was delivered early and had only about 1 percent of the errors that would normally be expected. The Aetna Insurance Company found 82 percent of the errors in a program by using inspections and was able to decrease its development resources by 20 percent. Use cases found in Code Complete by Steve McConnell 34
Continuous integration 35
Continuous integration Build automation Build validation Build distribution Alternatives for build automation: Jenkins Alternatives for distribution: TestFlight, HockeyApp General alternatives: CISimple 36
To improve is to change; to be perfect is to change often - Winston Churchill 37
http://www.egeniq.com info@egeniq.com @egeniq Thank you! Questions? http://www.egeniq.com thijs@egeniq.com @thijsdamen
Credits The following pictures were used in this presentation. All images are licensed with a creative common license. World map - http://www.flickr.com/photos/shaireproductions/8098699979 Kids calling - http://www.flickr.com/photos/22409393@n03/5399855440 Source code - http://www.flickr.com/photos/toolmantim/6170448143 GIT vs SVN Benchmarks - http://git-scm.com/about/small-and-fast Gears - http://www.flickr.com/photos/sidehike/459483568/ For more information about: Pivotal Tracker - http://www.pivotaltracker.com Buildozer - http://www.buildozer.com