Was macht ein Start Up erfolgreich?

339 views 0 download

Transcript of Was macht ein Start Up erfolgreich?

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