This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
HI All, I have a doubt, i belive that if one wants to follow Agile software development that he has to choose the technology that supports quick code-> test-> deploy cycle. For eg: take the case of Java web development..i believe that it would very very difficult to go ahead with Agile if the entire project is only in JSP's and Servlet as compared to using frameworks which provides host of other services which developer has to worry about when using only JSP/Servlets. So what do people over here say.. is Agile means that you got to review and use only those tech/ framework that support Agile ( by this i mean that takes care of low level services so that developer concentrates only on BL) or just like other software development process Agile process can be followed irrespective of tech/framework. I got a project which is only in JSP and Servlet and our PM says that we would follow Agile Software Development to develop any new functionality that we come across in this system...but we are not suppose to change the Architecture or introduce a new framework. I think that this might not work as expected. Need you comments on this because that would help me to propose suggestions [ ]
To some extent, Agile certainly is technology dependent. It's simply that the faster your feedback cycles, the less up front planning makes sense. TDD, just for example, simply isn't possible if compilation after the introduction of a new line takes hours.
Also, not being allowed to change the architecture does sound like a big impediment to me - but not just an impediment to doing Agile, but to keeping the system sustainable at all. If you change the system, the architecture needs to be changed, too (in tiny, controlled steps), to account for the new design forces. If you don't do that, the whole system *will* rot over time, whether you do Agile or not.
I don't see why you think you would need a framework, though. As long as you are able to test and refactor your code in small cycles, you should be fine - although possibly not as productive as you could be by reusing some existing code. My experience with frameworks is quite mixed, though - a lot of them also add a lot of code overhead and actually decrease the flexibility of the code.
Anyway, even if I were not allowed to change the architecture, I still would use as many of the Agile techniques I know as possible. I just wouldn't expect all the benefits, naturally.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Joined: Jul 11, 2001
Oh, by the way, what does your PM actually *mean* if he says that you would follow an Agile approach? Does he have some sort of Agile training? How will *you* be trained?
Joined: Sep 11, 2005
Yes he has practised Agile process earlier in one of his project and even though i am not very much aware of Agile processes but there would be training Starting from Monday I was thinking of framework because It would involve less work as i need not worry about designing the system( particularly web based), since the framework would do that for me.I mean where the controller is to be called, how to fire events on click of combo etc etc Although TDD and refactoring can be done with current architecture, it would be pain,since the system is using only JSP and servlets. But anyways i think it would be fun and maybe in next project i would get opportunity to experiment with framework and Agile and then comparison could be made
Joined: Jul 11, 2001
Originally posted by Pankaj Tiwari: I was thinking of framework because It would involve less work as i need not worry about designing the system( particularly web based), since the framework would do that for me.I mean where the controller is to be called, how to fire events on click of combo etc etc
The most important design decisions still needed to be made: the design of the domain model.
Although TDD and refactoring can be done with current architecture, it would be pain,since the system is using only JSP and servlets.
You mentioned that most of it is servlet and JSPS. I believe you only have the presentation aspects in JSP and the business logic is not part of it . If not, you need to refactor code to addressed this first.
As you decouple presentation, business logic and controller aspects clearly, most of it will become obvious.
Then you can clearly test your business logic(unit tests) and then use other tools like Selenium/sahi/ to do functional testing.
You can also look at Cactus.
You may also want to identify the container version in which your servlets and jsps are running. Moving to 2.4 and above should give you lot of benefits.
As Ilja Preuss, mentioned, you can take many agile principles and get started, rather than having none. And over a period of time, the benefits will become obvious and you can move to a total agile development process.
It is not necessary to always use framework. It should be used only if necessary. I have worked on project which didn't use any framework, because we didn't need one. So, using a framework should solve you problem, else it adds more problem. I am sure you can identify it.
Also, when you have the non-presentation related aspects out of your JSPs, you can use JspTest for writing unit tests for your JSPs - unit tests running outside of an application server so they're (relatively) fast.