File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Agile and Other Processes and the fly likes Is Agile only for Java 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 "Is Agile only for Java" Watch "Is Agile only for Java" New topic

Is Agile only for Java


Joined: Jan 17, 2005
Posts: 10
IT might sound stupid. However, I always see Agile practices associated with a Java development environment. Am I right in thinking that Agile is best suited for the development processes of Java applications or I could use Agile for the development of any sort of solution from C# applications to Portal development in PHP, Oscript (Opentext), etc?
Christophe Verré

Joined: Nov 24, 2005
Posts: 14688

No, Agile is not associated with any particular language.

[My Blog]
All roads lead to JavaRanch
Frank Carver

Joined: Jan 07, 1999
Posts: 6920
You probably see more about agile use of Java simply because Java is such a widespread and popular language. In many ways java is less suited to an agile approach than some of the more fluid languages (Smalltalk and Ruby spring to mind, although there are many others.)

It's important to understand that most of what passes for agile process is not really about the language or other software tools. An agile approach is largely about how people on a team work together, and thus has things to say about communication, organization, priorities and so on.

Read about me at ~ Raspberry Alpha Omega ~ Frank's Punchbarrel Blog
Per Kroll
Ranch Hand

Joined: Jul 19, 2006
Posts: 31

as an example, you have MSF-Agile, which is microsoft's process for agile development, so this is an example of agile development target .NET platform.

And yes, I agree with previous comments, there is nothing platform or language dependent with agile development...


Peer Reynders

Joined: Aug 19, 2005
Posts: 2933
Originally posted by Frank Carver:
In many ways java is less suited to an agile approach than some of the more fluid languages (Smalltalk and Ruby spring to mind, although there are many others.)

But you are still talking about languages with OO features which are inherently suited to test driven design. Personally I think that TDD is a pivotal practice when it comes to being "agile". However there is still a significant body of custom software out there that was developed before the rise of Java (or before it gained widespread acceptance) that either used a pre-OO development environment (not even C or C++) or some RAD-era inspired Smart GUI tool. The owners are unwilling to consider re-writes "merely to improve maintainability" but this software still has to adapt to today�s changing business needs (It�s sometimes mind-boggling for how many years some custom software systems, "at the brink of being decommissioned", continue to perform mission critical services because the owning company is "not in the business of writing software"). I consider these types of development environments TDD-adverse/TDD-hostile - not to say that TDD is impossible (though it may seem that way, especially if you have to write your own testing framework) but the "cost of admission" is significantly higher than it would be with your general OO development environment.

For example, many Oracle shops invest heavily in their PL/SQL stored procedure code base (possibly to the point that the PL/SQL code IS the server-side application). Even though Steven Feuerstein has supplied a testing framework (utplsql), unit testing never really got "fashionable" with the PL/SQL crowd. Without OO-features it is notoriously difficult to mock aspects of the code for testing or inject dependencies. Furthermore the kind of partitioning that testable code requires feels to some PL/SQL practitioners like "swimming upstream". And because of the size (and/or interconnectedness) of the databases that are involved you will rarely find a situation were each developer has their own database instance (sandbox) to do their own unit-testing. So even if you had unit tests it would be unlikely that they would be run frequently enough.

From that I have to conclude that being 'agile' is so challenging in a TDD-adverse/TDD-hostile development environment (either because of the limitations of the tools involved, or because of "cultural pre-disposition") that most organizations in such a situation would never attempt it.
I agree. Here's the link:
subject: Is Agile only for Java
It's not a secret anymore!