File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Agile and Other Processes and the fly likes In a software project- Is Agile approach dependent on the technologies used in the project? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » Agile and Other Processes
Bookmark "In a software project- Is Agile approach dependent on the technologies used in the project?" Watch "In a software project- Is Agile approach dependent on the technologies used in the project?" New topic
Author

In a software project- Is Agile approach dependent on the technologies used in the project?

Mohamed Sanaulla
Saloon Keeper

Joined: Sep 08, 2007
Posts: 3068
    
  33

Is Agile approach dependent on the Technologies being used in the development of the project? Some technologies might favor/provide easy support for following agile approach and might be hard to implement in others.


Mohamed Sanaulla | My Blog
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
No, it is not dependent upon technology. Agile is a methodology for creating technology, i.e. software.
Mohamed Sanaulla
Saloon Keeper

Joined: Sep 08, 2007
Posts: 3068
    
  33

Jimmy Clark wrote:No, it is not dependent upon technology. Agile is a methodology for creating technology, i.e. software.


By technologies I meant- Programming language/ technology using which the software is built.
Tim Ottinger
author
Ranch Hand

Joined: Jan 26, 2011
Posts: 46

Mohamed Sanaulla wrote:
Jimmy Clark wrote:No, it is not dependent upon technology. Agile is a methodology for creating technology, i.e. software.


By technologies I meant- Programming language/ technology using which the software is built.


No, it's not dependent on a stack. Values, principles, planning, iterating, teamwork, etc (most of what constitutes Agile) is completely independent. You could be agile in Assembly or Basic or Prolog or Whitespace if you wanted.

When it comes to the technical practices there are biases. Some languages have been built up to make agile work easier than others, though I've seen it done in languages you might not choose for the purpose.

There are advantages to using languages which already have acceptance test and unit test frameworks, but you can always build your own. I've seen them for C, C++, Python, Smalltalk, Java, C#, PHP, and even SQL.

There is additional advantage if refactoring editors are available (smalltalk, java, C#, others).

If the languages run quick build/test cycles it's easier to get the rhythm going, so php, smalltalk, java, python, ruby have advantages there.

People are doing TDD in functional programming languages these days. It's different there, but that's not too surprising.

Finally, there are frameworks and libraries that can complicate testing. If you have an ORM (as most of us do) then you might have trouble keeping the tests fast because of dependency on the database. It's troubling, but we do it all the time. I've seen rails programmers do a lot of work in cucumber without unit tests when their work is really configuring some rails component instead of writing new code. Django expects to stand up a blank database for running tests, instead of testing quickly without a database.




He writes code. He likes it.
Jeff Langr
author
Ranch Hand

Joined: May 14, 2003
Posts: 762
Great answer Tim.

Most of the development tools came out of OO shops. But as Tim indicates, support for both functional and procedural test-driven development exists. As far as other technical practices, metaphor and the four rules of simple design have a slight OO bent, but in concept they too can apply to any environment.


Books: Agile Java, Modern C++ Programming with TDD, Essential Java Style, Agile in a Flash. Contributor, Clean Code.
Mohamed Sanaulla
Saloon Keeper

Joined: Sep 08, 2007
Posts: 3068
    
  33

Tim Ottinger wrote:
When it comes to the technical practices there are biases. Some languages have been built up to make agile work easier than others, though I've seen it done in languages you might not choose for the purpose.



This is what I wanted to know and there you got my thoughts right. Thanks Tim for the explanation. I got this question because I am trying/learning Play framework, where in the sample project they test as they develop. This surely can be done in frameworks like Ruby, Grails. So I thought the technical practices add some weight to the adoption of Agile approach.

 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: In a software project- Is Agile approach dependent on the technologies used in the project?