Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
se:softwareentwicklung [2010-07-28 08:44] stefan |
se:softwareentwicklung [2014-04-05 11:42] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Allgemeines zum Thema Softwareentwicklung ====== | ||
- | **nach \cite{Cockburn2008}** | ||
- | * Softwareentwicklung besteht aus | ||
- | * Handwerk | ||
- | * Disziplinen: Entscheidung, was gebaut werden soll; Personalführung; Modellierung; Design der Außensicht und der internen Struktur; Test der getroffenen Entscheidungen | ||
- | * Können, mit bestimmten Materialien zu arbeiten | ||
- | * lebenslanges Lernen | ||
- | * Anfänger, Fortgeschrittene und Experten gehen an neue Techniken unterschiedlich heran (Shu-Ha-Ri-Wegstufen: Shu: Erlernen einer Technik, Ha: Techniken sammeln, Ri: Techniken erfinden und miteinander kombinieren) | ||
- | * kooperative Spiele | ||
- | * Spielzüge: Erfinden und Kommunizieren | ||
- | * Spielnachlass: saubere Architektur, Tests, Dokumentation, Bereitschaft des Teams, sich von Mitgliedern zu verabschieden und neue aufzunehmen | ||
- | * [[agilesoftwareentwicklung|schlanke Prozesse]] | ||
- | * der Kunde entscheidet, was er will | ||
- | * Lean Manufactoring: große Zwischenlager sind ungünstig. Daher: kleine Arbeitspakete (Inkremente) an nächste Stelle übergeben | ||
- | * (Software-)Ingenieure sollten ausgebildet werden in | ||
- | * Terminologie ihrer Disziplin | ||
- | * Prinzipien und Techniken von Erfindungen und Kommunikation | ||
- | * Grundlagen schlanker Fertigung | ||
- | * Strategien für den Umgang mit dem Arbeitsfluss | ||
- | * Manager sollten ausgebildet werden in | ||
- | * Reduzieren von Arbeitspaketen | ||
- | * Qualität der Kommunikation, Motivation und Gemeinschaftsgeist ihres Teams steigern | ||
- | * Unterstützung des Teams beim Verbessern ihrer Fähigkeiten | ||
- | * Motivation der Mitarbeiter, auch in anderen Bereichen Kompetenzen zu erlangen | ||
- | ===== What makes a good developer? ===== | ||
- | **nach \cite{Wood2009}** | ||
- | * Process: Follow a well defined process like Scrum, XP, or even Waterfall. Just follow any process! Testing should be a big part of the process. | ||
- | * Passion: If you don't love what you do, you will never be good at it. | ||
- | * Experience (language and algorithms): Experience comes with time and by learning new stuff and sharpening your skills. | ||
- | * Initiative: Be active and start new projects or learn something new. | ||
- | * Involvement in the community (blogs, conferences): Speak to other developers about your profession to get new insights. | ||
- | * Communication skills (with business people and in written documentation): You not only have to be able to program but to get your ideas across to other people. |