2009-06-02 13 views
2

Ich habe seit ein paar Jahren TDD und (einige) XP geübt und festgestellt, dass es viele der Probleme löst, die ich in meiner Karriere vor seiner Einführung hatte. Durch das Entfernen von so vielen Kopfschmerzen wurde meine Liebe zum Programmieren verjüngt. Das Problem ist, dass ich es schwierig fand, .NET (mein aktueller Stapel) Projekte zu finden, die diese Praktiken verwenden. Meine Frage für die SO-Community lautet: In welchen Communities (Sprache und/oder Frameworks) sind agile Praktiken wie tdd (alle xDDs wirklich), xp, ci usw. am stärksten?Welche Gemeinschaft (Sprache/Framework) umfasst am häufigsten agile Praktiken?

Um diese Frage zu stellen, muss ein Messmittel definiert werden.

(Anzahl der laufenden Projekte umfassen agile Methoden)/(Anzahl der laufenden Projekte)

Offensichtlich ohne Daten, die wahrscheinlich nicht existiert, das ist unmöglich zu bestimmen: Ich würde es für eine bestimmte Gemeinschaft/Stack als definieren. ..Ich bin nur auf der Suche nach Menschen Wahrnehmungen

Antwort

2

Ich habe Zehen sowohl in den Rails als auch in den Django Camps. Nach allem, was ich sehe, werden die Rails-Leute wirklich getestet. Sie sprechen über das Testen in Blogs, reden über Tests in Konferenzen und Spin-off einige interessante Test-Tools (z. B. ScrewUnit) zum Testen der Nicht-Rails-Teile ihrer Apps. Es ist wirklich schwer, Teil der Rails-Community zu sein und nicht zu testen.

Die Django-Community hinkt der Testfront hinterher. Django wird mit grundlegenden Tests ausgeliefert, aber Sie müssen danach suchen. Keines der aktuellen Django-Bücher tut viel mehr, als eine Fußnote zu testen, und ich sehe nur selten einen substanziellen Testblog von Django-Community-Mitgliedern. Es gab keine Testgespräche auf der ersten DjangoCon.

Auf der anderen Seite, sind Rails Menschen eher anfällig für Monkeying und Gem Version Konflikte (oder Edelsteine ​​oder Plugins Konflikt Monkeypatching), so dass automatisierte Tests unerlässlich ist. Die Django-Projekte, die ich gesehen habe, konnten vorbeilaufen, weil es schwieriger ist, in die gleichen Schwierigkeiten zu geraten.

Wie bei anderen agilen Praktiken, ist es schwer zu sagen, ohne in der Lage zu sein, in vielen Projekten von Tag zu Tag zu schauen.

+0

Ich stimme der Beobachtung zu, aber ich glaube nicht, dass es einfach eine Ausrede ist, keine umfassenden Tests durchzuführen, wenn man 'Affenflicken 'vermeidet. Metaprogrammierung oder nicht, TDD (oder Tests im Allgemeinen) ist die wichtige Voraussetzung für die kontinuierliche Evolution von Code. Ich denke, wir sollten zugeben, dass die Django-Community im Allgemeinen nicht wirklich daran interessiert ist, qualitativ hochwertigen Code zu schreiben. – hspandher

+0

Das war eine Antwort von 2009. Es hat sich viel geändert. Die Test-Affordanzen, die jetzt für Django verfügbar sind, sind ziemlich gut. Ob die Leute sie benutzen, ist eine separate Frage, und eine, die sich auf viele Gemeinschaften verallgemeinert, muss Django nicht. –

1

Ich glaube nicht, dass alle diese Arbeitsabläufe an eine bestimmte Sprache gebunden sind, noch glaube ich, dass eine Sprache für diese Arbeitsabläufe erforderlich ist. Jede Abweichung davon ist weitgehend kulturell bedingt.

Zum Beispiel hat das kanonische rails-Projektskelett eine sehr geringe Barriere gegenüber dem Schreiben von Tests oder der Verwendung von TDD, aber nichts hindert Sie daran, NUnit zu greifen und ein TDD .NET-Projekt zu schreiben.

Hier sind einige .NET-Tools, die Sie vielleicht in der Erforschung interessiert sein:

Unit Testing:

Continuous Integration:

+0

Ich stimme völlig zu, aber darum frage ich nach Kultur. – Lee

+0

@Lee: Wenn es etwas mit Kultur zu tun hat, dann solltest du fragen: Wie agil wäre es, aufzuhören und zu messen, ob die "Gemeinschaft", in der du bist, am beweglichsten ist. Wie agil wäre eine Gemeinschaft, die sich Zeit nehmen würde, um das zu messen? Welcher Komponententest ist fehlgeschlagen und hat sie angehalten und gemessen? –

+0

Ich denke im Allgemeinen, wenn eine Gemeinschaft eher in der Lage ist, kürzlich populäre Praktiken/Methoden zu berücksichtigen, sind sie auch in der Lage, kürzlich populäre Sprachen/Frameworks zu umfassen. Also, es gibt mehr Leute, die TDD in Ruby als Fortran machen. – anthony

2

Wenn von communitry dies über die Menschen ist, als sonst, was eine Gemeinschaft wirklich ist, hier sind ein paar Gruppen:

Agile Project Leadership Network die Implikation in seinem Namen hat, dass es Agile Ansätze umfasst.

Alt.Net schlägt mich als eine Gruppe, wo Sie verschiedene Agile Praktiken bringen können und verschiedene Ergebnisse erhalten, wie einige sie mögen mögen und einige möglicherweise Probleme mit ihnen gehabt haben.

Agile ist mehr über den Prozess als über bestimmte Technologien in der Regel. Wenn es bei Ihrer Frage mehr darum geht, welche Technologien und Frameworks Unternehmen verwenden, die Agile verwenden, ist das ein ganz anderer Ball aus Wachs mit fragwürdigem Wert für mich. Die Unternehmen in der Nähe von mir in Calgary, Alberta, die Agile umfassen, können sich erheblich von anderen unterscheiden, z. was Unternehmen in Bangalore, Indien oder London, UK oder Silicon Valley oder New York City, New York oder Seattle, Washington geben ein paar Standorte, wo es einige Entwickler arbeiten, in der Regel, wenn Sie Unternehmen wie Thoughtworks Agile, wenn Sie in der Nähe sind eine große Stadt, in der sie ein Büro haben.

Eine weitere Überlegung wäre, zu überlegen, wie einige Technologien verschiedene Untergemeinschaften oder Größen haben, die die Dinge hier verdunkeln können. Zum Beispiel gibt es wahrscheinlich viele Java- und .Net-Entwickler, die sich auf Agile und viele, die es verabscheuen, freuen. Wenn einige Unternehmen eine Wasserfall-Methode haben, die für sie gut funktioniert, warum sollten sie dann zu Agile wechseln? Gleichzeitig haben einige Technologien sehr kleine Gemeinschaften und können daher in einem ganz anderen Licht betrachtet werden. Es ist auch gut organisiert, wenn die Leute diese neuen und aufkommenden Technologien nutzen würden, wenn das ein Faktor für Sie ist.

Hoffentlich gefunden jemand diese Gehirn-Dump interessant ...;)

+0

Danke für Ihre Gedanken zu diesem JB. Ich denke, Sie könnten den Punkt meiner Frage vermissen. Als Entwickler finde ich diese Praktiken äußerst nützlich und produktiv. Bei meiner Frage ging es nicht darum, agile Praktiken zu diskutieren, sondern um aus den Erfahrungen von Menschen zu lernen, welcher Stack die besten Chancen hat, mit Teams zu arbeiten, die diese Methoden anwenden (insbesondere die oben genannten). – Lee

+0

Ein Teil Ihrer Frage ignoriert ein paar Dinge wie Geografie und wie Sie von Jobs lernen würden, wenn Sie davon ausgehen, dass Sie diese Praktiken anwenden und nicht als Hobby auf der Seite. Könnte jemand Agile-Praktiken verwenden, um Open-Source-Software in ihrer Freizeit besser zu machen? Wahrscheinlich, aber ist das die Art von Fall, die du meintest?Wenn Sie eine Beschäftigung als Dimension einführen, dann werden einige neue Dinge entstehen, wie gut vernetzt sind Sie, wie gut sind die Personalvermittler dort, um zu verstehen, was Sie unter Agile verstehen und Eröffnungen finden usw. Ich betrachte es als eine breite Frage in einem Sinn. :) –

1

Aus meiner etwas eingeschränkt Erfahrung habe ich, dass die Gemeinde Rubin/Schiene gefunden hat, auf das Testen der Schneidkante gedrängt. Einführung neuer Technologien und allgemein Integration des Konzepts von TDD und BDD in die meisten Dinge. PHP dagegen ist etwas willkürlich. Einige Gruppen verwenden es religiös und andere scheinbar gar nicht. Das Toolset in PHP scheint nicht so robust und tief wie in den Ruby & Rails-Communities.

YMMV.