Web Development 2014
Bastian Albers
Ich bin Programmierer.
Was ihr denkt.
Wie es wirklich ist.
An guten Tagen
OK, es gibt auch schlechtere Tage.
Selten.
Web Development?
Software die in Browsern funktioniert.

Was ich gemacht habe
- Lange Wirtschaftsingenieurwesen studiert
- sehr lange
- Ein Praktikum in einer Agentur
- Ein Reise-Startup mitgegründet
- Als Freelancer für viele Kunden gearbeitet
- Hotels, Hostels, Shops, etc
- Ein Verkehrsstartup mitgegründet
- Eine Cloudplatform mitgebaut
- Eine Projektmanagementsoftware mitentwickelt
- Gerade meinen Job gekündigt
Was ich jetzt mache: Immer noch Web Applications
- HTML 5
- CSS3
- Responsive Web Design
- JavaScript, CoffeeScript
- Node.js
-
CouchDB / MySQL / MongoDB
Wie wird man Programmierer?

Niemand startet als Profi.
Der Einstieg kann frustrierend sein...
...das bleibt auch so.
...aber man wird gelassener
Wer kann Programmierer werden?
Jeder!
Newbies:
You don’t have to look like, act like, or have a similar background to ANYONE to get started in this industry.
Be you, do great.
— Raquel Vélez (@rockbot) January 17, 2014
TEAMWORK!
Programmieren ist sozial

Wir erstellen und benutzen Free Open Source Software
...teilen diese auf Github
...präsentieren sie in freien User Groups
...helfen uns bei Problemen auf StackOverflow
...entwickeln gemeinsam beim Pair Programming
Wer ist Beteiligt?
- Business Development
- Scrum Entwicklung:
- Product Owner
- Development Team
- UX Designer
- UI Designer
- Front End Developer
- Back End Developer
- Scrum Master
-
Tester
- Support
- ...und mehr
Business Development

"...bezeichnet die zielgerichteten Maßnahmen zur Weiterentwicklung einer wirtschaftlich ausgerichteten Organisation."
Business Development
-
Was bringt das Produkt dem Benutzer?
-
Gibt es Lücken im Markt?
-
Was für mögliche Kunden gibt es?
-
Was für Wettbewerber?
-
Was können wir?
-
Wollen wir zusammen mit Partnern arbeiten?
=> Gruppenarbeit: Wir entwickeln eine PRODUKTIDEE
(ca. 10 Minuten)
Danach entscheide Ich als Investor in welche Idee wir unsere weitere Zeit investieren.
SCRUM
Product Owner
Definiert Features für Kunden und wann sie entwickelt werden.
Development Team
Setzt Features um. UI/UX-Design, Frontend- und Backend-Programmierung, Tests, Dokumentation
Scrum Master
Koordiniert das Team, fördert Kommunikation mit Product Owner. Sorgt dafür, dass alles Funktioniert.
Product Owner

-
Macht aus der Idee "User Stories"
-
"Akzeptanzkriterien" - wie sie umgesetzt werden sollen
-
Sinnvolle Reihenfolge
-
Sorgt dafür, dass die Produktvision erreicht wird
-
Sagt, wann ein Feature fertig umgesetzt ist
Product Owner: Beispiele für User Stories
- "Als Benutzer kann ich mich registrieren" (Fertig wenn man Passwort, Email und Benutzername in ein Formular eingibt. Email und Benutzernamen darf es noch nicht geben.)
- "Als Benutzer kann ich mich einloggen"
- "Als eingeloggter Benutzer kann ich Bilder hochladen"
- "Als eingeloggter Benutzer kann ich Bilder liken"
- "Als eingeloggter Benutzer kann ich Bilder kategorisieren"
- "Als Besucher kann ich auf einer Seite die 50 meistgelikedten Bilder aus der Kategorie Gestreifte Katzenbabies die auf Erdbeertorten schlafen ansehen"
Gruppenarbeit:
Erstellt User Stories für unsere Idee (ca. 10 Minuten)
- Kurze Überschrift, die das Feature knapp beschreibt
- Evtl. kurzer Text zur Erläuterung
- Kurze DoD: "Definition of Done"
- wann ist dieses Feature fertig
- was gehört UNBEDINGT dazu
- was gehört NICHT dazu
Development Team

- Design
- UX Design
- UI Design
- Programmierer
- Frontend
- Backend
User Experience (UX) Design

- Wie komme ich von der Idee zur Umsetzung der Ziele
- Interaktion zwischen verschiedenen Elementen
- Im Mittelpunkt steht das Erlebnis des Benutzers
User Interface (UI) Design

- Gestaltung der Benutzeroberflächen
- Entwickeln der visuellen Sprache der Anwendung
- Reduktion auf das was nötig ist, Design hat ein Ziel und ist kein Selbstzweck
Backend Development

- Handling vom Zugriff auf Daten in Datenbank
- erstellen, lesen, bearbeiten, löschen (CRUD)
- Kontrolle über Zugriffsberechtigungen
- Datenverarbeitung
- Applikationsflow / Routing
- REST API - Zur Verfügung stellen von Daten nach definierten Standards
Frontend Development

- Programmierung von UI/UX
- Zusammenspiel mit Backend / REST API
- Optimieren für verschiedene Browser / Endgeräte
Development im Scrum Prozess
Arbeiten in "Sprints"
- Das Team schätzt den Umfang einer User Story
- Mehrere User Stories werden in "Sprints" zusammengefasst
- Das Team bestimmt wie viele Stories in den Sprint kommen
- Sprints sind meistens ca. 1-3 Wochen lang
- Jeder nimmt sich die gerade gewünschten Aufgaben
- In "Daily Standups" wird kurz geklärt wer woran arbeitet
- Am Ende des Sprints gibt es ein "Review" in dem die Product Owner bestimmen, ob eine User Story abgeschlossen ist
Scrum Master

- Kümmert sich darum, dass das Team ungestört arbeiten kann
- Schützt vor Eingriffen in die Sprint-Agenda
- Sorgt für Kommunikation
- im Team
- zwischen Team und Product Ownern
- zwischen Teams
Bugfixing hat Vorrang
Startup gründen! Dann kann ich alles selber machen!
Startup gründen! Dann kann muss ich alles selber machen!
Don't be evil

Don't be a cheap copycat
Man kann immer NEIN sagen
Dankeschön.

Web Development 2014
By bastianalbers
Web Development 2014
- 278