Upload
roland-m
View
287
Download
1
Tags:
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/