Stay calm & keep shipping - iOS DevCon 2013

79
STAY CALM AND KEEP SHIPPING

Transcript of Stay calm & keep shipping - iOS DevCon 2013

Page 1: Stay calm & keep shipping - iOS DevCon 2013

STAY CALM AND KEEP

SHIPPING

Page 2: Stay calm & keep shipping - iOS DevCon 2013

Florian Bürger

50% von superflomo

/ α @florianbuerger

iOS (iPhone OS) Entwickler seit Beginn

Wer sind wir?

Page 3: Stay calm & keep shipping - iOS DevCon 2013

Moritz Haarmann

50% von superflomo

/ α @derwildemomo ( :-) )

Android, iOS, Rails..

Wer sind wir?

Page 4: Stay calm & keep shipping - iOS DevCon 2013

STAY CALM Der tägliche Krieg des Entwicklers

Page 5: Stay calm & keep shipping - iOS DevCon 2013

Die Tools

Page 6: Stay calm & keep shipping - iOS DevCon 2013
Page 7: Stay calm & keep shipping - iOS DevCon 2013

Faulheit als Tugend

Page 8: Stay calm & keep shipping - iOS DevCon 2013

Open Source Zeug benutzen!Fork, Improve & Contribute.

Page 9: Stay calm & keep shipping - iOS DevCon 2013

not invented hereIst totaler unfug

Page 10: Stay calm & keep shipping - iOS DevCon 2013

cocoapodswenig Entwickler verstehen

git submodules/subtrees

Page 11: Stay calm & keep shipping - iOS DevCon 2013

cocoapodsKomplexes Project /

Linker Setup in Xcode

Page 12: Stay calm & keep shipping - iOS DevCon 2013

Add the ReactiveCocoa repository as a submodule of your application's repository.Run script/bootstrap from within the ReactiveCocoa folder. (git submodule update --init --recursive)Drag and drop ReactiveCocoaFramework/ReactiveCocoa.xcodeproj into your application's Xcode project or workspace.On the "Build Phases" tab of your application target, add RAC to the "Link Binary With Libraries" phase.• On iOS, add libReactiveCocoa-iOS.a.• On OS X, add ReactiveCocoa.framework. RAC must also

be added to any "Copy Frameworks" build phase. If you don't already have one, simply add a "Copy Files" build phase and target the "Frameworks" destination.

Add $(BUILD_ROOT)/../IntermediateBuildFilesPath/UninstalledProducts/include $(inherited) to the "Header Search Paths" build setting (this is only necessary for archive builds, but it has no negative effect otherwise).For iOS targets, add -ObjC to the "Other Linker Flags" build setting.If you added RAC to a project (not a workspace), you will also need to add the appropriate RAC target to the "Target Dependencies" of your application.

pod install

echo “ReactiveCocoa” >> Podfile

Page 13: Stay calm & keep shipping - iOS DevCon 2013

Einsatz mit Augenmaß

Pragmatischer Ansatz

Page 14: Stay calm & keep shipping - iOS DevCon 2013

Wann selbst entwickeln?Lohnt sich der Aufwand?

Page 15: Stay calm & keep shipping - iOS DevCon 2013

Wann selbst entwickeln?Verhältnis Zeit zu Aufwand zu Mehrwert

(gegenüber Open Source Lösung)

Page 16: Stay calm & keep shipping - iOS DevCon 2013

Entwicklungs-Prozess

Page 17: Stay calm & keep shipping - iOS DevCon 2013

KonventionenVeröffentlichung /

Testing / Entwicklung getrennt

Page 18: Stay calm & keep shipping - iOS DevCon 2013

master == live

Page 19: Stay calm & keep shipping - iOS DevCon 2013

development / feature branches

Teamfähigkeit

Page 20: Stay calm & keep shipping - iOS DevCon 2013

development / feature branches

Nachvollziehbarkeit

Page 21: Stay calm & keep shipping - iOS DevCon 2013

Internes Projekt-Management

Das kleinste, funktionierende Tool

Page 22: Stay calm & keep shipping - iOS DevCon 2013

Internes Projekt-Management

So flexibel wie möglich

Page 23: Stay calm & keep shipping - iOS DevCon 2013

Ziel: Genaue Abstimmung mit Kunden & zeitnahe

Lieferung

Page 24: Stay calm & keep shipping - iOS DevCon 2013

Agiles EntwicklungsmodellKleine Milestones,

oft wechselnde Anforderungen

Page 25: Stay calm & keep shipping - iOS DevCon 2013

Agiles EntwicklungsmodellAnforderungs-Dokument

zu Anfang nicht ausreichend

Page 26: Stay calm & keep shipping - iOS DevCon 2013

Unsere Lösung: Basecamp

Diskussionen, Termine, Dateien, (E-Mails)

Page 27: Stay calm & keep shipping - iOS DevCon 2013

(Automatisierte) Tests ≠ TDD

Page 28: Stay calm & keep shipping - iOS DevCon 2013

(Automatisierte) TestsGrundsätzlich falsche Einschätzung, was

Zeitaufwand betrifft

Page 29: Stay calm & keep shipping - iOS DevCon 2013

(Automatisierte) TestsSpart Zeit!

Gibt Sicherheit!

Page 30: Stay calm & keep shipping - iOS DevCon 2013

Warum Tests?Code-Qualität

Page 31: Stay calm & keep shipping - iOS DevCon 2013

Warum Tests?Führt zu besserer Architektur

Page 32: Stay calm & keep shipping - iOS DevCon 2013

Spart richtig, richtig viel Zeit.

Page 33: Stay calm & keep shipping - iOS DevCon 2013

Continuous Integration

Page 34: Stay calm & keep shipping - iOS DevCon 2013

HockeyApp

Page 35: Stay calm & keep shipping - iOS DevCon 2013

1. Xcode - Product - Archive

2. Organizer - Distribute - Save To Disk

3. Mail an Tester

4. IPA iTunes Mediathek hinzufügen

5. Gerät mit iTunes synchronisieren

Klassischer Ablauf

Page 36: Stay calm & keep shipping - iOS DevCon 2013

1. Push in master

2. Unit-Tests laufen (Jenkins)

3. .ipa wird gebaut (Jenkins)

4. Testbuild hochladen (HockeyApp)

5. Tester benachrichtigen (HockeyApp)

Verteilung

Page 37: Stay calm & keep shipping - iOS DevCon 2013

Crash Reports

Page 38: Stay calm & keep shipping - iOS DevCon 2013

ipa build && ipa distribute

nomad-cli.com

Page 39: Stay calm & keep shipping - iOS DevCon 2013

Broken WindowWas einmal schlecht ist,

wird auch nicht mehr gut

Page 40: Stay calm & keep shipping - iOS DevCon 2013

Broken WindowEs gibt nich das ominöse „Wenn wir Zeit haben

Land“, in dem hässlicher Code schön gemacht wird.

Page 41: Stay calm & keep shipping - iOS DevCon 2013

Der/Die Entwickler(-in)

Page 42: Stay calm & keep shipping - iOS DevCon 2013

Wie arbeiten wir?Keiner ist gleich und nicht für alle

funktionieren die gleichen Methoden.Das ist gut.

Page 43: Stay calm & keep shipping - iOS DevCon 2013

Zeitfresser findenNur weil man etwas kann, heißt das nicht,

dass man es auch tun sollte.

Page 44: Stay calm & keep shipping - iOS DevCon 2013

Zeitfresser findenAufgaben dem jeweiligen Spezialisten überlassen

Page 45: Stay calm & keep shipping - iOS DevCon 2013

Zeitfresser findenVerantwortung abgeben

Page 46: Stay calm & keep shipping - iOS DevCon 2013

The ZoneDie ersten 5 Minuten sind die schwierigsten

Page 47: Stay calm & keep shipping - iOS DevCon 2013

The ZoneAufwand dorthin zu gelangen minimieren

Page 48: Stay calm & keep shipping - iOS DevCon 2013

The ZoneKontextwechsel vermeiden

Page 49: Stay calm & keep shipping - iOS DevCon 2013

The ZoneAblenkungen vermeiden

Page 50: Stay calm & keep shipping - iOS DevCon 2013

Wie?

Page 51: Stay calm & keep shipping - iOS DevCon 2013

Wie?E-Mail Push klingt wichtig, ist es meist aber nicht

Page 52: Stay calm & keep shipping - iOS DevCon 2013

Wie?Eine Mail kann i.d.R auch mal 3 Stunden warten

Page 53: Stay calm & keep shipping - iOS DevCon 2013

Wie?@Mentions auch

Page 54: Stay calm & keep shipping - iOS DevCon 2013

Wie?Geplante Zeit für E-Mail/sonst.

(Kunden-)Kommunikation

Page 55: Stay calm & keep shipping - iOS DevCon 2013

Wie?Geplante Zeit für Prokrastination

Page 56: Stay calm & keep shipping - iOS DevCon 2013

KEEP SHIPPINGPünktlich und das Richtige.

Page 57: Stay calm & keep shipping - iOS DevCon 2013

Geht das überhaupt?

Page 58: Stay calm & keep shipping - iOS DevCon 2013

Ja, denn• Mobile-Projekte sind in der Regel

„überschaubar“

• Klar definiertes Produkt

• Probleme können früh identifiziert werden.

Page 59: Stay calm & keep shipping - iOS DevCon 2013

Kundenbeziehungen müssen gut sein.

Page 60: Stay calm & keep shipping - iOS DevCon 2013

Kunden haben Probleme

Wir bauen Lösungen

Page 61: Stay calm & keep shipping - iOS DevCon 2013

Kunden erklären Probleme

Wir erklären Lösungen

Page 62: Stay calm & keep shipping - iOS DevCon 2013
Page 63: Stay calm & keep shipping - iOS DevCon 2013

"If I had asked people what they wanted, they would have said faster

horses."

Nicht Henry Ford

Page 64: Stay calm & keep shipping - iOS DevCon 2013

Aber bitte auf dem Boden bleiben.

Wir sind Experten.

Page 65: Stay calm & keep shipping - iOS DevCon 2013

Missverständnissezu Beginn klären!

Page 66: Stay calm & keep shipping - iOS DevCon 2013

IT/Business AlignmentZentrales Thema

Page 67: Stay calm & keep shipping - iOS DevCon 2013

Anforderungen an Kunden

• Definierte Verantwortlichkeiten

• Verbindlichkeit in Aussagen

• Professioneller Umgangston

Page 68: Stay calm & keep shipping - iOS DevCon 2013

Ist ja kein Ponyhof.

Page 69: Stay calm & keep shipping - iOS DevCon 2013

„Never attribute to malice that which is adequately explained by stupidity.“

Hanlon‘s Razor

Page 70: Stay calm & keep shipping - iOS DevCon 2013

MDD• Mockup-Driven-Development

• 3 Mockups reichen nicht, um das Kundenproblem und seine Erwartung an das Produkt zu verstehen

Page 71: Stay calm & keep shipping - iOS DevCon 2013

Der Benutzersollte im Mittelpunkt des Produkts stehen

Page 72: Stay calm & keep shipping - iOS DevCon 2013

Der BenutzerKann im Entwicklungsprozess wertvolle Beiträge

leisten!

Page 73: Stay calm & keep shipping - iOS DevCon 2013

Benutzer – Konzeption

• „Design by Management“ ist oft ein verkehrter Ansatz

• Nutzer sind schwer zu finden, oft organisatorische Hindernisse

• Goldgrube

Page 74: Stay calm & keep shipping - iOS DevCon 2013

Transparenz• Hilft, Vertrauen zu schaffen, z.B. durch

• vollständigen Zugriff auf Quellcode

• Entwicklungsprozesse, Probleme klar erklären

• Probleme (Zeit, Aufwand) früh und unmissverständlich kommunizieren

Page 75: Stay calm & keep shipping - iOS DevCon 2013

Prototypen • Kundenbeziehung auf Probe

• Sind wir der richtige Dienstleister?

• Hat der Kunde realistische Vorstellungen?

• Konstruktive Zusammenarbeit?

• Umfang: bis zu 10MT

Page 76: Stay calm & keep shipping - iOS DevCon 2013

Fazit • Aufrichtiger Kommunikationsstil

• Gegenseitiger Respekt

• Geduld, sich wirklich mit dem Problem des Kunden auseinanderzusetzen

• Führt meist zu guten Ergebnissen und langfristiger Zusammenarbeit

Page 77: Stay calm & keep shipping - iOS DevCon 2013

ABER

Page 78: Stay calm & keep shipping - iOS DevCon 2013

Gelegentlich arbeiten auch mal die flomos eine

Nacht durch.

Page 79: Stay calm & keep shipping - iOS DevCon 2013

Vielen Dank!Fragen? Anregungen?

@superflomowww.superflomo.com