Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 717

Warning: Invalid argument supplied for foreach() in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 718

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 722

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 717

Warning: Invalid argument supplied for foreach() in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 718

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 717

Warning: Invalid argument supplied for foreach() in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 718

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 722

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 717

Warning: Invalid argument supplied for foreach() in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 718

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 722

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 717

Warning: Invalid argument supplied for foreach() in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 718

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 722

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 717

Warning: Invalid argument supplied for foreach() in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 718

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 717

Warning: Invalid argument supplied for foreach() in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 718

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 722

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 717

Warning: Invalid argument supplied for foreach() in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 718

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739
Allgemein: Agile Softwareentwicklung – It2010-g1

Allgemein: Agile Softwareentwicklung


Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739
Aus It2010-g1
Wechseln zu: Navigation, Suche
(Verwaltung des Projekts, Story Cards, Planung, Prioritäten)
K (26 Versionen: Eine alte Version der Wiki ist hier her gezogen (1))
 
Zeile 6: Zeile 6:
  
 
==Festlegung von Programmiersprachen, Daten- und Klassenstrukturen==
 
==Festlegung von Programmiersprachen, Daten- und Klassenstrukturen==
Ganz zu Beginn eines Softwareprojektes sollten selbstverständlich die Programmiersprache oder bei Bedarf auch mehrere Programmiersprachen festgelegt werden, in der das Projekt implementiert werden soll. Dabei spielt die größte Rolle, welche Sprache sich am besten für die Aufgabe eignet, aber auch, welche von den Programmierern am besten beherrscht wird. Gegebenenfalls müssen Schulungen für die Programmirer eingeplant werden. Wenn die Sprache festgelegt ist, muss man eine geeignete Daten- und Klassenstruktur festlegen. Dabei muss ein Kompromiss zwischen Redundanz und Geschwindigkeit gefunden werden. Das heisst, dass unter Umständen einige Dateien an verschiedenen Orten gespeichert werden müssen, um einen schnellen parallelen Zugriff von unterschiedlichen Orten zu garantieren.
+
Ganz zu Beginn eines Softwareprojektes sollten selbstverständlich die Programmiersprache oder bei Bedarf auch mehrere Programmiersprachen festgelegt werden, in der das Projekt implementiert werden soll. Dabei spielt die größte Rolle, welche Sprache sich am besten für die Aufgabe eignet, aber auch, welche von den Programmierern am besten beherrscht wird. Gegebenenfalls müssen Schulungen für die Programmierer eingeplant werden. Wenn die Sprache festgelegt ist, muss man eine geeignete Daten- und Klassenstruktur festlegen. Dabei muss ein Kompromiss zwischen Redundanz und Geschwindigkeit gefunden werden. Das heißt, dass unter Umständen einige Dateien an verschiedenen Orten gespeichert werden müssen, um einen schnellen parallelen Zugriff von unterschiedlichen Orten zu garantieren.
  
 
==Code Conventions==
 
==Code Conventions==
 
Ebenfalls vor Beginn sollten gewisse Standards für das Schreiben von Code festgelegt werden. Es bietet sich an, dafür allgemein bekannte / übliche Standards zu verwenden, da diese in der Regel intuitiv anwendbar sind, oftmals sind diese den Programmierern auch bereits bekannt. <br>
 
Ebenfalls vor Beginn sollten gewisse Standards für das Schreiben von Code festgelegt werden. Es bietet sich an, dafür allgemein bekannte / übliche Standards zu verwenden, da diese in der Regel intuitiv anwendbar sind, oftmals sind diese den Programmierern auch bereits bekannt. <br>
Code Conventions dienen dazu, den Code übersichtlich, gut lebar und leicht anpassbar zu machen.<br>
+
Code Conventions dienen dazu, den Code übersichtlich, gut lesbar und leicht anpassbar zu machen.<br>
 
Es wird dabei die Art der Einrückung, die Klammersetzung, die Namensgebung usw. beschrieben. Auch werden hier die Standards zur Kommentierung des Codes festgehalten.<br>
 
Es wird dabei die Art der Einrückung, die Klammersetzung, die Namensgebung usw. beschrieben. Auch werden hier die Standards zur Kommentierung des Codes festgehalten.<br>
 
[http://de.wikipedia.org/wiki/Code_Convention mehr auf wikipedia (en)]
 
[http://de.wikipedia.org/wiki/Code_Convention mehr auf wikipedia (en)]
Zeile 22: Zeile 22:
 
*ID (nützlich für die Programmier-Dokumentation)
 
*ID (nützlich für die Programmier-Dokumentation)
 
*Datum der Erstellung
 
*Datum der Erstellung
*Autor der Story Card (nützlich für Fragen)
+
*Autor der Story Card (nützlich bei Fragen)
 
*Beschreibung
 
*Beschreibung
 
*Geschätzter Aufwand
 
*Geschätzter Aufwand
 
*Entwickler
 
*Entwickler
*Priorität (eine Zahl z.B zwischen 1 bis 3 oder 1 bis 10)
+
*Priorität (beispielsweise eine Zahl zwischen 1 und 3)
Folgende Informationen beinhalted die Karte zur Nachfollziehbarkeit, ob die Schätzungen und die Planung gestimmt haben, um das für weitere Aufgaben oder andere Projekte zu beachten:
+
Folgende Informationen beinhaltet die Karte zur Nachvollziehbarkeit, ob die Schätzungen der Planung eingehalten werden konnten, um für spätere Aufgaben und zukünftige Projekte diese Planungen und eigenen Schätzungen optimieren zu können:
*Tsächlicher Aufwand (wir erst nach der Lösung der Aufgabe ausgefüllt)
+
*Tatsächlicher Aufwand (wird erst nach der Erledigung der Aufgabe ausgefüllt)
*Datum der Erledigung (wir erst nach der Lösung der Aufgabe ausgefüllt)
+
*Datum der Erledigung (wird erst nach der Erledigung der Aufgabe ausgefüllt)
*Kundenzufriedenheit (wir erst nach der Lösung der Aufgabe ausgefüllt)
+
*Kundenzufriedenheit (wird erst nach der Erledigung der Aufgabe ausgefüllt)
 
*Status ("wartend", "in Arbeit" oder "fertig")
 
*Status ("wartend", "in Arbeit" oder "fertig")
 
[http://en.wikipedia.org/wiki/User_story mehr siehe '''"User story"''' auf wikipedia (en)]<br>
 
[http://en.wikipedia.org/wiki/User_story mehr siehe '''"User story"''' auf wikipedia (en)]<br>
Zeile 36: Zeile 36:
  
 
===Daily Stand-Up Meeting===
 
===Daily Stand-Up Meeting===
Wie der Name schon vermuten lässt, wir dieses Meeting jeden Tag, meist auch gleich zu beginn de Tages gehalten. "Stand-Up" bedeutet, dass man es meistens im Stehen durchführt, weil es ungefär 5 bis 10 min dauer soll.<br>
+
Wie der Name schon vermuten lässt, wird dieses Meeting jeden Tag, in der Regel auch gleich zu Arbeitsbeginn, abgehalten. "Stand-Up" impliziert, dass es nach Möglichkeit auch im Stehen durchführt wird, da es nicht länger als 5 bis 10 Minuten dauern sollte.<br>
Hierbei treffen sich alle Programmierer und auch andere [http://de.wikipedia.org/wiki/Stakeholder Stakeholder] und beantworten (zumindest die Programmierer) jeweils die 3 folgenden Fragen:
+
Hierbei treffen sich alle Programmierer, möglicherweise auch weitere [http://de.wikipedia.org/wiki/Stakeholder Stakeholder], und beantworten (zumindest die Programmierer) jeweils die folgenden drei Fragen:
*Was habe ich bis jetzt getan?
+
*Was habe ich bis jetzt getan? (seit dem letzten Stand-Up Meeting)
*Welche Probleme gab es?
+
*Welche Probleme traten auf?
*Was werde ich jetzt tum
+
*Was werde ich jetzt tun?
In dem Meeting werden jedoch keine Diskusionen gefürt, sondern werden danach besprochen.<br>
+
In dem Meeting werden jedoch keine Diskusionen geführt! Diese können später besprochen werden, hier soll lediglich eine Bestandsaufnahme erfolgen.<br>
 
[http://en.wikipedia.org/wiki/Stand-up_meeting mehr auf wikipedia]
 
[http://en.wikipedia.org/wiki/Stand-up_meeting mehr auf wikipedia]
  
 
==Teamarbeit, Kommunikation==
 
==Teamarbeit, Kommunikation==
 
===Kommunikation===
 
===Kommunikation===
Programmierer, welche an dem gleichen Teil des Projektes arbeiten sollten auch zusammen in einem gemeinsamen Büro sitzen, um immer schnell miteinander kommunizieren zu können. Andere Mitarbeiter und Programmierer sollten räumlich getrennt sein um sich nicht abzulenken und zu stören.
+
Programmierer, die gemeinsam an einem Projektes arbeiten, sollten auch zusammen in einem Büro sitzen, um immer schnell und effektiv miteinander kommunizieren zu können. Mitarbeiter und Programmierer, die nicht in das Projekt involviert sind, sollten dagegen nach Möglichkeit räumlich getrennt untergebracht werden, um unnötige Störquellen und Ablenkung zu vermeiden.
===Versionskontrollen===
+
 
Versionskontrollen wie [http://de.wikipedia.org/wiki/Apache_Subversion Subversion], oder [http://de.wikipedia.org/wiki/Git Git] sollten in jedem Softwareprojekt verwendet werden.<br>
+
===Versionskontrolle===
Bei einer Versionskontrolle liegt der Quelltext (oder auch andere Dateien) als eine Sammlung von Änderungen auf einem Server. Jeder Programmierer kann sich von dort den Quelltext herunterladen und bei sich lokal werändern. Ist er damit fertig und ist das Projekt noch lauffähig, kann er seine Änderungen wieder auf den Serverladen.<br>
+
Eine Versionskontrolle wie [http://de.wikipedia.org/wiki/Apache_Subversion Subversion], oder [http://de.wikipedia.org/wiki/Git Git] sollte in jedem Softwareprojekt genutzt werden.<br>
So hat jeder Programmierer immer den aktuellen Code, ohne, dass alle dierekt auf dem selben Server arbeiten müssen.<br>
+
Bei dieser liegt der Quelltext (oder auch andere Dateien) als eine Sammlung von Änderungen auf einem Server. Jeder Programmierer lädt sich den Quelltext von dort herunter und kann diesen anschließend lokal auf seinem Rechner bearbeiten. Ist Projekt nach Fertigstellung der Implementierung noch lauffähig, so lädt er seine Änderungen wieder auf den Server hoch.<br>
 +
Damit hat jeder Programmierer immer den aktuellen Code, ohne dass alle direkt auf dem Server arbeiten müssen.<br>
 
[http://de.wikipedia.org/wiki/Versionsverwaltung mehr auf wikipedia]
 
[http://de.wikipedia.org/wiki/Versionsverwaltung mehr auf wikipedia]
  
 
==Pair Programming==
 
==Pair Programming==
Bei Pair Programming programmieren 2 (höchstens 3) Programmierer an einem Computer. Dabei tippt einer den Code und der andere sieht dem ersten über die Schulter. So kann man sich schneller absprechen, auf Ideen kommen und Fehler finden.<br>
+
Beim Pair Programming programmieren zwei (höchstens drei) Programmierer gemeinsam an einem Computer. Dabei tippt einer den Code und der andere sieht Ersterem über die Schulter und steht diesem beratend zur Seite. So kann man sich schneller absprechen, Ideen aufgreifen und Fehler im Keim erkennen und beseitigen.<br>
Auch wenn diese Metode sehr ungewöhnlich klingt, so hat sie sich aber doch in der Praxis schon oft als sehr effektiv herausgestellt.<br>
+
Auch wenn diese Methode sehr ungewöhnlich klingt, so hat sie sich in der Praxis als äußerst effektiv bewiesen.<br>
 
[http://de.wikipedia.org/wiki/Pair_Programming mehr auf wikipedia]
 
[http://de.wikipedia.org/wiki/Pair_Programming mehr auf wikipedia]
  
 
==Testen==
 
==Testen==
Für das Testen einer Software ist eigentlich die Qualitätsicherung zuständig, aber auch die Programmierer kommen nicht ganz um das PRoblem herum.<br>
+
Für das Testen einer Software ist normalerweise die Qualitätssicherung zuständig, aber auch Programmierer kommen nicht um diesen wichtigen Baustein herum.<br>
Die meisten Programmierer testen ihren implementierten Code während der Entstehung. Zusätzlich sollte man aber zu möglichst jeder Metode einen automatisierten Test, sogenannte [http://de.wikipedia.org/wiki/Unit-Test Unit-Tests] schreiben, der wirklich alle Fälle bfängt. Das macht man, um immer alle Fehlerquellen zu testen, ohne dass manunnötig viel Zeit verschwendet. Eine Liste von verschiedenen Unit-Tests für verschiedene Strachen findet man [http://de.wikipedia.org/wiki/Liste_von_Modultest-Software hier].
+
Die meisten Programmierer testen ihren implementierten Code bereits während der Entstehung. Zusätzlich sollte aber nach Möglichkeit zu jeder implementierten Methode auch ein automatisierter Test, ein sogenannter [http://de.wikipedia.org/wiki/Unit-Test Unit-Test] geschrieben werden. Damit sollen immer alle erdenklichen Fehlerquellen getestet werden, ohne unnötig viel Zeit verschwenden zu müssen. Eine Liste verschiedener Unit-Tests für verschiedene Sprachen findet man [http://de.wikipedia.org/wiki/Liste_von_Modultest-Software hier].

Aktuelle Version vom 6. November 2011, 17:52 Uhr

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Projekte
Werkzeuge