- attitude: wie man ein Problem angeht (Vorgehen)
- aptitude: was man kann (Fähigkeiten/Begabung)
- Änderungen sollten einfach sein
- Probleme fixen die entdeckt werden (Feedback-Cycle)
- nicht über die Zukunft spekulieren
- es gibt immer Dinge, die nicht funktionieren
- immer mit kleinen Team arbeiten
- As [role] I can [function] so that [rationale]
- beschreiben der Stories gemäss INVEST
- sollten Akzeptanz-Kriterien beinhalten
Acceptance Test Driven Development
- Persistenz
- Verbindung zwischen UI und Daten
- Kommunikation zwischen Teilen des Systems
- Skalierung (mehrere Threads, Prozesse, Maschinen)
- Sicherheit (Authentifizierung, Autorisierung)
- Journaling (Nachvollziehbarkeit)
- Reporting
- Daten migrieren (importieren / exportieren)
- Releasbarkeit
- Rückwärtskompatibilität
- Antwortzeiten
- Daten archivieren
- Loose Coupling
- High Cohesion
- Design for Change
- Separation of Concerns
- Information Hiding
- Abstraction
- Modularity
- Traceability
- Self documenting
- Incremental design
- Komplexität reduzieren
- Änderbarkeit verbessern
- parallele Entwicklung ermöglichen
- Spikes
- eigene Erfahrung oder Experten fragen
- Wissen aus bestehendem Code
- Kopieren, Anpassen, Verändern, Verbessern von Code
- Refactoring
- Kollektives Wissen nutzen