views:

187

answers:

5

I have been practicing TDD and (some) XP for a few years now and have found that it solves many of the problems I had in my career previous to it's adoption. By removing so many headaches, my love of coding has been rejuvenated. The problem is I have also found it difficult to find .NET (my current stack) projects utilizing these practices.

My question for the SO community is: Which communities (language and/or frameworks) do you feel embrace agile practices such as tdd, (all the xDD's really) xp, ci, etc the most?

For this question to be asked, a means of measurement must be defined. I would define it for a given community/stack as:

(number of current projects embracing agile methodologies) / (number of current projects)

Obviously without data that probably does not exist this is impossible to determine...I am just looking for people's perceptions

+1  A: 

I don't think any of these workflows are tied to a specific language, nor do I think any language necessarily lends itself to these workflows. Any deviation from this is largely cultural.

For example, the canonical rails project skeleton has a very low barrier to writing tests or using TDD, but there's nothing stopping you from grabbing NUnit and writing a TDD .NET project.

Here are some .NET tools you might be interested in researching:

Unit Testing:

Continuous Integration:

anthony
I completely agree, but that is why I am asking about culture.
Lee
@Lee: If it has anything to do with culture, then you should ask: how agile would it be to stop and measure whether the "community" you're in is the most agile. How agile would any community be that took time to measure that? Which unit test failed and made them stop and measure?
John Saunders
I think in general if a community is more apt to embrace recently popular practices/methodologies, they are also more likely to embrace recently popular languages/frameworks. So, there are more people doing TDD in Ruby than Fortran.
anthony
@John: What?
mquander
@Anthony: That is a really good point comparing Ruby vs. Fortran.
Lee
+2  A: 

If by communitry this is about people, as what else is a community really, here are a few groups:

Agile Project Leadership Network has the implication in its name that it embraces Agile approaches.

Alt.Net strikes me as a group where you could bring various Agile practices and get various results as some may like them and some may have had problems with them.

Agile is more about process rather than specific technologies usually, though. If your question is more about what technologies and frameworks do companies using Agile embrace, that is a whole other ball of wax with questionable value to my mind. The companies near me, in Calgary, Alberta, that embrace Agile may be vastly different than others,e.g. what companies in Bangalore, India or London, U.K. or Silicon Valley or New York City, New York or Seattle, Washington to give a few locations where there are some developers working, usually unless you mean companies like Thoughtworks that do Agile if you are near a large city where they have an office.

Another line of thought would be to consider how some technologies may have various sub-communities or size that may cloud things here. For example, there are likely many Java and .Net developers that embrace Agile and many that loathe it. If some companies have a Waterfall methodology that works well for them, why should they switch to Agile? At the same time, some technologies may have really small communities and so they may be viewed in a much different light. There is also how well organized would the people using these new and emerging technologies be if that is a factor to your mind.

Hopefully someone found this brain dump interesting... ;)

JB King
Thanks for your thoughts on this JB. I think you might be missing the point of my question. As a developer I personally find these practices extremely useful and productive. My question was not about debating agile practices, but to draw from people experiences to determine simply which stack gives you the best chances of working with teams utilizing these methodologies (specifically the above mentioned ones).
Lee
Part of your question ignores a few things to my mind like geography and how you'd learn of jobs assuming that that is where you want to be using the practices and not as a hobby on the side. Could someone use Agile practices to make open source software better in their spare time? Probably, but is that the kind of case you meant? If you bring in employment as a dimension then there become some new things like how well networked are you, how good are the recruiters there to understand what you mean by Agile and find openings, etc. I look at it as a broad question in a sense. :)
JB King
A: 

From my somewhat limited experience I have found that the Ruby/rail community has been pushing the cutting edge on testing. Introducing new technologies and generally integrating the concept of TDD and BDD into most things. PHP on the other hand is somewhat haphazard. Some groups use it religiously and other seemingly not at all. The toolset in PHP does not seem as robust and deep as it is in the Ruby & Rails communities.

YMMV.

_Kevin
+2  A: 

I have toes in both the Rails and the Django camps. From what I see, the Rails folks really get testing. They talk about testing in blogs, talk about testing in conferences, and spin off some interesting testing tools (e.g., ScrewUnit) for testing the non-Rails parts of their apps. It's really hard to be part of the Rails community and not test.

The Django community lags behind on the testing front. Django ships with basic support for testing, but you have to look for it. None of current Django books do much more than give testing a footnote, and I rarely see any substantive "how to test" blogs from Django community members. There were no talks on testing at the first DjangoCon.

On the flip side, Rails people are far more likely to get themselves into messes dues to monkeypatching and gem version conflicts (or gems or plugins doing conflicting monkeypatching), so automated testing is essential. The Django projects I've seen have been able to skate by because it's harder to get yourself into the same trouble.

As for other agile practices, it's hard to say without being able to peek inside of a lot of projects on a day-to-day basis.

Dave W. Smith
A: 

I want the details of companies using Agile Practices in Software development in US.

Kindly help me out.

Regards, Avnish