Post on 22-Mar-2017
1
Agenda
● Was macht ein Start Up erfolgreich?● Das Team● Business und IT Alignment● Technologie● Entwicklungsprozesse● Deployment● Sicherheit● Monitoring● Dokumentation
2
3
Start Up Erfolg
● Pro● Schnelles lernen● Günstiges lernen● Gutes Team● Exzellente Ausführung
● Contra● Zu früh skalieren● Schlechte Anforderungen● „Verzetteln“ → Fokussierung auf unwichtige Dinge
Quelle: Startup Genome Report 01 https://www.startupcompass.co/
4
Start Up Stages
Discovery Validation Efficiency Scale
ProfitMaximation
Renewal
5
6
Zyklisches Controlling
● Alles messen● Smart/e Ziele
● spezifisch● messbar● akzeptiert● realistisch● terminiert
● Regelmäßig messen● fester Tag im Monat an dem Ziele kontrolliert
werden, bei neuen Zielen wöchentlich bis täglich
7
Kommunikation
● Eine auffällige Gemeinsamkeit erfolgreicher Unternehmen ist effiziente und effektive Kommunikation
● Wann wird effektiv kommuniziert?● Entscheidungen werden im Zeitplan getroffen und
werden von allen respektiert und akzeptiert● Es herrscht ein Vertrauensverhältnis zwischen allen
Mitarbeitern● Es gibt nur Meetings, wenn Entscheidungen zu
treffen sind
8
Das Team
9
10
Personal
● Personal● Teuerste Komponente im Unternehmen● Schwer zu beschaffen● IQ guter Indikator, ob passend für Stelle● Fähigkeiten messen
● Effizientes Arbeiten● Programmierer Produktivität schwankt um den
Faktor 10● Persönliche Ziele● Klare Anforderungen
http://www.johndcook.com/blog/2011/01/10/some-programmers-really-are-10x-more-productive/
12
13
Identität für Team anbieten
14
Recruitment
● Am effektivsten über persönliches Netzwerk● Frühzeitig Personen an sich binden● Personen, die für Geld kommen, werden auch
wieder für Geld gehen
"In looking for people to hire, you look for three qualities: integrity, intelligence, and energy. And if they don't have the first, the other two will kill you."
Warren Buffet
CEO, Berkshire Hathaway
15
Business und IT Alignment
16
Prozesse
● Die Kernprozesse sollten aufgeschrieben sein z.B. Porter Wertkette● Wann ist etwas ein Kernprozess?
– Er trägt mehr als 10% zu den Unternehmenseinnahmen bei
– Er trägt mehr als 10% zu den Unternehmensausgaben bei
● Prozesse erst nach Etablierung dokumentieren● IT Systeme zur Unterstützung dieser Prozesse
sollten zugeordnet sein
17
Beispielkernprozesse
Entwicklung Betrieb SupportQualitäts-sicherung
Entwicklung und BetriebEntwicklung und Betrieb
Vertrieb und Marketing / B2B
LeadGenerierung
Vertrags-abschluss
Bereit-stellung
Lead-qualifizierungund -pflege
... bis zu 70% der IT Kosten
bis zu 50% der Gesamtkosten bei SaaS
18
IT kann Prozesse beeinflussen
● Neue IT Systeme bilden meist nicht die Prozesse so ab, wie sie vorher im Unternehmen waren
● Sinnvoll die Best Practises von Software zu übernehmen anstatt für viel Geld anpassen zu lassen
● Auswahl der Lösungen die möglichst gut die momentanen Prozesse beschreiben
19
Wann brauche ich ein IT System
● Viele Prozesse werden implizit durch IT unterstützt● Standardprogramme: Email, Office,
Tabellenkalkulation, Kalender
● IT Systeme sind primär zum Sammeln von Daten, Auswerten und Präsentation an mehrere Personen● IT Systeme werden oft gebraucht, wenn ein Prozess
mit mehreren Personen statt findet und die Daten an dem Prozess anstatt in den Mailboxen der beteiligten Personen landen sollen
20
Start Up Kosten von Entwicklung dominiert
● Sinnvolle Strategie schnell zu entwickeln und auf Funktionen und möglicherweise Qualität zu verzichten um Geschäftsmodell zu validieren
● Startups need 2-3 times longer to validate their market than most founders expect. (Startup Genome Report)
● Performanzprobleme sind Luxusprobleme● Wenn erfolgreiches Businessmodell, dann ist
Geld vorhanden um gute IT zu bauen
21
Technologie
22
Welche Technologie wählen?
● Technologie egal, die Probleme liegen woanders:● Die festgestellten Haupterfolgsfaktoren sind:
– Einbindung der Endbenutzer– Unterstützung durch das obere Management– Klare Anforderungen
● Die Hauptpunkte, die zum Scheitern der Projekte führen sind:– fehlende Zuarbeit durch Benutzer– unvollständige/unklare Anforderungen– häufige Anforderungsänderungen
Quelle http://de.wikipedia.org/wiki/Chaos-Studie CHAOS-Studie der Standish Group
23
https://www.plat-forms.org/results-2011
Produktivität von Webplatformen
24
Produktivität abhängig von
● Daumenregel● Person (50%)● Anforderungen (30%)● Technologie (20%)
27
Performance Tests
● ab - http://httpd.apache.org/docs/2.2/programs/ab.html
● JMeter - http://jmeter.apache.org/
28
Entwicklungsprozesse
29
Teamgröße
● Optimales Entwicklungsteam zwischen 4-9 Leute● Experten sollten sich viel mit Planung,
Dokumentation und den Kollegen helfen beschäftigen, nicht alles selbst coden
● Um eine Anforderung zu erfüllen sollten immer zuerst bereits bestehende Lösungen evaluiert werden
● 20% der Personen machen ausschließlich Managementarbeit
30
Vorgehensmodelle
● Vorgehensmodelle sollten nur so benannt werden, wenn der Verantwortliche mindestens 200 Seiten zu dem Modell gelesen hat● Wasserfall
– V Modell XT– PRINCE2 (project management)
● Iterative (agile)– Rational Unified Process– Xtreme Programming– Scrum (momentan trendy)– Kanban (noch cooler als Scrum)
31
http://www.joelonsoftware.com/articles/fog0000000043.html
Joels Rules for productivity
● Do you use source control?
● Can you make a build in one step?
● Do you make daily builds?
● Do you have a bug database?
● Do you fix bugs before writing new code?
● Do you have an up-to-date schedule?
● Do you have a spec?
● Do programmers have quiet working conditions?
● Do you use the best tools money can buy?
● Do you have testers?
● Do new candidates write code during their interview?
● Do you do hallway usability testing?
32
Application Lifecycle Management
SCM e.g. git, svnIssue Management e.g.
JIRA, Redmine
Continious Integration Server e.g. Hudson,
Bamboo
Server Runtime e.g. Tomcat, Apache
33
Ticketing System
● Arbeitsanweisungen werden nur über Tickets kommuniziert● Messbarer Fortschritt● Klarer Lebenszyklus (Erstellt, In Arbeit, Fertig)● Quellcode und Deployment integrierbar
34
Continious Integration
● Eine Funktion muss innerhalb von 8 Stunden so implementiert sein, dass das System kompilierbar ist
● System wird täglich kompiliert● System wird täglich getestet● System ist ständig auslieferbar● Automatisiertes Kompilieren, Testen und
optionale Auslieferung
35
Integration und Traceability
● SCM, Ticketing und CI sollten integriert sein● Typische Fragen
● Warum wurde folgender Code geschrieben?● Welche Features sind in dem momentanen Build,
die nicht in dem vorherigen waren?● Gibt es für alle Tickets Test Cases● Wer hat wie viele Zeilen Code geschrieben für den
momentanen Build
36
Vorgehensmodelle
● Vorgehensmodelle sollten nur so benannt werden, wenn der Verantwortliche mindestens 200 Seiten zum dem Modell gelesen hat● Wasserfall
– V Modell XT– PRINCE2 (project management)
● Iterative (agile)– Rational Unified Process– Xtreme Programming– Scrum (momentan trendy)– Kanban (noch cooler als Scrum)
37
Anforderungen a.k.a User Stories aber wie?
● Anforderung z.B. wie folgt definieren:● Welches Problem löst die Anforderung● Bewertung des Geschäftswert● Textuelle Beschreibung● Prozess Diagramm machen● Wireframes machen● Optional: PSDs für Designs machen● Entity-Relationship Diagramme machen● Schätzung der Kosten● Akzeptieren der Entwicklung● Implementieren
38
Einflußfaktoren und Gewichtung für Produktqualität
39
Vorstellung von Scrum
Quelle: 2006 Softwaretechnik II Vorlesung bei Dr. Eckhardt Holz
40
http://scrumcrazy.wordpress.com/2012/06/26/a-diagram-of-the-user-story-life-cycle/
41
Problem
● Welche Dinge mag ein Kunde?
42
Beschreibung
For the following items, it is advisable to capture explicit feedback:
• Fashion dresses
• DVDs, especially movies
• Books
• Recipes
The explicit feedback will also be associated with the user. Afterwards, it may be used to make better recommendations. Additionally, it could possibly be the case that the cross domain knowledge improves the cold start problem when adding a new domain. This functionality should be integrated in social networks like studiVZ. A mobile app should be made available.
A survey is a special case of explicit feedback. It collects multiple, enumerable attributes by requesting the user to answer multiple questions on their review concerning a specific item.
43
Prozessmodel
User fillsout survey
missing fields
44
Wireframe
45
Entity Model
46
Anfoderung ready to implement
● Nun ist die Anforderung fertig zum implementieren
47
48
Deployment
49
Installation von Software
● Automatisiertes Bereitstellen● Welche Funktion ist neu?● Ausfallzeiten begrenzen● Checklisten durchgehen nach Bereitstellung
50
CI Servers
production system
test system
SCM
Entwickler
1. coden2. commiten
3. bauen
4. automatischtesten
5. manuelltesten
6. deployen
51
Sicherheit
52
Sicherheit
● Checkliste:● https://www.owasp.org/index.php/Top_10_2010-Mai
n● Prozesse
● PCI compliance (Kreditkarten)● ISO/IEC 10181 Security frameworks
● Penetration testing● http://www.backtrack-linux.org/● nmap● Nessus (http://www.tenable.com/)
53
Intrusion Detection/Prevention
● Hardening PHP (Suhosin) – outdated● Snort - http://www.snort.org/● „Web Application Firewall“
● http://www.modsecurity.org/ - Apache
54
Monitoring
55
Monitoring
● Sicherstellung, dass angebotene Systeme laufen
● Benachrichtigung bei Ausfall von Services● Verschiedenste Systeme
● New Relic● Icinga → empfohlen● Derdack Enterprise Alert● Zabbix