Von PizzaCola zu SushiMate Über Herausforderungen für Softwareentwickler/-firmen
Früher Entwickler waren Nerds Zurückgezogen vollführten sie ihre Arbeit im stillen Kämmerlein Zu essen gab es Pizza und Cola Und programmiert wurde in
Assembler DATA SEGMENT Meldung db "Hello World" db "$" DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA Anfang: mov ax, DATA mov ds, ax geladen werden) mov dx, offset Meldung mov ah, 09h int 21h Schirm) mov ax, 4C00h festlegen int 21h zurückgegeben CODE ENDS END Anfang ;- Beginn des Datensegments ;- Die Zeichenkette "Hello World" ;- Zeichen, das INT 21h (s.u) als Ende der Zeichenkette erkennt ;- Ende des Datensegments ; ;- Beginn des Codesegments ;- dem Assembler die vorgesehenen Segmente und Segmentregister mitteilen ;- Einsprung-Label für den Anfang des Programms ;- Adresse des Datensegments in das Register "AX" laden ; In das Segmentregister "DS" übertragen (in das DS Register kann nicht direkt ;- die zum Datensegment relative Adresse des Textes in das "DX" Datenregister laden ; die vollständige Adresse von "Meldung" befindet sich nun im Registerpaar DS:DX ;- die Unterfunktion 9 des Betriebssysteminterrupts 21h auswählen ;- den Betriebssysteminterrupt 21h aufrufen (hier erfolgt die Ausgabe des Textes am ;- die Unterfunktion 4Ch (Programmbeendigung) des Betriebssysteminterrupts 21h ;- diesen Befehl ausführen, damit wird die Kontrolle wieder an das Betriebssystem ;- Ende des Codesegments ; Quelle: http://de.wikipedia.org/wiki/assemblersprache
Fortran TTYPE telement TYPE (telement), POINTER :: Naechstes REAL :: Datum END TYPE telement TYPE (telement), POINTER, SAVE :: Liste=> NULL()! -- NULL(): Fortran-95 TYPE (telement), POINTER :: Element! Anlegen eines Elements und Eintragen am Anfang der Liste ALLOCATE( Element ) Element% Datum = 4711.0 Element% Naechstes=> Liste Liste=> Element! Durchlaufen der Liste: Element=> Liste DO WHILE (ASSOCIATED(Element)) CALL Bearbeiten( Element% Datum ) Element=> Element% Naechstes ENDDO Quelle: http://de.wikipedia.org/wiki/fortran
C #include <stdio.h> #define TRUE 1 int main() { while (TRUE) { printf("hello World\n"); } return 0; }
Entwicklungszeiten für neue Software waren lang Windows: 1992, 1995, 1998, 2000, 2001, 2007, 2009, 2012, 2013, 2015 Visual Studio: 2002, 2003, 2005, 2008, 2010, 2012, 2013, 2015
Und heute?
Von PizzaCola Früher bekamen Entwickler vom Vertrieb ein dickes Buch mit Anforderungen in die Hand gedrückt, wurden dann in einen dunklen Keller gesperrt und erst wieder herausgelassen, wenn sie die Software fertiggestellt hatten. Die war oft ganz anders, als der Kunde sie sich vorgestellt hatte. Viele Projekte segneten deshalb das Zeitliche.
zu SushiMate. Heute gehört nicht nur intensiver Kundenkontakt zum Alltag eines Entwicklers. Auch die Essgewohnheiten haben sich verändert. Momentan sind Sushi und Mate angesagt. Er muss sich aber mit vielen weiteren Widrigkeiten herumschlagen
Herausforderung = Anforderung
Gründe für die Veränderungen Mehr Software Geringere Margen Weniger Zeit
Magisches Dreieck: Nicht alles ist gleichzeitig erreichbar Niedrige Kosten Kurze Entwicklungszeit Hohe Qualität
Anforderungen heute Kunde Technologien Handwerk Werkzeuge Mensch
Kunde Was will der Kunde? Weiß der Kunde, was er will? Wie kitzelt man sein Wollen aus ihm heraus? Was ist für den Kunden die Definition von fertig? (Definition of Done)
Handwerk Agile Entwicklung (Scrum, XP) Kanban Clean Code SOLID-Prinzipien (Unit-)Tests Architektur Beherrschen von Sprach-Features (Lambda- Ausdrücke, LINQ, async/await) Definition of Done
Technologische Anforderungen Angular (seit 2009), WebAPI Windows 10, Store-konform, Universal Windows Apps Windows Phone Multi-Plattform, Multi-Device (Xamarin) Azure Datenbanken: NoSQL, Graph, relational OR-Mapper (Entity Framework, NHibernate) Payment
Multiplattform
Werkzeuge Entwicklungsumgebung (Visual Studio, Eclipse) Requirements-Management-Tools Versionskontrollsysteme (Git, TFS) Deployment (Continuous Integration, Continuous Deployment) Stil-Überwachung: FxCop, NDepend Virtualisierung (Docker, VM)
Menschliche Fähigkeiten Softskills (Kritikgespräch, Kritikfähigkeit, Verhandlung) Team (Teamführung, Teammitgliedschaft) Kunde (Reden mit dem Kunden)
Lernen, lernen, lernen und immer an den Kunden denken
Software-Consulting-Firmen Die richtigen Mitarbeiter finden 43 000 Stellen sind unbesetzt (Bitkom, Ende 2014) Der überwiegende Teil davon sind Jobs für Softwareentwickler
Tilman Börner tilman.boerner@dotnetpro.de www.dotnetpro.de twitter.com/dotnetpro_mag facebook.com/dotnetpro plus.google.com/+dotnetpro www.developer-week.de