47
Der Plan Idee, Motivation, Strategie http://ag-softwaretechnik.de/

AG Softwaretechnik

Embed Size (px)

Citation preview

Der Plan™

Idee, Motivation, Strategie

http://ag-softwaretechnik.de/

Situation BundesIT

• infrastrukturell überfordert

• zeitlich überfordert

• teils fachlich überfordert

• „Software-Entwicklung“ Randthema

http://ag-softwaretechnik.de/

Situation BundesIT

• infrastrukturell überfordert

• zeitlich überfordert

• teils fachlich überfordert

• „Software-Entwicklung“ Randthema

Neuentwicklungen

unrealistisch.

http://ag-softwaretechnik.de/

• Wordpress

• Drupal

• MediaWiki

• EtherPad Lite

• Lime Survey

• …

• …

• …

Situation SoftwareBund und Landesebenen

Primär: Anpassungen

http://ag-softwaretechnik.de/

Eigenentwicklungen

• Clearingstelle

• von Alios in Haskell.

• PiratenID

• von Jan S. in PHP

• ohne Trennung Code/HTML, 0 Tests, etc.

Bund und Landesebenen

http://ag-softwaretechnik.de/

Eigenentwicklungen

• Liquidizer und co.

• Java

• undokumentiert, ohne Tests.

Bund und Landesebenen

http://ag-softwaretechnik.de/

Ausser Konkurrenz

• Liquid Feedback• externe Entwicklung

• lua, haskell, c

• keine Tests, keine Dokumentation

http://ag-softwaretechnik.de/

Ausser Konkurrenz 2

• Saftige Kumquat• Frontend für Liquid Feedback 2

• node.js

• keine Tests, keine Dokumentation

• erstes node.js Projekt der Entwickler (laut eigener Aussage)

http://ag-softwaretechnik.de/

Probleme

• zwischen 1-3 aktiven Entwicklern

• nahezu undokumentiert

• nahezu ohne Tests

• oftmals „zu viel Eigenentwicklung“

http://ag-softwaretechnik.de/

Zu viel Eigenentwicklung

• Etablierte Frameworks ignoriert

• Etablierte Bibliotheken ignoriert

• Rad selbst neu erfinden

• „schlauer sein“

• „only learning by doing“

http://ag-softwaretechnik.de/

Zu viel Eigenentwicklung

• „Community Review“ fehlt

• Übersehen von Standards

• kompliziertes Deployment/Ops

• Abhängigkeit von 1-2 Entwicklern über den „reinen Zweck“ der Anwendung hinaus (zB. Webframework)

Probleme:

http://ag-softwaretechnik.de/

Zu viel Eigenentwicklung

• Obskuritäten erschweren Einarbeitung

• Hohe Hürden für Interessierte Mitentwickler

• Know-How nicht übertragbar

Probleme #2:

http://ag-softwaretechnik.de/

Zu viel Eigenentwicklung

• Alles hängt an einzelnen Personen

• Partei macht sich abhängig

• Mitarbeit wird (in)direkt verhindert

• keiner kommt „lebend heraus“

(=> kein Nachfolger => Von Vorne.)

Fazit:

http://ag-softwaretechnik.de/

Zu viel Eigenentwicklung

• Alles hängt an einzelnen Personen

• Partei macht sich abhängig

• Mitarbeit wird (in)direkt verhindert

• die aus der Situation nicht „lebend herauskommen“ (=> kein Nachfolger)

Fazit:

Neuentwicklungen

unrealistisch.

http://ag-softwaretechnik.de/

Erfolgreiche OpenSource Projekte

• strenge Regeln (Architektur, Formatierung, Projektziel)

• starke Integration von Nutzern (Kollaboration, Bugtracking) z.B. durch GitHub

• Hohe Ansprüche an Tests und Dokumentation

(der letzten Jahre)

http://ag-softwaretechnik.de/

Erfolgreiche OpenSource Projekte

• Mitarbeit steigt nachhaltig

• Bugs werden schneller gefixt

• Projekt-Konsens ist „größer“, demokratischer

• Kommunikation steigt

Erstaunliches Resultat:

http://ag-softwaretechnik.de/

Erfolgreiche OpenSource Projekte

• Transparente Arbeitsweise und Kritik hilft Neueinsteigern besser, sich in Projekte einzufinden

• Tools helfen dabei, diese Kommunikation zu vereinfachen

• Qualität steigt!

Erstaunliches Resultat:

„Bozo Explosions“

• A player hire A+ player, B player hire C player hire ... Z player

• was Steve Jobs sagte :-)

http://ag-softwaretechnik.de/

Politische Relevanz

• US-Präsidentschaft 2008/Obama

• Bundestagswahl 2009

• AGH-Wahl 2011

• US-Präsidentschaft 2012

Beispiele Deutschland

• Schuldenuhr Berlin

iPhone App von @plaetzchen

• „3 Tage Wach“ der Grünen

• 2009: „PiratenVogel“ auf Twitter.

http://ag-softwaretechnik.de/

Beispiele Deutschland

• Schuldenuhr Berlin, iPhone App von @plaetzchen

• „3 Tage wach“ der Grünen

• …

Wahlkampf-

Mobilisierung

http://ag-softwaretechnik.de/

„Wir sind eine Partei — keine Softwarebude!“• Erheben technologischen Anspruch

• haben kein Geld für externe Entw.

• stehen für ortsungebundene Teilnahme

• haben aber massive organisatorische Probleme damit: „People don‘t scale.“

ungenutzte Chancen

• Knowledge-Management

• Neupiraten-Information

• Organisation

• Automatisierung d. Kommunikation

• Dynamische Koordination

http://ag-softwaretechnik.de/

ungenutzte Chancen

• politische Arbeit

• Jenseits von Etherpad, LimeSurvey und Liquid Feedback

• Thematische Kampagnen-Apps

• Crowdsourcing/Bürgerfeedback

http://ag-softwaretechnik.de/

ungenutzte Chancen

• uvm. etc. pp.

http://ag-softwaretechnik.de/

Voraussetzungen

• Verlässliche Infrastruktur

• Automatisierung der Entwicklung

• Praxiserprobte Technologien

• Dokumentation und Tests zur Transparenz und gegen „Wissensmonopole“ (Lock-in)

http://ag-softwaretechnik.de/

Voraussetzungen

• Verlässliche Infrastruktur

• Automatisierung der Entwicklung

• Praxiserprobte Technologien

• Dokumentation und Tests zur Transparenz und gegen „Wissensmonopole“ (Lock-in)

+ Wissen, Erfahrung & Fleiss

http://ag-softwaretechnik.de/

Wie erreicht man die Zielgruppe?

• „Kein Scheiss-Policy“. No Holy Wars.

• Wenig Experimente

• Klar definiertes und limitiertes Engagement (keine „Helden“)

• Community-übliche Qualität

Freiheiten

• AG Softwaretechnik

ist nur eine Möglichkeit.

• Kein „Alleinanspruch“ / Zentralismus

• Offen für Technologien, die community-/marktübliche Qualitätsanforderungen erfüllen.

http://ag-softwaretechnik.de/

Qualität

• Agile Vorgehensweise

(Kanban, Scrum, XP)

• Automatisierte Tests

• Lebende Dokumentation

• Erleichtert die Entwicklung, Wartung, Wissenstransfer, Review/Audit.

http://ag-softwaretechnik.de/

Qualität

• Somit klares Zeitmanagement

• Auch für berufstätige Vollzeitentwickler

• welche nur ein kleines Maß an Zeit übrig haben.

http://ag-softwaretechnik.de/

Grundlagen schaffen.

• Technologieteams in „Stacks“ organisieren.

• Basisinfrastruktur schaffen die alle Teams nutzen können.

• Rapid Application Development

http://ag-softwaretechnik.de/

Qualität

• Klares Zeitmanagement.

• Berufstätige Entwickler einschliessen.

• Zeit ist teuer. Effiziente Zeit-Nutzung.

http://ag-softwaretechnik.de/

Qualität

• Klares Zeitmanagement.

• Berufstätige Entwickler einschliessen.

• Zeit ist teuer. Effiziente Nutzung.

Weniger Stress.

Weniger Streit.

Weniger Risiken.

http://ag-softwaretechnik.de/

Fundamente

• Planung

• Entwicklung

• Betrieb

http://ag-softwaretechnik.de/

Planung

• Wer soll es benutzen?

• Wer definiert die Anforderungen?

• Wer begleitet die Entwicklung?

• Ansprechpartner

• Realistische Erwartungen

http://ag-softwaretechnik.de/

Entwicklung

• GitHub

• Automatisierte Tests,

ggf. Test Driven Development

• Kanban (z.B. Trello)

http://ag-softwaretechnik.de/

Betrieb

• Wo läuft die Anwendung später?

• Wer stellt Ressourcen?

• Setup/Wartung?

• Deployment?

http://ag-softwaretechnik.de/

Disziplin!

• YAGI — You aint gonna need it!

• KISS — Keep it simple, stupid.

• DRY — Don‘t repeat yourself.

• It‘s a problem, when it‘s a problem.

http://ag-softwaretechnik.de/

Disziplin!

• Lösungen finden

• keine neuen Probleme suchen.

• Deadline: Maximale Projektdauer.

http://ag-softwaretechnik.de/

Vorstellung Stack #1

• Ruby 1.9

• Ruby on Rails 3.2

• Twitter Bootstrap

• SQLite3, MySQL, PostgreSQL

• Deployment mit Capistrano ggf. DevOps mit „chef“

(Hier kenne ich mich sehr gut aus ;-)

http://ag-softwaretechnik.de/

Vorstellung Stack #2

• ???

• ???

• ???

• ???

• ???

durchdachte, gleichwertige Alternativen?

http://ag-softwaretechnik.de/

DevOps

• chef, puppet, …

• hängt vom „Hoster“/“Zulieferer“ ab (LandesIT, BundesIT, …)

Gescriptetes Operations

http://ag-softwaretechnik.de/

Ambitioniert?

• Sicher :-)

http://ag-softwaretechnik.de/

Wenn keiner will?

• Ich habe gefragt.

• Ich kann delivern.

• Wenn Leute nicht wollen…

…überlasse ich sie ihrem Schicksal :-)(Denn ich habe absolut keine Lust mehr, meine (Frei-)Zeit mit Frickel-Scheiss zu verschwenden. Sorry.)

http://ag-softwaretechnik.de/

Wenn keiner will?

• Ich habe gefragt.

• Ich kann delivern.

• Wenn Leute nicht wollen…

…überlasse ich sie ihrem Schicksal :-)(Denn ich habe absolut keine Lust mehr, meine (Frei-)Zeit mit Frickel-Scheiss zu verschwenden. Sorry.)

http://ag-softwaretechnik.de/