
Guidebook für Software Engineers
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions


Persons
Content
- Cover
- Titel
- Impressum
- Inhalt
- Vorwort
- Einleitung
- Teil I: Grundlagen der Entwicklerkarriere
- 1 Karrierepfade
- Arten von Unternehmen
- Big Tech, technologische Großunternehmen
- Mittlere bis große Technologieunternehmen
- Scale-ups
- Start-ups
- Traditionelle, nicht technologieorientierte Unternehmen mit technischen Abteilungen
- Traditionelle, aber technologielastige Unternehmen
- Kleine, nicht risikofinanzierte Unternehmen
- Öffentlicher Sektor
- Non-Profit-Organisationen
- Beratungsunternehmen, Outsourcing-Firmen und Entwicklungsagenturen
- Akademische Einrichtungen und Forschungslabore
- Welche Art von Unternehmen ist für Ihre Karriereziele am besten geeignet?
- Typische berufliche Laufbahnen im Software-Engineering
- Einspuriger Karrierepfad
- Zweispuriger Karrierepfad
- Alle Karrierepfade sind einmalig
- Häufig anzutreffende Karrierepfade
- Vergütung und Branchenebenen (Tiers) von Unternehmen
- Ebene 1: Lokaler Markt
- Ebene 2: Lokaler Marktführer
- Ebene 3: Regionaler/internationaler Marktführer
- Contractors und Freelancer
- Vor- und Nachteile der verschiedenen Ebenen
- Cost-Center, Profit-Center
- Alternative Wege, über den Karriereverlauf nachzudenken
- 2 Die Karriere in die eigene Hand nehmen
- Sie sind für Ihre Karriere verantwortlich
- Als jemand gesehen werden, der »die Dinge anpackt«
- Schaffen Sie etwas!
- Erledigen Sie möglichst viele Dinge mit weitreichenden Auswirkungen
- Lassen Sie die Leute wissen, dass Sie etwas schaffen
- Führen Sie ein Arbeitsprotokoll
- Ist das Führen eines Protokolls nicht etwas seltsam?
- Bitten Sie um Feedback und geben Sie Feedback
- Bitten Sie um Feedback
- Geben Sie anderen Feedback
- Schlecht formuliertes Feedback »decodieren«
- Machen Sie sich Ihren Manager zum Verbündeten
- Regelmäßige persönliche Treffen mit Ihrem Manager
- Berichten Sie und gehen Sie nicht davon aus, dass Ihr Manager alles weiß
- Verstehen Sie die Ziele Ihres Managers
- Liefern Sie, was vereinbart war, und geben Sie rechtzeitig Bescheid, wenn Sie es nicht schaffen
- Schaffen Sie gegenseitiges Vertrauen mit Ihrem Manager
- Sorgen Sie dafür, dass Ihre Arbeit wahrgenommen wird
- Teilen Sie sich Ihre Kraft gut ein
- Dehnen
- Ausführen
- Leerlauf
- 3 Leistungsbeurteilungen
- Früh beginnen: Kontext erfassen und Ziele setzen
- Die wichtigsten Faktoren erkennen und verstehen
- Welches System zur Leistungsbeurteilung wird verwendet?
- Besprechen Sie Ihre Ziele mit Ihrem Manager
- Einigen Sie sich mit Ihrem Manager auf bestimmte Ziele
- Die Macht der Gewohnheit
- Zeichnen Sie Ihre Erfolge auf
- Führen Sie ein Arbeitsprotokoll
- Lassen Sie Ihren Manager von Ihren Fortschritten wissen
- Etwas schaffen
- Anderen helfen
- Notieren Sie, was Sie tun, um anderen zu helfen
- Bitten Sie hin und wieder um konkretes Feedback
- Vor der Leistungsbeurteilung
- Wie sehr können Sie sich auf Ihren Manager als Ihren Fürsprecher verlassen?
- Finden Sie die wichtigen Fristen heraus
- Feedback von Kollegen bekommen
- Nehmen Sie eine Selbstscheinschätzung vor
- Die Leistungsbeurteilung
- Bedenken Sie, dass Leistungsbeurteilungen nur Momentaufnahmen sind
- Erkennen Sie die Dynamik der Leistungsbeurteilung
- Machen Sie sich nicht zu abhängig vom Ergebnis
- Voreingenommenheit ist sehr real
- Seien Sie offen für negatives Feedback und weisen Sie es nicht zurück
- Sie und Ihr Manager sitzen im selben Boot
- Konzentrieren Sie sich auf die langfristigen Ergebnisse
- Vergessen Sie nicht das große Ganze
- 4 Beförderungen
- Wie Beförderungen entschieden werden
- Arten von Beförderungsprozessen
- Informeller Beförderungsprozess
- Ein schlanker Beförderungsprozess
- Ein aufwendiger Beförderungsprozess
- Hybride Modelle
- »Terminal Level«
- Beförderungen in Big-Tech-Unternehmen
- Gehalt und Beförderungen
- Beförderung: was vom Unternehmen erwartet wird
- Beförderungsorientierte Softwareentwicklungen
- Ratschläge für die Beförderung
- Die Arbeit organisieren
- Die Bedeutung Ihres Managers
- Bleiben Sie realistisch
- Langfristige Karriereplanung
- Machen Sie Ihr Selbstwertgefühl nicht von Beförderungen und Titeln abhängig
- Versuchen Sie nicht, Menschen aus dem Weg zu drängen
- Viele Investitionen in die Karriere zahlen sich erst später aus
- Zufriedenheit sollte nicht durch Titel und Karrierestufen definiert werden
- 5 In verschiedenen Umgebungen erfolgreich sein
- Produktteams und produktorientierte Engineers
- Produktorientierte Engineers
- Wie wird man ein produktorientierter Engineer?
- Plattformteams
- Vorteile der Arbeit in einem Plattformteam
- Nachteile der Arbeit in einem Plattformteam
- In einem Plattformteam erfolgreich sein
- »Friedenszeiten« im Vergleich mit »Kriegszeiten«
- In Kriegszeiten erfolgreich sein
- In Friedenszeiten erfolgreich sein
- Zwischen beiden Phasen wechseln
- Arten von Unternehmen
- Big Tech- und größere Technologieunternehmen
- Scale-ups in einer mittleren bis späten Phase
- Start-ups in der Frühphase
- Ansätze für den Erfolg in jeder Art von Unternehmen
- 6 Jobwechsel
- Neue Möglichkeiten erkunden
- Aktive Jobsuche
- Passiv offen für neue Möglichkeiten
- Wenn Sie mit Ihrem Job zufrieden sind
- Auf Beförderung warten oder den Job wechseln?
- Beförderungen sind in der Regel rückwärtsgewandt
- Je höher Ihr Rang, desto riskanter ist eine neue Stelle
- Je höher die Karrierestufe, desto schwieriger die Beförderung
- Vorbereitung auf Bewerbungsgespräche in der Technologiebranche
- Erstes Screening
- Technisches Screening
- Interviews vor Ort (»On Site«)
- Interviewverläufe auf Staff-Ebene und darüber
- Herabstufung
- Umgang mit Herabstufung
- Höherstufung
- In eine neue Stelle einarbeiten (»Onboarding«)
- Für alle Unternehmen jeder Branchenebene
- Einarbeiten in einer kleineren Firma
- Einarbeiten in einem großen Unternehmen
- Einarbeiten in eine Rolle auf Senior-Stufe oder darüber
- Einarbeiten in eine Rolle auf Staff-Ebene oder darüber
- Denkanstöße
- Teil II: Der kompetente Softwareentwickler
- 7 Die Dinge anpacken
- Konzentration auf die wichtigste Aufgabe
- Machen Sie es sich zur Gewohnheit, Ihre wichtigste Aufgabe immer fertigzustellen
- Lernen Sie, Nein zu sagen
- Blockaden beseitigen
- Blockaden erkennen
- Probieren Sie verschiedene Methoden aus, um die Blockaden zu beseitigen
- Holen Sie sich Unterstützung, um Blockaden zu beseitigen
- Lernen Sie, zu eskalieren, ohne Federn zu lassen
- Der »Hilfe! Ich bin blockiert!«-Schummelzettel
- Arbeit aufteilen
- Denken Sie in Stories, Aufgaben und Unteraufgaben
- Priorisieren Sie die Arbeiten, die Sie der Fertigstellung näherbringen
- Haben Sie keine Angst, Aufgaben hinzuzufügen, zu entfernen oder zu ändern
- Zeitaufwand schätzen
- Zeitaufwand für etwas schätzen, das Sie schon einmal getan haben
- Zeitaufwand für etwas schätzen, das Sie noch nicht getan haben
- Mentoren finden
- Der »Tech Tribe of Mentors«
- Das »Wohlwollen-Guthaben« auf einem guten Stand halten
- Jeder hat ein Wohlwollen-Guthaben
- Füllen Sie Ihr Wohlwollen-Guthaben regelmäßig wieder auf
- Vermeiden Sie es nach Möglichkeit, allein zu arbeiten
- Die Initiative ergreifen
- Möglichkeiten, die Initiative zu ergreifen
- 8 Programmieren
- Programmieren üben - und zwar viel!
- Coden Sie regelmäßig
- Bitten Sie um Code-Reviews
- Lesen Sie so viel Code, wie Sie schreiben
- Coden Sie etwas mehr
- Lesbarer Code
- Was bedeutet »lesbarer Code«?
- Worauf Sie achten sollten
- Hochwertigen Code schreiben
- Den richtigen Abstraktionsgrad verwenden
- Richtig mit Fehlern umgehen
- Hüten Sie sich vor »unbekannten« Zuständen
- 9 Softwareentwicklung
- Eine Sprache besonders gut beherrschen
- Lernen Sie die Grundlagen einer Sprache
- Eine Ebene tiefer gehen
- Der Praktikant, der zum Go-Experten unseres Teams wurde
- Lernen Sie das »Haupt«-Framework für eine Sprache
- Lernen Sie eine zweite Sprache
- In die Breite oder in die Tiefe gehen?
- Debuggen
- Machen Sie sich mit Ihren Debugging-Werkzeugen vertraut
- Beobachten Sie, wie erfahrene Entwicklerinnen und Entwickler debuggen
- Lernen Sie, ohne Werkzeuge zu debuggen
- Refaktorieren
- Üben Sie die Refaktorierung so oft wie möglich
- Die Refaktorierungsmöglichkeiten Ihrer IDE kennen und nutzen
- Tests refaktorieren
- Machen Sie sich die Refaktorierung zur täglichen Gewohnheit
- Testen
- 10 Werkzeuge des produktiven Entwicklers
- Ihre lokale Entwicklungsumgebung
- Ein schneller Zyklus aus Bearbeiten Kompilieren/Ausführen Ausgabe
- IDE und Arbeitsablauf konfigurieren
- Häufig verwendete Werkzeuge
- Git
- Kommandozeile/Terminal
- Reguläre Ausdrücke
- SQL
- KI-Assistenten für die Programmierung
- Unternehmensinterne Entwicklungswerkzeuge
- Ihr persönlicher »Produktivitätsschummelzettel«
- Möglichkeiten, schnell zu iterieren
- Lesen Sie bereits vorhandenen Code und verstehen Sie, was er tut
- Wissen, wie das Debugging der CI/CD funktioniert
- Wissen, wie man auf Produktions-Logs und -Dashboards zugreift
- Nehmen Sie nach Möglichkeit nur kleine Codeänderungen vor
- Automatisierte Tests schreiben und ausführen
- Warten Sie nicht auf Code-Reviews, sondern fordern Sie sie an
- Holen Sie sich regelmäßig Feedback
- Zusammenfassung
- Teil III: Der vielseitige Senior-Engineer
- Softwareentwicklung im Vergleich mit Software-Engineering
- Erwartungen an Senior-Engineers über Unternehmen der verschiedenen Ebenen hinweg
- Typische Senior-Titel
- Typische Erwartungen an Senior-Engineers
- Senior als höchste obligatorische Karrierestufe
- 11 Aufgaben erfolgreich abschließen
- Dinge erledigen: Wahrnehmung und Realität
- Wahrnehmung und Realität können sich unterscheiden
- Kommunizieren Sie, was Sie tun
- Weniger versprechen, Erwartungen übertreffen und mehr kommunizieren
- Kommunizieren Sie Blockaden frühzeitig und machen Sie Lösungsvorschläge
- Ihre eigene Arbeit
- Effizient mit eingehenden Anfragen umgehen
- Wenn es erledigt ist, ist es auch »richtig« erledigt
- Arbeiten Sie in kurzen Iterationen
- Lange Arbeitsphasen
- Ihr Team
- Projekte gliedern und ihren Aufwand schätzen
- Dokumentieren Sie für andere
- Beseitigen Sie Blockaden für Ihr Team
- Werden Sie besser im »außerhalb-der-Box-Denken«
- Das große Ganze
- Werden Sie produktorientiert
- Das Geschäft verstehen
- 12 Zusammenarbeit und Teamwork
- Code-Reviews
- Der Ton macht die Musik
- Vor der Freigabe Änderungen anfordern
- Miteinander sprechen
- Erbsenzähler-Kommentare
- Neueinsteiger und Code-Reviews
- Büro- und zeitzonenübergreifende Reviews
- Arbeit im Tandem
- Situationen, in denen Tandems sinnvoll sein können
- Ansätze, wenn Sie der erfahrene Partner sind
- Ansätze, wenn Sie weniger erfahren sind
- Mentoring
- Informelles Mentoring
- Formelles Mentoring
- Startpunkt für das Mentoring: das Vorstellungstreffen
- Wenn Sie der Mentor sind
- Wenn Sie der Mentee sind
- Langfristige Vorteile des Mentorings
- Feedback geben
- Besser positives Feedback geben
- Konstruktives oder negatives Feedback geben
- Zusammenarbeit mit anderen Engineering-Teams
- Zeichnen Sie eine Karte der Teams
- Machen Sie sich mit anderen Teams bekannt
- Einfluss auf andere
- Liefern Sie hervorragende Arbeit ab
- Lernen Sie andere Menschen kennen
- Beteiligen Sie sich an funktionsübergreifenden Projekten
- »Werben« Sie für Ihre Arbeit - aber ohne anzugeben
- 13 Software-Engineering
- Sprachen, Plattformen und Fachgebiete
- Lernen Sie eine imperative, eine deklarative und eine funktionale Sprache in ihrer ganzen Bandbreite
- Machen Sie sich mit verschiedenen Plattformen vertraut
- Steigern Sie Ihre Full-Stack-Fähigkeiten
- KI-Assistenten können den Wechsel beschleunigen
- Debugging
- Wissen, welche Dashboards und Logging-Systeme man sich ansehen muss
- Erleichtern Sie anderen das Debugging
- Die Codebasis verstehen
- Eignen Sie sich genug Wissen zur Infrastruktur an
- Aus Störungen lernen
- Technische Schulden
- Technische Schulden abbauen
- Die Anhäufung technischer Schulden verringern
- »Gerade genug« technische Schulden
- Dokumentation
- Designdokumente/RFCs (Request for Comments)
- Testpläne, Roll-out-Pläne und Migrationspläne
- Dokumentation von Interfaces und Integrationen
- Versionshinweise (Release Notes)
- Dokumentation für Neueinsteiger
- Ein »Teamhandbuch«
- Betriebshandbuch für Engineers in Rufbereitschaft
- Benutzerhandbücher und Leitfäden
- Dokumentation als Aktivität mit großer Tragweite
- Best Practices auf das gesamte Team ausdehnen
- 14 Testing
- Unit-Tests
- Der Senior-Engineer, der keinen einzigen Unit-Tests schrieb
- Integrationstests
- UI-Tests
- Gedankenmodelle für automatisiertes Testen
- Die Testpyramide
- Der Test-Pokal
- Spezialisierte Tests
- Performancetests
- Belastungstests
- Chaostests
- Snapshot-Tests
- Tests auf Applikations-/Bundle-Größe
- Smoke-Tests
- Manuelle Tests und Plausibilitätstests
- Andere Tests
- Testing im Produktivbetrieb
- Vor- und Nachteile des automatisierten Testens
- 15 Softwarearchitektur
- Designdokumente, RFCs und Architekturdokumente
- Das Ziel von RFCs
- Vorteile
- RFCs sichten
- Architekturdokumente
- Prototyping und Proof-of-Concept
- Prototyping zum Erforschen
- Erstellung mit der Absicht, das Ergebnis zu verwerfen
- Domain-Driven Design
- Umsetzbare Softwarearchitektur
- Die geschäftlichen Ziele im Auge behalten
- Einverständnis der Entscheidungsträger
- Brechen Sie aus der Entscheidungsstarre aus
- Änderungen korrekt einführen
- Im Software-Engineering gibt es keine endgültigen Entscheidungen
- Überdenken Sie Ihre architektonischen Entscheidungen
- Zusammenfassung
- Teil IV: Der pragmatische Tech-Lead
- Typische Berufsbezeichnungen für Tech-Leads
- Typische Erwartungen an Tech-Leads
- Wo sich die Wege von IC und Manager trennen
- 16 Projektmanagement
- Unternehmen, in denen Engineers Projekte leiten
- Welchen Zweck hat das Projektmanagement?
- Projekt-Kick-offs und Etappenziele
- Das Projekt-Kick-off
- Das Engineering-Kick-off
- Etappenziele festlegen
- Sicherstellen, dass Schätzungen nicht bindend sind
- Die »Physik« von Softwareprojekten
- Der Projektumfang wächst
- Wenn sich der Zeitrahmen des Projekts ändert
- Wenn weniger Menschen an einem Projekt arbeiten können
- Änderungen bei den am Projekt beteiligten Personen
- Alltag im Projektmanagement
- Als Tech-Lead Entscheidungen treffen
- Risiken und Abhängigkeiten
- Technologische Risiken
- Abhängigkeiten auf Engineering-Ebene
- Abhängigkeiten außerhalb der Engineering-Ebene
- Fehlende Entscheidungen oder kontextbezogene Abhängigkeiten
- Unrealistischer Zeitrahmen
- Nicht genug Leute oder Bandbreite
- Etwas Unvorhergesehenes, das auf halber Strecke im Projekt auftritt
- Keine Ahnung, wie lange etwas tatsächlich dauern wird
- Projekte abschließen
- Was ist mit Projekten, die eher gescheitert als erfolgreich sind?
- 17 Bereitstellung für den Produktivbetrieb
- Extreme bei der Bereitstellung für den produktiven Einsatz
- YOLO-Shipping
- Sorgfältige mehrstufige Überprüfung
- Typische Bereitstellungsprozesse
- Start-ups
- Traditionelle Unternehmen
- Große Technologieunternehmen
- Das Hauptprodukt von Meta
- Prinzipien und Werkzeuge
- Entwicklungsumgebungen
- Testen und überprüfen
- Überwachung, Bereitschaftsdienst und Störungsmanagement
- Zusätzliche Kontrollebenen
- Separate Entwicklungsumgebungen
- Dynamisch verfügbare Testing-/Bereitstellungsumgebungen
- Ein eigenes Team für die Qualitätssicherung (Quality Assurance, QA)
- Exploratives Testing
- Canary-Testing
- Feature-Flags und Experimente
- Etappenweise Bereitstellung
- Mandantenfähigkeit (Multi Tenancy)
- Automatische Rollbacks
- Automatische Roll-outs und Rollbacks
- Pragmatische Risiken eingehen
- Weitere Überlegungen
- Den richtigen Ansatz wählen
- 18 Stakeholder-Management
- Das wahre Ziel des Stakeholder-Managements
- Arten von Stakeholdern
- Stakeholder nach Art der Abhängigkeit einteilen
- Finden Sie heraus, wer die Stakeholder sind
- Stakeholder auf dem Laufenden halten
- Problematische Stakeholder
- Persönliche Gespräche
- Seien Sie transparent und klären Sie auf
- Bitten Sie um Unterstützung
- Von Stakeholdern lernen
- 19 Teamstruktur
- Rollen und Titel
- Der Unterschied zwischen Titeln und Rollen
- »Tech-Lead« kann ein Titel oder eine Rolle sein
- Rollen können implizit oder explizit sein
- Entscheiden Sie, welche Rollen explizit sind
- Teamprozesse
- Führen Sie nicht nur Prozesse ein, sondern entfernen Sie auch welche
- Den Fokus des Teams steigern
- Wehren Sie sich gegen plötzliche Fokusänderungen
- 20 Teamdynamik
- Gesunde Teams
- Klarheit
- Ausführung
- Gute Moral
- Gesunde Kommunikation
- Ein engagiertes Team
- Ungesunde Teams
- Gründe für ungesunde Teams und der Umgang damit
- Strukturelle Gründe für Schwierigkeiten des Teams
- Teams mit wachsenden Schwierigkeiten
- Unausgesprochene Konflikte und Reden hinter dem Rücken anderer
- Im Verborgenen wachsende Probleme bei der Umsetzung
- Gute Arbeit ohne Beachtung
- Wachsendes Abnutzungsrisiko
- Ein Team mit vielen Senior-Engineers, denen die Herausforderungen fehlen
- Teamdynamik verbessern
- Zuerst beobachten .
- . dann die Dynamik verbessern
- Beziehungen zu anderen Teams
- Zusammenfassung
- Teil V: Vorbildliche Staff- und Principal-Engineers
- Typische Erwartungen an Staff+-Engineers
- Engineers auf Staff-Ebene und darüber sind Partner der EMs und PMs
- 21 Das Geschäft verstehen
- North Stars, KPIs und OKRs
- North Star
- KPIs
- OKRs
- Werden die richtigen Dinge gemessen?
- Ihr Team und Ihr Produkt
- Den Produktmanager-Hut aufsetzen
- Versetzen Sie sich in den Kunden hinein
- Verstehen, warum Kunden Ihr Produkt nutzen
- Den geschäftlichen Wert Ihres Produkts verstehen
- Erstellen Sie eine SWOT-Analyse für Ihr Produkt
- Ihr Unternehmen
- Was ist das Geschäftsmodell?
- Führen Sie persönliche Gespräche mit den Produktverantwortlichen
- Sprechen Sie mit Leuten außerhalb der Engineering- und Produktbereiche
- Führen Sie persönliche Gespräche mit geschäftlichen Stakeholdern
- Beachten Sie die Kommunikation der Geschäftsleitung
- Sprechen Sie mit Kunden und hören Sie ihnen zu
- Beteiligen Sie sich an strategischen Diskussionen
- Arbeiten Sie an bereichsübergreifenden Projekten
- Führen Sie persönliche Gespräche mit Ihrem Manager und den übergeordneten Führungskräften
- Nehmen Sie sich Zeit, um PRDs zu lesen
- Schaffen Sie Gelegenheiten für zufällige Treffen
- Warum treffen Engineers nur selten auf geschäftliche Entscheidungsträger?
- Börsennotierte Unternehmen
- Start-ups
- Ihre Branche
- 22 Zusammenarbeit
- Interne Politik
- Die »falsche« Art der Politik
- Problematische Wahrnehmungen
- Feedback zu »schlechter« Politik geben
- Andere beeinflussen
- Verdienen Sie sich »Vertrauenskapital«
- Stellen Sie Fragen und seien Sie ein aktiver Zuhörer
- Erklären Sie Ihren Standpunkt
- Ergreifen Sie in Designdiskussionen Partei und erklären Sie Ihre Beweggründe
- Krempeln Sie die Ärmel hoch und machen Sie sich an die Arbeit
- Machen Sie Ihre Arbeit sichtbar
- Übernehmen Sie die Führung und ergreifen Sie die Initiative
- Unterstützen Sie andere uneigennützig
- Verbessern Sie Ihre Schreibfähigkeiten
- Zusammenarbeit mit Managern
- Zusammenarbeit mit Kollegen auf Staff+-Ebene
- Das Netzwerk erweitern
- Finden Sie einen Mentor im Unternehmen
- Arbeit an teamübergreifenden Projekten
- An internen Schulungen teilnehmen
- Treffen mit Menschen von außerhalb Ihres Teams
- Netzwerk und Einfluss gehören zusammen
- Anderen helfen
- Stellen Sie sich als Mentor zur Verfügung
- Förderung
- 23 Software-Engineering
- Coding, das Sie immer noch selbst erledigen
- Programmieren in Bursts
- Im Tandem in Bursts programmieren
- Problematischen Projekten helfen
- Passen Sie Ihren Stil dem Team an
- Gehen Sie strategisch vor
- Hilfreiche Engineering-Prozesse
- Definieren Sie »fertig«
- Stilregeln für das Programmieren
- Code-Reviews
- Post-Commit-Reviews
- Automatisierte Tests und Testing im Produktionsbetrieb
- Scaffolding für neue Dienste und Komponenten nutzen
- Roll-out-Hygiene bei Experimenten
- Dashboards zur Kontrolle der Systemgesundheit
- Engineering-Praktiken für schnelles Iterieren
- Continuous Integration (CI)
- Continuous Deployment (CD)
- Trunk-basierte Entwicklung
- Feature-Flags
- Monorepos
- Microservices oder Monolithen
- Werkzeuge, die Engineers effizienter machen
- Dienstkatalog
- Codesuche
- Entwicklerportale
- Cloudbasierte Entwicklungsumgebungen
- KI-Programmierwerkzeuge
- Kaufen, selbst erstellen oder übernehmen?
- Compliance und Datenschutz
- Regulierung
- Logging
- Auditierung
- Sichere Entwicklung
- 24 Zuverlässige Softwaresysteme
- Für Zuverlässigkeit zuständig sein
- Logging
- Verbindliche Logging-Praktiken
- Ein Logging-Leitfaden, der sich bewährt hat
- Nutzen Sie ein Framework, das ein »korrektes« Logging durchführt
- Überwachung
- 50er-, 95er- und 99er-Perzentile
- Zu überwachende Dinge
- Geschäftliche Kennzahlen überwachen
- Warnmeldungen
- Dringlichkeit von Warnungen
- Falscher Alarm
- Statische Grenzwerte versus Anomalieerkennung
- Bereitschaftsdienst
- Typische Bereitschaftsdienste
- Ein spezielles Bereitschaftsteam oder Rufbereitschaft für alle Teams?
- Runbooks für den Bereitschaftsdienst
- Vergütung für den Bereitschaftsdienst
- Sollten Engineers »normale« Arbeit leisten, während sie in Bereitschaft sind?
- Burn-out durch Bereitschaftsdienst
- Umgang mit Störungen
- Erkennen einer Störung
- Beheben der Störung
- Nachbereitung des Vorfalls
- Resiliente Systeme schaffen
- Planungsphase
- Während der Programmierungsphase
- Simulieren Sie Fehler und testen Sie die Systemantwort
- 25 Softwarearchitektur
- Halten Sie die Sache so einfach wie möglich
- Den Fachjargon kennen, aber nicht unnötig benutzen
- Architektonische Schulden
- Erstellung zusätzlicher Dienste, um schneller voranzukommen
- Nicht aufgeteilte Monolithen
- Nicht funktionale Probleme
- Veraltete Sprachen oder Frameworks
- One-Way-Door- oder Two-Way-Door-Entscheidungen
- Two-Way-Door-Entscheidungen
- One-Way-Door-Entscheidungen
- Two-Way-Doors, die zu One-Way-Doors werden
- Entscheidungen im Mittelfeld
- Die Tragweite Ihrer Entscheidungen
- Skalierbare Architektur
- Skalierung, um ein Wachstum neuer geschäftlicher Anwendungsfälle zu ermöglichen
- Skalierung, um ein Ansteigen von Datenmenge, Nutzung und Traffic zu ermöglichen
- Architektonische Entscheidungen und geschäftliche Prioritäten
- Architektonische Entscheidungen auf geschäftliche Ziele und Wachstum ausrichten
- Verbinden Sie Änderungen an der Architektur mit geschäftlichen Initiativen
- Manchmal ist gut genug besser als perfekt
- Nahe genug an der praktischen Arbeit bleiben
- Eigenschaften eines Softwarearchitekten
- Eher theoretische Eigenschaften
- Eher praktische Eigenschaften
- Ist diese Einteilung in Archetypen nützlich?
- Zusammenfassung
- Teil VI: Abschluss
- 26 Lebenslanges Lernen
- Bleiben Sie neugierig
- Stellen Sie Fragen
- Bleiben Sie neugierig und bescheiden
- Lernen Sie weiter
- Tandems und »Shadowing«
- Mentoring
- Eigenständiges Lernen
- Teilen Sie Ihr Wissen
- Sammeln Sie Wissen an
- Ihre Lernweise kann sich im Laufe der Zeit ändern
- Fordern Sie sich selbst immer wieder heraus
- Bleiben Sie mit der Branche auf dem Laufenden
- Machen Sie auch mal Pause
- 27 Literaturhinweise
- Zusatzkapitel
- Mit der Branche Schritt halten
- Bücher
- Errata für dieses Buch
- Danksagungen
- Fußnoten
- Index
- Über den Autor
- Kolophon
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.